【问题标题】:WPF DataGrid: Binding to Parent objectWPF DataGrid:绑定到父对象
【发布时间】:2017-08-31 15:06:41
【问题描述】:

这是我的代码

public partial class ChallanListView : UserControl
{
    public ObservableCollection<ChallanDS> challans = ChallanModel.GetChallansList();
    public ObservableCollection<QualityDS> qualities = ChallanModel.GetQualitiesList();

    public ChallanListView()
    {
        InitializeComponent();
        ChallansDataGrid.DataContext = this;
        ChallansDataGrid.ItemsSource = this.challans;
    }
}

这里是 xaml

<DataGrid Name="ChallansDataGrid" IsReadOnly="True" AutoGenerateColumns="False">
    <DataGrid.Columns>
        <DataGridTextColumn Header="Challan Date" Binding="{Binding ChallanDate, StringFormat=d}"/>
        <DataGridTemplateColumn Header="Quality" Binding="?????????????????">
        </DataGridTemplateColumn>
    </DataGrid.Columns>
</DataGrid>

对于质量单元,我想将其绑定到我的 ChallanListView 中的“质量”列表。我该怎么做。

【问题讨论】:

  • @mm8 我们不能使用 Ancestor 功能吗?我是 WPF 和 MVVM 的新手。
  • 绝对不是。 DataGridColumn 没有可视祖先。
  • 并且列必须与基础数据对象的属性具有“连接”,DataGrid 才能按预期运行。所以忘记这个吧。向您的 ChallanDS 类添加一个属性,并将其设置在您打算在 DataGrid 中显示和编辑的所有对象上。
  • 谢谢大家的回复。

标签: c# .net wpf visual-studio xaml


【解决方案1】:

你不能。您只能将列绑定到DataGridItemsSource 中的数据对象的属性。这就是DataGrid 的工作原理。

因此,您应该将要绑定的任何属性移动到 ChallanDS 类。

【讨论】:

猜你喜欢
  • 2012-11-16
  • 2012-03-15
  • 1970-01-01
  • 2015-03-27
  • 2016-11-05
  • 1970-01-01
  • 2011-03-01
  • 2010-11-09
  • 2013-10-14
相关资源
最近更新 更多