簡體   English   中英

WPF ComboBox自定義顯示所選項目

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM