我创建了一个Recent Files菜单项,我绑定了一组最近的文件视图模型。
<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的工作方式)。我的视图模型有一个Number字段和Name字段。我重写ToString()方法以返回包含下划线的标题:
return string.Format("_{0} {1}", Number, FilePath);
但是,绑定时,下划线被视为文字并显示为标题文本(不是快捷方式)的一部分。我也试过没有运气使用HeaderStringFormat:我怎样才能让WPF看到下划线作为快捷方式而不是文字字符串?
答案 0 :(得分:1)
可以尝试返回AccessText
,但可能会破坏关注点。
如Matthew Whited所述,更简洁的方法是仅返回字符串并使用转换器将其转换为AccessText
。或者使用HeaderTemplate
并在那里创建它。