如何将属性绑定到wpf中由组合框生成的复选框
本文关键字:组合 复选框 属性 绑定 wpf | 更新日期: 2023-09-27 18:06:12
我有一个带复选框的组合框,它的xaml看起来像这样:
<ComboBox Height="28" HorizontalAlignment="Left" Margin="106,7,0,0" Name="comboBox1" VerticalAlignment="Top" Width="174" ItemsSource="{Binding Names}">
<ComboBox.ItemTemplate>
<DataTemplate>
<CheckBox Name="ckabc" Content="{Binding}" CommandParameter="{Binding}" Command="{Binding Path=SetSelectAllCommand}"/>
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
和视图模型代码如下:
public List<string> Names
{
get { return names; }
set
{
names = value;
this.OnPropertyChanged(new PropertyChangedEventArgs("Names"));
}
}
我需要这个值在mainform上,所以我在构造函数中做了这部分:
Names = new List<string> { "Not Connected", "Quality", "Light",
"Connected", " Sensor", "Detected", "Unusable", "Change" };
this.OnPropertyChanged(new PropertyChangedEventArgs("Names"));
所以现在组合框将与复选框一起出现。我需要将复选框与调用API
的属性绑定请告诉我该怎么做?
。组合框的所有文本都是属性
无论为什么要这样做,确实有一种技术可以做到。通过利用ElementName
属性,您可以从模板"跳转"到根数据上下文。
<Window Name="Root">
<ComboBox Height="28" HorizontalAlignment="Left" Margin="106,7,0,0" Name="comboBox1" VerticalAlignment="Top" Width="174" ItemsSource="{Binding Names}">
<ComboBox.ItemTemplate>
<DataTemplate>
<CheckBox Name="ckabc" Content="{Binding ElementName=Root, Path=DataContext.MySpecialProperty}"/>
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
</Window>
话虽如此,ComboBox
中的CheckBox
听起来确实很奇怪,您可能需要重新考虑