簡體   English   中英

在wpf datagrid中動態添加復選框列

[英]Add check box column in wpf datagrid dynamically

我正在使用WPF數據網格來使用MVVM顯示詳細信息。 此datagrid的列是根據用戶在運行時動態定義的。 一切正常。 但是,我需要與現有字段一起動態地包含在此datagrid的“復選框”列中。 我使用了以下代碼。

...

foreach (var column in collection)
{
  GridColumnAdd(gridView, column);
}

...

private static void GridColumnAdd(DataGrid gridView, DataGridColumns columnName)
    {

        if (columnName.DisplayColumnName == "Print")
        {
            var column = new DataGridCheckBoxColumn();

            column.Header = columnName.DisplayColumnName;
            column.Binding = new Binding();

            var binding = (column.Binding as Binding);
            binding.Mode = BindingMode.TwoWay;

            if (binding != null)
            {
                IValueConverter converter = binding.Converter = new ColumnValueConverter(); // Will work here
                binding.ConverterParameter = columnName.BindingPropertyName;
            }

            gridView.Columns.Add(column);

        }
        else
        {
            var column = new DataGridTextColumn();

            column.IsReadOnly = true;
            column.Header = columnName.DisplayColumnName;
            column.Binding = new Binding();
            var binding = (column.Binding as Binding);
            if (binding != null)
            {
                IValueConverter converter = binding.Converter = new ColumnValueConverter(); // Will work here
                binding.ConverterParameter = columnName.BindingPropertyName;
            }
            gridView.Columns.Add(column);

        }
    }

運行此程序時,我遇到以下異常“雙向綁定需要路徑或XPath”。

您能幫我動態地在現有datagrid列中包括復選框列嗎?

Binding()構造函數中的路徑定義為Binding("IsChecked")

參考鏈接,您將獲得一些幫助。 如果您仍然不知道該怎么做。 在此答案中添加評論。

暫無
暫無

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

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