簡體   English   中英

綁定時在WPF菜單項中使用下划線

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM