C# 在不同的MVVM模型中多次使用模型

C# 在不同的MVVM模型中多次使用模型,c#,wpf,mvvm,C#,Wpf,Mvvm,我制作了一个模型,它使用了一个子模型2x作为它的属性之一。我可以将所有数据正确地加载到模型中,但我不知道如何将其正确地显示到数据网格中。使用测试行,我知道它是绑定的,但我无法让它显示任何属性 模型 视图模型 class ProductViewModel { public ObservableCollection<BidLine> Products { get; set; } public ProductViewModel() { var dl

我制作了一个模型,它使用了一个子模型2x作为它的属性之一。我可以将所有数据正确地加载到模型中,但我不知道如何将其正确地显示到数据网格中。使用测试行,我知道它是绑定的,但我无法让它显示任何属性

模型

视图模型

class ProductViewModel
{
    public ObservableCollection<BidLine> Products { get; set; }

    public ProductViewModel()
    {
        var dl = new BidLine();
        Products = dl.LoadProduct();
    }
编辑:

XAML代码

  <Grid>
<DataGrid ItemsSource="{Binding Path=Products}">
    <DataGrid.Columns>
        <DataGridTextColumn Binding="{Binding Path=BEItem.ProductID}" Header="ProductID"/>
    </DataGrid.Columns>
</DataGrid>

绑定不适用于字段。你需要有属性。因此,将BEItem和CompetitorItem转换为属性

    public TestProduct CompetitorItem { get; set; }
    public TestProduct BEItem { get; set; }
一切都会好起来的。调试绑定的最佳方法是观察输出窗口。如果你看了输出窗口,你会看到这个

System.Windows.Data Error: 40 : BindingExpression path error: 'BEItem' property not found on 'object' ''BidLine' (HashCode=31093287)'

这清楚地表明绑定引擎正在寻找一个属性BEItem,而此时只存在一个BEItem字段。

您需要向我们显示datagrid的XAML。请按照@AQuirky的建议添加XAML,以便可以看到问题原因的完整图片。添加了使用XAML代码的编辑您无法绑定到字段并删除它这是行不通的。改变这些公开测试产品的竞争项目;将公共测试产品提交给属性。它成功了!谢谢你的帮助。在进行您建议的更改之前,我检查了输出窗口,没有看到您在下面显示的错误,不确定为什么它没有显示给我。
    public TestProduct CompetitorItem { get; set; }
    public TestProduct BEItem { get; set; }
System.Windows.Data Error: 40 : BindingExpression path error: 'BEItem' property not found on 'object' ''BidLine' (HashCode=31093287)'