将Listbox.ItemContainerStyle绑定到当前项属性

时间:2015-07-07 18:07:55

标签: c# wpf listbox

在我的C#Windows应用商店应用中,我尝试将Visibility的{​​{1}}属性绑定到ListBoxItem中每个Items的属性。< / p>

基本上我拥有的是:

ItemsSource

在我的datacontext中,我有一个class ExampleClass { bool isVisible; } 列表。我要对ExampleClass尝试的内容如下:

ListBox

但我无法绑定<ListBox x:Name="ExampleLB" DataContext=""{StaticResource myContext}" ItemsSource="{Binding ExampleClassList}"> <ListBox.ItemContainerStyle> <Style TargetType="ListBoxItem"> <!--This doesnt work--> <Setter Property="Visibility" Value="{Binding isVisible, Converter={StaticResource VisibilityConverter}"/> </Style> </ListBox.ItemContainerStyle> /*More code here*/ </ListBox> 内的isVisible属性。相反,它希望我绑定到我的ListBox.ItemContainerStyle的另一个属性。如果我向下移动几行到DataContext我能够绑定到ListBox.ItemTemplate中各个ExampleClass项的属性,但为什么我无法绑定到那些ItemsSource属于ItemContainerStyle内部几行的属性?

1 个答案:

答案 0 :(得分:1)

您无法绑定到某个字段。您需要将其设为属性并实施INotifyPropertyChanged

bool isVisible;
public bool IsVisible
{
  get { return isVisible;}
  set
  {
    isVisible = value;
    OnPropertyChanged("IsVisible");
  }
}