2017-04-21 45 views
0

我有一個wpf用戶控件,綁定到數據表的數據網格。列是自動生成的。出於某種原因,綁定的布爾值不會顯示爲已檢查。我有的文本列正確顯示。這裏是我的代碼有:WPF - 將數據網格綁定到數據表,自動生成的列,布爾值沒有標記爲檢查

XAML:

<DataGrid 
    ItemsSource="{Binding Data.DefaultView}" 
    Grid.ColumnSpan="2" 
    CanUserAddRows="False" 
    CanUserDeleteRows="False" 
    CanUserReorderColumns="False" 
    CanUserSortColumns="False" 
    CanUserResizeColumns="True" 
    CanUserResizeRows="True" 
    /> 

代碼在視圖模型:

public void SetupDataTable() 
    { 
     this.Data = new DataTable(); 

     var column = this.Data.Columns.Add("#", typeof(int)); 
     column.ReadOnly = true; 
     column = this.Data.Columns.Add("Description", typeof(string)); 
     column.ReadOnly = true; 
     column = this.Data.Columns.Add(this.CurrentReliefDevice.ToString(), typeof(bool)); 
     column.ReadOnly = true; 

     foreach (var reliefDevice in this.OtherReliefDevices) 
     { 
      this.Data.Columns.Add(reliefDevice.ToString(), typeof(bool)); 
     } 

     foreach (var pipeItem in this.PipeItems) 
     { 
      var dataRow = this.Data.NewRow(); 

      dataRow[0] = pipeItem.PipeItemNumber; 
      dataRow[1] = pipeItem.PipeItemType?.ShortName; 
      dataRow[2] = true; 

      var array = this.OtherReliefDevices.ToArray(); 
      for (var i = 0; i < array.Count(); i++) 
      { 
       dataRow[i + 3] = pipeItem.AssociatedReliefDevices.Contains(array[i]); 
      } 

      this.Data.Rows.Add(dataRow); 
     } 

     this.Data.AcceptChanges(); 
    } 
+0

似乎適合我。 – AQuirky

+0

具體來說,我所看到的是dataRow [2]沒有在網格中顯示,即使它被設置爲true。 –

回答

0

我想通了。它與綁定無關。我的列標題在運行時可用,其中包含句點「。」。在他們中。這顯然是中斷列標題的問題。當我刪除期間,它工作得很好。

相關問題