gpt4 book ai didi

wpf - 如何将 MenuItem 的数据绑定(bind)列表合并到 WPF 中的另一个 MenuItem?

转载 作者:行者123 更新时间:2023-12-01 18:12:33 26 4
gpt4 key购买 nike

我有一个"file"MenuItem,我想显示最近打开的文件列表。

这是我现在拥有的 xaml:

<MenuItem Header="File}">
<MenuItem Header="Preferences..." Command="{Binding ShowOptionsViewCommand}" />
<Separator />
<ItemsControl ItemsSource="{Binding RecentFiles}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<MenuItem Header="{Binding DisplayPath}" CommandParameter="{Binding}"
Command="{Binding Path=DataContext.OpenRecentFileCommand, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type Window}}}">
</MenuItem>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
<Separator />
<MenuItem Header="Exit" Command="{Binding CloseCommand}" />
</MenuItem>

但是,当我使用此代码时,MenuItem 周围有一个奇怪的偏移,并且看起来它们周围有一个容器。我怎样才能摆脱它?

这是它的屏幕截图:

alt text http://www.cote-soleil.be/FileMenu.png

最佳答案

“奇怪的偏移量”是一个MenuItem。父 MenuItem 已为您生成子 MenuItem,但您的 DataTemplate 添加了第二个。试试这个:

<MenuItem Header="File}">
<MenuItem Header="Preferences..." Command="{Binding ShowOptionsViewCommand}" />
<Separator />
<ItemsControl ItemsSource="{Binding RecentFiles}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding DisplayPath}"/>
</DataTemplate>
</ItemsControl.ItemTemplate>
<ItemsControl.ItemContainerStyle>
<Style TargetType="MenuItem">
<Setter Property="Command" Value="{Binding DataContext.OpenRecentFileCommand, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type Window}}}"/>
<Setter Property="CommandParameter" Value="{Binding}"/>
</Style>
</ItemsControl.ItemContainerStyle>
</ItemsControl>
<Separator />
<MenuItem Header="Exit" Command="{Binding CloseCommand}" />
</MenuItem>

请注意仅包含 TextBlock 的简化 DataTemplate,以及用于在生成的 MenuItem 上设置属性的 ItemContainerStyle

关于wpf - 如何将 MenuItem 的数据绑定(bind)列表合并到 WPF 中的另一个 MenuItem?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1399159/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com