【问题标题】:Datagrid column headers and values bindingDatagrid 列标题和值绑定
【发布时间】:2013-12-11 08:28:20
【问题描述】:

我在将列标题和值绑定到 MVVM PRISM 中的数据网格时遇到问题。

我的类 SearchResult 有两个属性:

  • ColumnNames ---> 这些将应用于标题
  • ColumnValues ---> 这些将应用于特定的标题作为它们的值。

    公开课搜索结果 { 公共列表列名;

    public List<object> ColumnValues;
    
    public string ColumnName { get; set; }
    public object ColumnValue { get; set; }
    
    public SearchResult()
    {
        this.ColumnNames = new List<string>();
        this.ColumnValues = new List<object>();
    }
    
    public void AddColumnAttributes(string columnName, object columnValue)
    {
        this.ColumnNames.Add(columnName);
        this.ColumnValues.Add(columnValue);
        this.ColumnName = columnName;
        this.ColumnValue = columnValue;
    }
    

    }

这些属性是通过 C# 代码动态填充的列表。

我需要将它们绑定到 XAML 中的列标题和列值。

我已经创建了 ObservableCollection Result,它是我的 gridview 的来源,但仍然没有绑定标题和值。

public ObservableCollection<SearchResult> Result
    {
        get { return this.searchResult; }
        set 
        { 
            this.searchResult = value;
            this.NotifyPropertyChanged("SearchResult");
        }
    }

还有 XAML:

<DataGrid ItemsSource="{Binding SearchResult}" Width="350">
            <DataGrid.Columns>
                <DataGridTemplateColumn>
                    <DataGridTemplateColumn.Header>
                        <TextBlock Text="{Binding ColumnName, RelativeSource={RelativeSource AncestorType={x:Type DataGrid}}}"></TextBlock>
                    </DataGridTemplateColumn.Header>
                </DataGridTemplateColumn>
            </DataGrid.Columns>
        </DataGrid>

我将不胜感激!

【问题讨论】:

  • 请提供相关的非工作代码。
  • 你能编辑你的原始问题并在那里而不是在 cmets 中添加代码内容吗?

标签: c# xaml mvvm datagrid


【解决方案1】:

我厚你的代码应该是这样的..

<DataGrid ItemsSource="{Binding SearchResult, ElementName=PageTitle}" Width="350">
        <DataGrid.Columns>
            <DataGridTemplateColumn>
                <DataGridTemplateColumn.Header>
                    <TextBlock Text="{Binding ColumnNames/ColumnName, RelativeSource={RelativeSource AncestorType={x:Type DataGrid}}}"></TextBlock>
                </DataGridTemplateColumn.Header>
            </DataGridTemplateColumn>
        </DataGrid.Columns>
</DataGrid>

【讨论】:

    猜你喜欢
    • 2015-01-02
    • 2011-12-25
    • 2011-01-12
    • 2023-03-07
    • 2012-02-12
    • 2011-04-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多