[英]Using underscores in WPF menu items when binding
我創建了“最近文件”菜單項,將最近文件視圖模型的集合綁定到該菜單項。
<MenuItem Header="_Recent Files" ItemsSource="{Binding RecentFiles}" Command="{x:Static pm:MainWindow.RecentFileListCommand}">
<MenuItem.ItemContainerStyle>
<Style>
<Setter Property="MenuItem.Header" Value="{Binding}"/>
<Setter Property="MenuItem.Command" Value="{x:Static pm:MainWindow.RecentFileOpenCommand}"/>
<Setter Property="MenuItem.CommandParameter" Value="{Binding FilePath}"/>
</Style>
</MenuItem.ItemContainerStyle>
</MenuItem>
我希望列表編號,並且希望數字用作快捷方式(正是Visual Studio做到的方式)。 我的視圖模型有一個數字字段和名稱字段。 我重寫ToString()方法以返回包含下划線的標頭:
return string.Format("_{0} {1}", Number, FilePath);
但是,綁定后,下划線被視為文字,並顯示為標題文本的一部分(而不是快捷方式)。 我也嘗試使用HeaderStringFormat時沒有運氣:如何讓WPF將下划線視為快捷方式而不是文字字符串?
可以嘗試返回一個AccessText
,盡管它可能會中斷關注點的分離。
正如Matthew Whited提到的,一種更干凈的方法是僅返回字符串,並使用轉換器將其轉換為AccessText
。 或者使用HeaderTemplate
並在此處創建它。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.