[英]WPF ComboBox Custom Display Selected Items
我遵循了在線教程,為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之類的內容。 就目前而言,盡管我很滿足於能夠在折疊的控制器上放置任何文本而在ComboBox標記上不具有“ IsEditable = true”的條件。
UPDATE
我一直在編輯模板,並且幾乎可以“正常工作”
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")
它將顯示新字符串,但如果顯示如圖所示,它將無法正常工作。
請看這里的下一個鏈接(#1,012 –對組合框的外觀使用其他數據模板),它應該會對您有所幫助。
更新此處以查看組合的多重選擇: WPF:帶有CheckBoxes作為項目的ComboBox(甚至可以即時更新!) 。
如果您的代碼有問題,我仍然很樂意為您提供幫助。 問候。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.