繁体   English   中英

如何在WPF中的父DataGrid中加载DataGrid基础

[英]How to load datagrid base in parent datagrid in wpf

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

这是来自selectionchanged事件中的第一个数据网格的代码

private void equipmentDataGrid_SelectionChanged(object sender, SelectionChangedEventArgs e)
    {
        try
        {
            var row_list = (Equipment)equipmentDataGrid.SelectedItem;
            var inspectionContent = new InspectionContent();

            inspectionContent.PassingValue(row_list.ID);


        }
        catch {
        }
    }

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

wpfimg

如果要以这种方式处理后面的代码,则必须使用事件args

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);
 }

这将创建InspectionContent UserControl的实例:

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);
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM