绑定StringFormat似乎无法正常工作

Ada*_*dam 7 wpf binding

我有一个DataGrid和一个Expander,如下所示:

<StackPanel>
<my:DataGrid Name="dataGrid1" AutoGenerateColumns="False"  ItemsSource="{Binding}">...</my:DataGrid>
<Expander Header="{Binding ElementName=dataGrid1, Path=SelectedItem.Name, StringFormat=Details of {0}}">...</Expander>
</StackPanel>
Run Code Online (Sandbox Code Playgroud)

绑定很好,但由于某种原因,字符串格式不起作用.它始终只显示值dataGrid1.SelectedItem.Name我也尝试过:

StringFormat=Details of \{0\}
Run Code Online (Sandbox Code Playgroud)

这不起作用.

我甚至尝试将Expander的HeaderStringFormat属性设置为"{0}的细节",但这也没有格式化它.

我能够让这个解决方法工作:

<Expander>
<Expander.Header>
<TextBox Text="{Binding ElementName=dataGrid1, Path=SelectedItem.Name, StringFormat=Details of {0}}"></TextBox>
</Expander.Header>
</Expander>
Run Code Online (Sandbox Code Playgroud)

有谁知道为什么StringFormat不适用于Header属性?

And*_*ndy 4

根据http://codingcontext.wordpress.com/2008/11/17/headerformatstring-and-contentformatstring/,看起来该HeaderStringFormat属性并不意味着与字符串格式绑定一起使用,而是指定要使用的格式当绑定到实现IFormattable.

鉴于此,我也无法让字符串格式直接在绑定表达式中工作,因此这可能只是一个错误。您应该尝试通知微软,也许他们会修复它。

根据您的解决方法,我建议使用 aTextBlock而不是 a TextBox,因为您可能不希望用户能够编辑标题中的文本Expander