gpt4 book ai didi

wpf - 更改 Button.Click 上的 ListBox.ItemsSource 绑定(bind)属性?

转载 作者:行者123 更新时间:2023-12-04 03:34:18 26 4
gpt4 key购买 nike

快速提问...

我有一个 ListBox及其ItemsSource属性绑定(bind)到 View 模型中的集合属性,如下所示:

<ListBox Name="CollectionsListBox" ItemsSource="{Binding Activity.Timesheets}" />

我也有两个 Button同一 View 中的对象。问题是...我可以更改 CollectionsListBox ItemsSource Binding来自 Activity.TimesheetsActivity.Attachments只使用 XAML?

做不到这一点,从使用命令对象的 View 模型?

编辑>>>

我通过使用 RadioButton 找到了一个简单的解决方案s 而不是 Button来自霍华德回答的一部分:
<ListBox Name="CollectionsListBox">
<ListBox.Style>
<Style>
<Style.Triggers>
<DataTrigger Binding="{Binding ElementName=TimesheetsButton,Path=IsChecked}" Value="True">
<Setter Property="ListBox.ItemsSource" Value="{Binding Activity.Timesheets}" />
<Setter Property="ListBox.ItemContainerStyle" Value="{StaticResource TimesheetStyle}" />
</DataTrigger>
<DataTrigger Binding="{Binding ElementName=AttachmentsButton,Path=IsChecked}" Value="True">
<Setter Property="ListBox.ItemsSource" Value="{Binding Activity.Attachments}" />
<Setter Property="ListBox.ItemContainerStyle" Value="{StaticResource AttachmentStyle}" />
</DataTrigger>
</Style.Triggers>
</Style>
</ListBox.Style>
</ListBox>

非常感谢您的帮助。

最佳答案

我不确定 Button 是否可以做到这一点。但是单选按钮只能在 XAML 中满足您的要求。

假设我们有两个枚举:

public enum E { A = 0, B = 1, C = 2 }
public enum F { G = 0, H = 1, L = 2 }

我将它们定义为 XAML 中的资源:
<ObjectDataProvider ObjectType="{x:Type sys:Enum}" MethodName="GetValues" x:Key="EProvider">
<ObjectDataProvider.MethodParameters>
<x:TypeExtension Type="{x:Type local:E}" />
</ObjectDataProvider.MethodParameters>
</ObjectDataProvider>

<ObjectDataProvider ObjectType="{x:Type sys:Enum}" MethodName="GetValues" x:Key="FProvider">
<ObjectDataProvider.MethodParameters>
<x:TypeExtension Type="{x:Type local:F}" />
</ObjectDataProvider.MethodParameters>
</ObjectDataProvider>

然后我们开始:
<ListBox x:Name="List1">
<ListBox.Style>
<Style>
<Style.Triggers>
<MultiDataTrigger>
<MultiDataTrigger.Conditions>
<Condition Binding="{Binding ElementName=Rdb1,Path=IsChecked}" Value="True"/>
</MultiDataTrigger.Conditions>
<Setter Property="ListBox.ItemsSource" Value="{Binding Source={StaticResource EProvider}}" />
</MultiDataTrigger>
<MultiDataTrigger>
<MultiDataTrigger.Conditions>
<Condition Binding="{Binding ElementName=Rdb2,Path=IsChecked}" Value="True"/>
</MultiDataTrigger.Conditions>
<Setter Property="ListBox.ItemsSource" Value="{Binding Source={StaticResource FProvider}}" />
</MultiDataTrigger>
</Style.Triggers>
</Style>
</ListBox.Style>
</ListBox>
<RadioButton x:Name="Rdb1" GroupName="Group1" />
<RadioButton x:Name="Rdb2" GroupName="Group1" />

关于wpf - 更改 Button.Click 上的 ListBox.ItemsSource 绑定(bind)属性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5751651/

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