绑定为格式化字符串

时间:2011-07-22 19:23:39

标签: wpf data-binding string-formatting

我有一个ListBox,它包含一组对象(通过ItemsSource绑定到ObservableCollection)。我还没有使用动态绑定。它目前使用对象的ToString()方法。 ToString()方法以这种方式显示字符串:name (someOtherProperty)

然而,即使实现了INotifyPropertyChanged并且我使用了ObservableCollection 如果我更改了item属性,则此字符串将不会更新

我认为这是因为它只调用ToString一次。相反,我想我必须使用数据绑定但如何我可以用它形成这样的字符串? << name(someOtherProperty)>>

感谢。

1 个答案:

答案 0 :(得分:3)

您可以使用多重绑定,例如像这样的东西:

<MultiBinding StringFormat="{}{0} ({1})">
    <Binding Path="name"/>
    <Binding Path="someOtherProperty"/>
</MultiBinding>

如果您只是让它执行ToString,则根本没有正确的绑定,任何通知都不起作用。

你这样使用它:

<ListBox ...>
    <ListBox.ItemTemplate>
        <DataTemplate>
            <TextBlock>
                <TextBlock.Text>
                    <!-- The above binding here -->
                </TextBlock.Text>
            </TextBlock>
        </DataTemplate>
    </ListBox.ItemTemplate>
</ListBox>