我有带有图像和文本 block 的项目模板。并将文本 block 绑定(bind)到 Name 属性。当我不尝试更新我的数据时,一切正常。当我在树中设置我的源节点新名称时,我看到旧名称。如何更新项目模板中的文本?
<my:TreeView.ItemTemplate>
<toolkit:HierarchicalDataTemplate ItemsSource="{Binding Children}">
<StackPanel Orientation="Horizontal">
<Image Source="{Binding Icon}" Width="20" Height="20" />
<TextBlock Text="{Binding Name}" Height="20" TextAlignment="Center" HorizontalAlignment="Center" />
</StackPanel>
</toolkit:HierarchicalDataTemplate>
</my:TreeView.ItemTemplate>
最佳答案
具有 Name
属性的类必须实现 System.ComponentModel.INotifyPropertyChanged
接口(interface)以通知 WPF UI 属性值已更改。类似于以下内容:
class MyClass : System.ComponentModel.INotifyPropertyChanged
{
private String _name;
public String Name
{
get { return _name; }
set { _name = value; RaisePropertyChanged("Name"); }
}
public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
protected void RaisePropertyChanged(String propertyName)
{
System.ComponentModel.PropertyChangedEventHandler temp = PropertyChanged;
if (temp != null)
{
temp(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName));
}
}
}
关于c# - Silverlight 更新绑定(bind),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3387276/