rev*_*kpi 1 c# asp.net silverlight silverlight-3.0 silverlight-4.0
有人可以帮我解决这个问题吗?)在我的XAML中我有Listbox元素.我想将我的用户属性添加到它(在我的情况下 - ConnectorStyle)
我的XAML代码:
<ListBox ItemsSource="{Binding Nodes}" ItemsPanel="{StaticResource CanvasItemsPanelTemplate}"
ItemTemplate="{StaticResource NodePictureTemplate}"
ItemContainerStyle="{StaticResource CanvasItemStyle}"
ConnectorStyle="{StaticResource ConnectorLineStyle}"/>
Run Code Online (Sandbox Code Playgroud)
在我的模型中,我准备了这个属性:
public partial class MainPage : UserControl
{
public static readonly DependencyProperty ConnectorStyleProperty = DependencyProperty.Register(
"ConnectorStyle", typeof(Style), typeof(NodePicture), null);
public MainPage()
{
InitializeComponent();
}
public Style ConnectorStyle
{
get { return (Style)GetValue(ConnectorStyleProperty); }
set { SetValue(ConnectorStyleProperty, value); }
}
}
Run Code Online (Sandbox Code Playgroud)
但我错了 - 无法解析ConnectorStyle.这样做有简单(或正确的方法)吗?
有两种方法可以执行此操作:您可以为ListBox编写一个子类来添加DependencyProperty,也可以编写附加属性.
在您的情况下,您可能想要编写一个添加属性的子类.尝试这样的事情:
public class MyListBox : ListBox
{
public static readonly DependencyProperty ConnectorStyleProperty = DependencyProperty.Register(
"ConnectorStyle", typeof(Style), typeof(MyListBox), null);
public Style ConnectorStyle
{
get { return (Style)GetValue(ConnectorStyleProperty); }
set { SetValue(ConnectorStyleProperty, value); }
}
}
Run Code Online (Sandbox Code Playgroud)
这将添加一个新类型的ListBox,您可以在xaml代码中添加它.它将具有与常规ListBox相同的所有属性,但它也将具有ConnectorStyle属性.
如果需要响应列表框中ConnectorStyle属性的更改,则应更改依赖项属性的代码,但这超出了此问题的范围.
在XAML中它应该是:
<local:ListBoxEx
ConnectorStyle="{StaticResource ConnectorLineStyle}"/>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
175 次 |
| 最近记录: |