DataGrid 列自定义绑定
DataGrid Column Custom Binding
我是新手,遇到以下问题确实很挣扎:
我有一个下面的列,可以正确加载数据:
<xcdg:Column Title="TestData" FieldName="TestData" Width="1*" >
但我需要通过从弹出窗口中选择一个值来修改它 window。
我之前已经解决过类似的,但它是针对文本框的:
<TextBox Grid.Row="1" Grid.Column="1" Text="{Binding Model.TestData}">
<TextBox.InputBindings>
<KeyBinding Key="F12" Command="{Binding SearchCommand}" CommandParameter="TestData"></KeyBinding>
</TextBox.InputBindings>
</TextBox>
不确定是否需要有关弹出窗口的更多信息,基本上它会返回选定的值,该值应该到达该列。
您只需将新值分配给适当的单元格即可。
DataRowView drv = myDataGrid.CurrentItem as DataRowView;
drv["FieldName"] = "New Value";
在下面显示的示例中,我使用带有 ID、名称和结果属性的弹出窗口 window。它将显示提供的 ID 和名称。用户可以编辑名称(我将 ID 字段设置为只读),然后单击确定或取消按钮。两者都会关闭弹出窗口,但只有单击确定按钮才会在关闭前将结果 属性 设置为真。然后我可以检查这个结果 属性 以了解我是否应该更新网格中的单元格。
private void btnShowPopup_Click(object sender, RoutedEventArgs e)
{
// Get the grid's current row
DataRowView drv = this.myGrid.CurrentItem as DataRowView;
// Popup shows product's ID and Name (user can only edit Name)
Popup popup = new Popup();
popup.ProductID = drv["ProductID"].ToString();
popup.ProductName = drv["ProductName"].ToString();
popup.ShowDialog();
// Apply changes if user clicked the OK button
if (popup.Result == true)
drv["ProductName"] = popup.ProductName;
}
我是新手,遇到以下问题确实很挣扎:
我有一个下面的列,可以正确加载数据:
<xcdg:Column Title="TestData" FieldName="TestData" Width="1*" >
但我需要通过从弹出窗口中选择一个值来修改它 window。
我之前已经解决过类似的,但它是针对文本框的:
<TextBox Grid.Row="1" Grid.Column="1" Text="{Binding Model.TestData}"> <TextBox.InputBindings> <KeyBinding Key="F12" Command="{Binding SearchCommand}" CommandParameter="TestData"></KeyBinding> </TextBox.InputBindings> </TextBox>
不确定是否需要有关弹出窗口的更多信息,基本上它会返回选定的值,该值应该到达该列。
您只需将新值分配给适当的单元格即可。
DataRowView drv = myDataGrid.CurrentItem as DataRowView;
drv["FieldName"] = "New Value";
在下面显示的示例中,我使用带有 ID、名称和结果属性的弹出窗口 window。它将显示提供的 ID 和名称。用户可以编辑名称(我将 ID 字段设置为只读),然后单击确定或取消按钮。两者都会关闭弹出窗口,但只有单击确定按钮才会在关闭前将结果 属性 设置为真。然后我可以检查这个结果 属性 以了解我是否应该更新网格中的单元格。
private void btnShowPopup_Click(object sender, RoutedEventArgs e)
{
// Get the grid's current row
DataRowView drv = this.myGrid.CurrentItem as DataRowView;
// Popup shows product's ID and Name (user can only edit Name)
Popup popup = new Popup();
popup.ProductID = drv["ProductID"].ToString();
popup.ProductName = drv["ProductName"].ToString();
popup.ShowDialog();
// Apply changes if user clicked the OK button
if (popup.Result == true)
drv["ProductName"] = popup.ProductName;
}