簡體   English   中英

更改AutoGeneratingColumn中的DataGrid列顯示值

[英]Change DataGrid Column display value in AutoGeneratingColumn

我有dataGrid.ItemsSource綁定到EntityItem, Client的列表,該列表包含另一個EntityItem, Company

當顯示我的dataGrid ,在“ Company列中,我具有對象的類型( System.Data.Entity. 。...),而我想顯示我的Company.Name

在WindowsForm中,我可以做:

e.Value = ((Company)(dgv["Company", e.RowIndex].Value)).Name;

但是我找不到在WPF中正確執行操作的方法。

現在我有:

private void dataGridUsers_AutoGeneratingColumn_1(object sender, DataGridAutoGeneratingColumnEventArgs e)
    {

        DataGrid dgv = (DataGrid)sender;
        if (e.PropertyName == "Company")
        { 
            if (e.PropertyType == typeof(Company))
            {
                ...
            }
        }
    }

所以我可以確保我在正確的列上,但是現在我被卡住了,我不知道如何更改我希望該列顯示數據的方式...我試圖查看e.PropertyDescriptor但是只是獲取屬性。

DataGridAutoGeneratingColumnEventArgs對象具有Column屬性,該屬性包含一個生成的DataGridColumn實例。 具體類型為DataGridTextColumn ,它具有Binding屬性。

您可以更改綁定路徑以使用Column.Name屬性

private void DataGridOnAutoGeneratingColumn(object sender, DataGridAutoGeneratingColumnEventArgs e)
{
    if (e.PropertyName == "Company")
    {
        var c = (DataGridTextColumn)e.Column;
        var b = (Binding)c.Binding;
        b.Path = new PropertyPath("Company.Name");
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM