C# WPF组合框自定义显示选定项
我遵循了一个在线教程,为wpf项目创建了一个包含复选框的多选列表框。我能够在后端相应地操作所选值,但我找不到解决方案,无法在折叠时将控件上显示的值设置为我想要的任何文本C# WPF组合框自定义显示选定项,c#,wpf,xaml,combobox,multi-select,C#,Wpf,Xaml,Combobox,Multi Select,我遵循了一个在线教程,为wpf项目创建了一个包含复选框的多选列表框。我能够在后端相应地操作所选值,但我找不到解决方案,无法在折叠时将控件上显示的值设置为我想要的任何文本 XAML <ComboBox x:Name="chSel_0"> <ComboBox.ItemTemplate> <DataTemplate> <StackPanel Orientation="Horizontal"> <CheckBo
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>
<ContentPresenter DataContext="Binding" Content="{Binding KeysCfgChannels[0]}"/>
C#
public主窗口()
{
DataContext=this;
初始化组件();
CfgChannels();
}
public observeCollection keys CfgChannel{get;private set;}
公共无效CFGCchannels()
{
字符串val=”“;
this.KeysCfgChannels=新的ObservableCollection{};
对于(int i=0;i<16;i++)
{
foreach(ChSelVal ch in chCfgs[i])
{
如果(包括第三章)
{
val+=通道;
}
}
keycfgcchannels.Add(val);
//val=“0 1 2 3 4 5 6 7 8 9 10 11 12 14 16”;
}
}
问题是,如果新字符串是隐式声明的,那么它将只显示新字符串。如果我按键CfgChannel添加(“0 1 2 3”)
,它将显示。但是如果我按图所示使用它,它将不起作用。查看下一个链接(#1012–使用不同的数据模板作为组合框的正面),它应该会对您有所帮助
更新
在这里查看combo multiselection:
如果您在代码方面遇到问题,我仍然很乐意提供帮助。
问候。看看下一个链接(#1012–对组合框的正面使用不同的数据模板),它应该会对您有所帮助
更新
在这里查看combo multiselection:
如果您在代码方面遇到问题,我仍然很乐意提供帮助。
注意。此代码假定仅选择了一个值,但我有一个多选下拉列表。此代码假定仅选择了一个值,但我有一个多选下拉列表
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";
}
}