【发布时间】:2010-11-11 21:23:45
【问题描述】:
我的数据类中有项目列表:
public ObservableCollection<Node> NodesFromDatabase
{
get
{
if (_nodesFromDatabase == null)
_nodesFromDatabase =GenerateMenuNodes();
return _nodesFromDatabase ;
}
set
{
_nodesFromDatabase = value;
}
}
我想将此数据绑定到的控件中的属性:
public ObservableCollection<Node> Nodes
{
get { return (ObservableCollection<Node>)GetValue(NodesProperty); }
set
{
SetValue(NodesProperty, value);
}
}
private static DependencyProperty NodesProperty =
DependencyProperty.Register(
"Nodes",
typeof(ObservableCollection<Node>),
typeof(Control),new PropertyMetadata(new ObservableCollection<Node>()));
在 xaml 我有这样的代码:
<Grid Background="White">
<Grid.DataContext>
<local:DataFromDataBase x:Name="database" />
</Grid.DataContext>
<local:Control Nodes="{Binding NodesFromDatabase}" />
</Grid>
这段代码背后的逻辑很奇怪。
我的 NodesFromDatabase 属性在 get 语句中被触发,但控制节点 set 语句没有触发!我做错了什么?
【问题讨论】:
标签: silverlight data-binding binding