我有一些問題,當我有一個數據表,我想要將datagrid中的每個datagridtextcolumn綁定到數據表中的每一列。Datagridtextcolumn綁定到數據表
我的代碼是如下
public class Packet
{
public Header header { get; set; }
public Frame frame { get; set; }
public Tail tail { get; set; }
public String id { get; set; }
public Packet(String id,Header header, Frame frame, Tail tail)
{
this.id = id;
this.header = header;
this.frame = frame;
this.tail = tail;
}
}
因此在我XAML側
<Grid >
<DataGrid AutoGenerateColumns="False" ItemsSource="{Binding Path=.}" Name="dgrid" SelectionChanged="dgrid_SelectionChanged">
<DataGrid.Columns>
<DataGridTextColumn Header="ID" Binding="{Binding Path=id}"/>
</DataGrid.Columns>
</DataGrid>
</Grid>
而在我的碼側,ds是具有一個數據表中的數據集。每行是與報頭幀尾和id相對應的包4列。我試圖讓id先綁定正確。但是ID號碼不能顯示在數據網格上。
dgrid.DataContext = ds.Tables[0];
它實際上顯示正確的數據,如果我不使用xaml側的datagridtextcolumn。但是我想要的是將xaml一側的綁定綁定到數據表。
這似乎沒有問題。你能看到關於在調試窗口中綁定的任何第一個異常嗎?或者你檢查了'ds.Tables [0]'的實例是否被正確初始化? –
@edelweiss嘗試刪除datagrid上的綁定,然後在您的代碼中執行此操作。 –
@jwJung當我運行它時,我在輸出窗口中看到了這個。 System.Windows.Data Error:40:BindingExpression path error:'id'property not found on'object'''DataRowView'(HashCode = 8381127)'。 BindingExpression:路徑= ID; DataItem ='DataRowView'(HashCode = 8381127);目標元素是'TextBlock'(Name ='');目標屬性是'文本'(類型'String')。這意味着它實際上沒有正確的綁定? – edelweiss