将ListBox绑定到ObservableCollection时绑定ListBoxItem属性

时间:2013-08-26 16:15:45

标签: c# wpf mvvm listbox

我有一个绑定到ObservableCollection的ListBox:

<ListBox ItemsSource="{Binding ObservableCollectionOfFoos}" />

ObservableCollection包含Foo的实例,Foo实现了INotifyPropertyChanged。 我正在尝试将ListBoxItems的属性绑定到Foo的属性。 这是我试过的:

<DataTemplate DataType="{x:Type local:Foo}" >
    <TextBlock Content="{Binding PropertyOfFoo}" Background="{Binding AnotherPropertyOfFoo}"/>
</DataTemplate>

这是有效的,但是,问题是我只能访问TextBlock的属性而不是包含ListBoxItem,因此,例如,Background仅更改文本周围的颜色而不是整个条目。我有一种感觉,我在这里使用错误的工具。

正确方向的一点将非常感激。

1 个答案:

答案 0 :(得分:1)

DataTemplate指定列表框项目内容的模板(UI表示)。您需要设置样式的是项容器本身,可以通过ItemContainerStyle的{​​{1}}属性来完成。