[英]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中的数据没有加载?
如果要以这种方式处理后面的代码,则必须使用事件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.