【发布时间】:2021-10-15 03:30:56
【问题描述】:
我在这样的数据模板中有一个 TreeView:
<DataTemplate DataType="{x:Type MainFavoriteItems}">
<TreeView BorderThickness="0">
<TreeViewItem Header="First Header" ItemsSource="{Binding FavItems}" ItemTemplate="{StaticResource item_template}"/>
<TreeViewItem Header="Second Header" ../>
<TreeViewItem Header="Third Header" ../>
<TreeView.ItemContainerStyle>
<Style TargetType="{x:Type TreeViewItem}" BasedOn="{StaticResource {x:Type TreeViewItem}}">
<Setter Property="ContextMenu" Value="{Binding GetMenu}}"/> // DO not work
</TreeView.ItemContainerStyle>
</TreeView>
</DataTemplate>
internal class MainFavoriteItems{
public IReadOnlyList<Info> FavItems
{
get
{
List<Info> items = new List<Info>();
items.Add(new InnerViewModel("1"));
items.Add(new InnerViewModel("2"));
NotifyPropertyChanged(() => FavItems);
return items;
}
}
}
public class InnerViewModel
{
public string Id;
public System.Windows.Controls.ContextMenu GetMenu => new CustomContextMenu();
...
}
当我运行它时,标题及其子项看起来很好,但内部项目的右键单击 ContextMenu 没有显示,并且它的 xaml 输出错误说.. GetMenu property not found on object 'MainFavoriteItems' .. 我在做什么错误的 !?谢谢。
【问题讨论】:
标签: wpf xaml treeview datatemplate