簡體   English   中英

WPF DataGrid中帶有復選框的組合框

[英]combobox with checkbox within a WPF DataGrid

我需要在WPF的DataGrid中顯示帶有復選框選項的組合框。 請為此提供任何解決方案。

我已經嘗試了以下代碼

<toolkit:DataGridTemplateColumn Header="Template">
                <toolkit:DataGridTemplateColumn.CellTemplate>
                    <DataTemplate>
                        <ComboBox>
                            <ComboBoxItem BindingGroup="{Binding Program}">
                                <StackPanel Orientation="Horizontal">
                                    <CheckBox IsChecked="{Binding IsChecked}" Width="20" />
                                    <TextBlock Text="{Binding Program}" Width="100" />
                                </StackPanel>
                            </ComboBoxItem>
                        </ComboBox>
                    </DataTemplate>
                </toolkit:DataGridTemplateColumn.CellTemplate>
            </toolkit:DataGridTemplateColumn>

它將像這樣輸出

在此處輸入圖片說明

任何人都請幫助加載組合框中的項目集合並更正我的代碼。

CS代碼:

  private void resultGrid_Loaded(object sender, RoutedEventArgs e)
    {
        var programs = new List<Programs>();
        programs.Add(new Programs("test", false));
        programs.Add(new Programs("test1", false));
        programs.Add(new Programs("test2", true));

        //var grid = sender as DataGrid;
        resultGrid.ItemsSource = programs;
        Combo.ItemsSource = programs;            

    }

和模型:

  public class Programs
{
   public Programs(string Program, bool IsChecked)
   {
       this.Program = Program;
       this.IsChecked = IsChecked;
   }

    public string Program { get; set; }
    public bool IsChecked { get; set; }
}

Finaly有一個想法@Sheridan提到:

在此處輸入圖片說明

您提供了一個DataTemplate來定義您的列應呈現ComboBox ,因此我不確定如何僅擴展它並提供一個DataTemplate來定義您的ComboBoxItem應該呈現為Checkbox 嘗試這樣的事情:

<toolkit:DataGridTemplateColumn Header="Template">
    <toolkit:DataGridTemplateColumn.CellTemplate>
        <DataTemplate>
            <ComboBox>
                <ComboBox.ItemTemplate>
                    <DataTemplate>
                        <StackPanel Orientation="Horizontal">
                            <CheckBox IsChecked="{Binding IsChecked}" Width="20" />
                            <TextBlock Text="{Binding Program}" Width="100" />
                        </StackPanel>
                    </DataTemplate>
                </ComboBox.ItemTemplate>
            </ComboBox>
        </DataTemplate>
    </toolkit:DataGridTemplateColumn.CellTemplate>
</toolkit:DataGridTemplateColumn>

我將離開您以完成此操作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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