嗨,我是 WPF 开发的新手,遇到了关于将所有公共变量绑定到 TextBlock 元素的问题。
<ListBox.ContextMenu>
<ContextMenu ItemsSource="{Binding ActionsView}">
<ContextMenu.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding Name}" />
</DataTemplate>
</ContextMenu.ItemTemplate>
</ContextMenu>
操作视图是操作项的公共可观察集合,每个操作项都有一个名称,该名称可作为"名称"公开访问。所以通常应该没有问题。如果我右键单击我的项目,我会得到一个空的上下文菜单,其中包含正确的条目数,但没有任何文本。
空上下文菜单的图片
public class Action : INotifyPropertyChanged
{
public string Name;
public ContextAction(string name)
{
Name = name;
}
public event PropertyChangedEventHandler PropertyChanged;
}
如果有人能帮助我解决这个问题,那就太好了。
解决方案是将getter设置为二传手,仅此而已:)
public class ContextAction : INotifyPropertyChanged
{
public string _name;
public ContextAction(string name)
{
_name = name;
}
public string Name
{
get { return _name; }
}
public event PropertyChangedEventHandler PropertyChanged;
}
您需要实现属性,而不是绑定工作的字段。喜欢这个:
public string Name { get; set };