为什么 StringFormat 对我的 MenuItem.Header 的绑定没有影响?
Why does StringFormat have no effect on the binding of my MenuItem.Header?
我的所有 6 个样本的绑定中都有 "StringFormat",但应用了 none,我只得到了没有任何格式的值。
知道我哪里做错了吗?
<MenuItem Header="{Binding SeriesNearMouse.Count, StringFormat='Series {0}'}">
</MenuItem>
<MenuItem DataContext="SeriesNearMouse">
<MenuItem.Header>
<Binding Path="Count"
StringFormat="Series{0:D}test">
</Binding>
</MenuItem.Header>
</MenuItem>
<MenuItem>
<MenuItem.Header>
<Binding Path="SeriesNearMouse.Count"
StringFormat="Series{0}">
</Binding>
</MenuItem.Header>
</MenuItem>
<MenuItem Header="{Binding SeriesNearMouse.Count, StringFormat='{}Series {0}'}">
</MenuItem>
<MenuItem DataContext="SeriesNearMouse">
<MenuItem.Header>
<Binding Path="Count"
StringFormat="{}Series{0:D}test">
</Binding>
</MenuItem.Header>
</MenuItem>
<MenuItem>
<MenuItem.Header>
<Binding Path="SeriesNearMouse.Count"
StringFormat="{}Series{0}">
</Binding>
</MenuItem.Header>
</MenuItem>
它可能没有像您期望的那样工作,因为 MenuItem.Header 是一个对象,而不是字符串。
这样的事情应该可行,因为 Run.Text 是一个字符串:
<MenuItem>
<MenuItem.Header>
<Run Text="{Binding SeriesNearMouse.Count, StringFormat='Series {0}', Mode=OneWay}" />
</MenuItem.Header>
</MenuItem>
迟到的答案
Header
不是字符串 属性。它实际上是在 ContentPresenter
中呈现的对象 属性。为了将字符串格式传递给ContentPresenter
,MenuItem
提供了HeaderStringFormat
属性:
<MenuItem Header="{Binding SeriesNearMouse.Count}" HeaderStringFormat="Series {0}">
我的所有 6 个样本的绑定中都有 "StringFormat",但应用了 none,我只得到了没有任何格式的值。
知道我哪里做错了吗?
<MenuItem Header="{Binding SeriesNearMouse.Count, StringFormat='Series {0}'}">
</MenuItem>
<MenuItem DataContext="SeriesNearMouse">
<MenuItem.Header>
<Binding Path="Count"
StringFormat="Series{0:D}test">
</Binding>
</MenuItem.Header>
</MenuItem>
<MenuItem>
<MenuItem.Header>
<Binding Path="SeriesNearMouse.Count"
StringFormat="Series{0}">
</Binding>
</MenuItem.Header>
</MenuItem>
<MenuItem Header="{Binding SeriesNearMouse.Count, StringFormat='{}Series {0}'}">
</MenuItem>
<MenuItem DataContext="SeriesNearMouse">
<MenuItem.Header>
<Binding Path="Count"
StringFormat="{}Series{0:D}test">
</Binding>
</MenuItem.Header>
</MenuItem>
<MenuItem>
<MenuItem.Header>
<Binding Path="SeriesNearMouse.Count"
StringFormat="{}Series{0}">
</Binding>
</MenuItem.Header>
</MenuItem>
它可能没有像您期望的那样工作,因为 MenuItem.Header 是一个对象,而不是字符串。
这样的事情应该可行,因为 Run.Text 是一个字符串:
<MenuItem>
<MenuItem.Header>
<Run Text="{Binding SeriesNearMouse.Count, StringFormat='Series {0}', Mode=OneWay}" />
</MenuItem.Header>
</MenuItem>
迟到的答案
Header
不是字符串 属性。它实际上是在 ContentPresenter
中呈现的对象 属性。为了将字符串格式传递给ContentPresenter
,MenuItem
提供了HeaderStringFormat
属性:
<MenuItem Header="{Binding SeriesNearMouse.Count}" HeaderStringFormat="Series {0}">