gpt4 book ai didi

c# - 创建一个包含已选中复选框的值的组合框

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

我正在创建一个 CheckBox 列表和一个包含 WPF MVVM 应用程序中已选中复选框列表的 ComboBox。我不知道如何在组合框的文本中绑定(bind)复选框选中的值。

这是我尝试过的:

<ComboBox ItemsSource="{Binding Systems}" Grid.Row="4" Grid.Column="1" 
IsEditable="True" IsReadOnly="True" Text="{}">
<ComboBox.ItemTemplate>
<DataTemplate>
<CheckBox Content="{Binding TemplateName}" IsChecked="{Binding
IsSystemChecked, UpdateSourceTrigger=PropertyChanged}"/>
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>

最佳答案

这应该可以解决问题:

<StackPanel>
<ListView ItemsSource="{Binding Systems}" >
<ListView.ItemTemplate>
<DataTemplate>
<CheckBox Content="{Binding TemplateName}" IsChecked="{Binding
IsSystemChecked, UpdateSourceTrigger=PropertyChanged}"/>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>

<ComboBox ItemsSource="{Binding Systems}" DisplayMemberPath="TemplateName" >
<ComboBox.Style>
<Style TargetType="ComboBox">
<Setter Property="ItemContainerStyle">
<Setter.Value>
<Style TargetType="ComboBoxItem" BasedOn="{StaticResource {x:Type ComboBoxItem}}">
<Style.Triggers>
<DataTrigger Binding="{Binding IsSystemChecked}" Value="False">
<Setter Property="Visibility" Value="Collapsed" />
</DataTrigger>
</Style.Triggers>
</Style>
</Setter.Value>
</Setter>
</Style>
</ComboBox.Style>
</ComboBox>
</StackPanel>

这里有:

  • ListView 包含 Systems 中每个项目的复选框,它绑定(bind)到 IsSystemChecked 属性
  • ComboBox 包含 Systems 中的所有项目,但是如果 IsSystemChecked 属性为 false,则设置 VisibilityCollapsed 所以它不显示

如果您有任何问题,请告诉我!希望这会有所帮助。

关于c# - 创建一个包含已选中复选框的值的组合框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56271880/

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