如何在wpf中的父数据网格中加载datagrid

时间:2017-02-05 03:54:32

标签: c# wpf datagrid

我有这2个datagrid,在第一个datagrid中的selectionchanged上它将加载第二个datagrid中传递的id的数据库

这是来自selectionchanged事件

中第一个datagrid的代码
list

InspectionContent是另一个用户控件w / c包含第二个数据网格。我传递了一个id值来加载第二个datagrid中的数据,我的问题是构造函数中没有调用加载部分,为什么第二个datagrid中的数据没有加载?

wpfimg

2 个答案:

答案 0 :(得分:1)

如果您想以这种方式继续使用

背后的代码,则必须使用事件参数
DataGrid dataGrid = sender as DataGrid;
if  (sender != null && e.AddedItems.Count > 0) {
  var row = e.AddedItems[0] as Equipment;
  if (row != null)
    {
            inspectionContent.PassingValue(row.ID);

或者,对于将来,您可能希望研究基于属性绑定的MVVM方法......

请注意你的try / catch非常糟糕,因为它会静默地丢弃任何异常,至少跟踪调试中的错误

catch (Exception exc) {
    Debug.WriteLine (exc.Message + exc.StackTrace);
 }

答案 1 :(得分:1)

这将创建InspectionContent UserControl的 new 实例:

var inspectionContent = new InspectionContent();

您想要调用您在屏幕上看到的已创建实例的PassingValue。

在XAML标记中为其命名(下面示例中为“uc”):

<local:InspectionContent x:Name="uc" ...>

...并在事件处理程序中使用此名称访问它:

private void equipmentDataGrid_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
    var row_list = (Equipment)equipmentDataGrid.SelectedItem;
    uc.PassingValue(row_list.ID);
}