【发布时间】:2016-05-24 13:50:01
【问题描述】:
您好,我是 WPF 开发新手,遇到了关于将公共变量绑定到 TextBlock 元素的问题。
<ListBox.ContextMenu>
<ContextMenu ItemsSource="{Binding ActionsView}">
<ContextMenu.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding Name}" />
</DataTemplate>
</ContextMenu.ItemTemplate>
</ContextMenu>
Action View 是一个公开的可观察的 Action Items 集合,每个 Action Items 都有一个名称,该名称可作为 Name 公开访问。所以通常应该没有问题。如果我右键单击我的项目,我会得到一个空的 ContextMenu,其中包含正确的条目数但没有任何文本。
picture of the empty ContextMenu
public class Action : INotifyPropertyChanged
{
public string Name;
public ContextAction(string name)
{
Name = name;
}
public event PropertyChangedEventHandler PropertyChanged;
}
如果有人能帮我解决这个问题,那就太好了。
【问题讨论】:
-
据我所知,绑定引擎不会在公共领域工作。尝试添加 getter 和 setter。
-
是的,这就是 getter 和 setter 的全部问题,一切都很好;)
标签: c# wpf contextmenu datatemplate itemtemplate