gpt4 book ai didi

wpf - 在 WPF ListView 中隐藏 ListViewItem

转载 作者:行者123 更新时间:2023-12-01 08:12:53 24 4
gpt4 key购买 nike

如何在绑定(bind)的 ListView 中隐藏 ListViewItem?注意:我不想删除它。

最佳答案

是的,这很容易。

您需要做的第一件事是向要绑定(bind)的类添加一个属性。例如,如果您使用 FirstName 和 LastName 绑定(bind)到 User 类,只需添加一个 Boolean IsSupposedToShow 属性(当然,您可以使用任何您喜欢的属性)。像这样:

class User: INotifyPropertyChanged
{
public event PropertyChangedEventHandler PropertyChanged;

public string FirstName { get; set; }
public string LastName { get; set; }

private bool m_IsSupposedToShow;
public bool IsSupposedToShow
{
get { return m_IsSupposedToShow; }
set
{
if (m_IsSupposedToShow == value)
return;
m_IsSupposedToShow = value;
if (PropertyChanged != null)
PropertyChanged(this,
new PropertyChangedEventArgs("IsSupposedToShow"));
}
}
}

然后,请记住,要隐藏某些项目,不要在 UI 中进行 - 不不不!在数据中做到这一点。我的意思是,寻找您想要隐藏的用户记录并在后台更改该属性(如在 View 模型中) - 让 UI 使用react。使 XAML 服从数据。

像这样:
<DataTemplate DataType="{x:Type YourType}">
<DataTemplate.Resources>
<Style TargetType="{x:Type TextBlock}">
<Style.Triggers>
<DataTrigger Binding="{Binding IsSupposedToShow}" Value="False">
<Setter Property="Visibility" Value="Collapsed"/>
</DataTrigger>
</Style.Triggers>
</Style>
</DataTemplate.Resources>
<!-- your UI here -->
<TextBlock>
<TextBlock.Text>
<MultiBinding StringFormat="{}{0}, {1}">
<Binding Path="LastName" />
<Binding Path="FirstName" />
</MultiBinding>
</TextBlock.Text>
</TextBlock>
</DataTemplate>

当您将 IsSupposedToShow 更改为 false 时,XAML 会理解它应该更改整个 DataTemplate 的可见性。 WPF 和 presto 为您准备好了一切,这就是您在问题中想要的!

祝你好运!

关于wpf - 在 WPF ListView 中隐藏 ListViewItem,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4056076/

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