c# - 创建一个包含选中 CheckBox 值的 ComboBox
问题描述
我正在创建一个CheckBox
s 列表和一个ComboBox
包含 WPF MVVM 应用程序中选中复选框的列表的列表。我不知道如何从复选框中绑定组合框选中值的文本。
这是我尝试过的:
<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
包含绑定到IsSystemChecked
属性的每个项目的复选框ComboBox
包含所有项目,Systems
但是如果IsSystemChecked
属性为假,Visibility
则设置Collapsed
为不显示
如果您有任何问题,请告诉我!希望这可以帮助。
推荐阅读
- c++ - 为什么类静态成员被认为是声明而实例成员不是?
- image - 重新定位 Rmarkdown 中的现有图片
- azure - 带有 istio 服务网格的 gke 中的 Azure apim 网关
- java - 运行程序时处理停止
- python - 在 matplotlib 中标记热图行
- abap - 错误 FOR ALL ENTRIES 选择的 SQL 命令太大
- reactjs - Apollo MockedProvider 无法使用带有 onCompleted 的 useLazyQuery 返回数据
- immutability - 重新绑定的规则是什么?
- php - 价格前的高级自定义字段
- c++ - C++ 如何为 ID2D1Device3 调用 CreateDeviceContext