gpt4 book ai didi

c# - 将 Listbox.ItemContainerStyle 绑定(bind)到当前项目属性

转载 作者:太空宇宙 更新时间:2023-11-03 13:04:19 24 4
gpt4 key购买 nike

在我的 C# Windows 应用商店应用程序中,我试图将 ListBoxItemVisibility 属性绑定(bind)到存在于每个 Items 中的属性在 ItemsSource 中。

基本上我所拥有的是:

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>

但我无法绑定(bind)到 ListBox.ItemContainerStyle 内的 isVisible 属性。相反,它希望我绑定(bind)到 DataContext 的另一个属性。如果我向下移动几行到 ListBox.ItemTemplate,我就可以绑定(bind)到 ItemsSource 中各个 ExampleClass 项目的属性,但为什么我无法在 ItemContainerStyle 内部绑定(bind)到上面几行的那些相同属性?

最佳答案

您不能绑定(bind)到字段。您需要将其设为属性并实现 INotifyPropertyChanged

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

关于c# - 将 Listbox.ItemContainerStyle 绑定(bind)到当前项目属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31276186/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com