我按照在线教程为wpf项目提供多选 ListBox
以包含复选框。我可以在后端相应地操作选定的值,但是当折叠到我想要的任何文本时,我无法找到解决方案来设置控件上的显示值。
XAML
<ComboBox x:Name="chSel_0">
<ComboBox.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<CheckBox x:Name="key_0" IsChecked="{Binding IsIncluded}" Checked="CheckBox_Checked" Unchecked="CheckBox_Unchecked"/>
<TextBlock Text="{Binding Channel}"/>
</StackPanel>
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
例如,如果我从可用项目中选择复选框1,4,6,我希望ComboBox在折叠时显示1,4,6。现在虽然我满足于能够在没有'IsEditable = true&#39;的情况下在折叠的控制器上放置任何文本。在ComboBox标签上。
更新
我一直在编辑模板,并且几乎已经完成了工作&#34;
XAML
<ContentPresenter DataContext="Binding" Content="{Binding KeysCfgChannels[0]}"/>
C#
public MainWindow()
{
DataContext = this;
InitializeComponent();
CfgChannels();
}
public ObservableCollection<string> KeysCfgChannels { get; private set; }
public void CfgChannels()
{
string val = "";
this.KeysCfgChannels = new ObservableCollection<string> { };
for (int i = 0; i < 16; i++)
{
foreach (ChSelVal ch in chCfgs[i])
{
if (ch.IsIncluded)
{
val += ch.Channel;
}
}
KeysCfgChannels.Add(val);
//val = "0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16";
}
}
问题是它只显示新字符串如果它隐式声明,如果我KeysCfgChannels.Add("0 1 2 3")
将会显示但是它不会起作用我有如图所示。
答案 0 :(得分:0)
查看下一个链接here(#1,012 - 使用面向ComboBox的不同数据模板),它应该对您有所帮助。
<强>更新强> 看这里的组合多选: WPF: ComboBox with CheckBoxes as items (it will even update on the fly!)
如果您遇到代码问题,我仍然很乐意提供帮助。 问候。