c# - Silverlight 更新绑定(bind)

标签 c# .net wpf silverlight

我有带有图像和文本 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/

相关文章:

c# - 自定义 F# 类型如何映射到 CLR 类型?

c# - 如何以不同的顺序执行两个代码片段?

asp.net - dnx 红隼 "System.EntryPointNotFoundException: uv_loop_size"

c# - C# 中的 ComImport,如何找到 shell32.dll 中 IFileDialog 等类的 GUID?

c# - NLog 不从 XML 配置加载规则

c# - 如何编写控制外部cmd的c#

c# - 如何在c#中关闭xmldocument

c# - WPF ListViewItem 多个事件通过 AttachedCommandBehaviour

c# - 在 WPF 应用程序 Mahapps 中找不到资源字典

c# - ListView CheckBox 数据绑定(bind)——移除勾选项