小编Chu*_*tes的帖子

WPF DataBinding ObservableCollection <T>到DataGrid

我正在尝试在单独的UserControl中创建DataGrid,其DataContext是T的List.

在后面的代码中,我创建一个List,填充列表,然后将其发送到UserControl的构造函数,在该构造函数上我有我正在尝试填充的DataGrid.

UserControl类如下.

public partial class QuotePreview : UserControl
{
    private static SelectionList  previewList = new SelectionList();

    public SelectionList PreviewList
    {
        get { return previewList; }
    }

    public QuotePreview()
    {
        InitializeComponent();
    }

    public QuotePreview(SelectionList selectedOptions)
    {
        InitializeComponent();

        previewList = selectedOptions;

        QuotePreviewDataGrid.DataContext = previewList;
    }
}
Run Code Online (Sandbox Code Playgroud)

而Xaml看起来像:

<DataGrid Name="QuotePreviewDataGrid"
          AutoGenerateColumns="False" 
          ItemsSource="{Binding}">
    <DataGrid.Columns>
        <DataGridTextColumn Header="Model Number" Binding="{Binding ModelNumber}"/>
        <DataGridTextColumn Header="Description" Binding="{Binding Description}"/>
        <DataGridTextColumn Header="List Price per Unit" Binding="{Binding Price}"/>
    </DataGrid.Columns>
</DataGrid>
Run Code Online (Sandbox Code Playgroud)

我也试过设置ItemSource

QuotePreviewDataGrid.ItemsSource = PreviewList;
Run Code Online (Sandbox Code Playgroud)

我也尝试过设置数据上下文和itemsource以及刷新:

QuotePreviewDataGrid.Items.Refresh();
Run Code Online (Sandbox Code Playgroud)

我在我的应用程序的其余部分设置为列表框的数据绑定工作完美.在列表框中,我将itemsource设置为{Binding},将ListItems绑定设置为{Binding Property}.后面的代码中设置的列表框的datacontext.

我的数据网格以相同的方式设置,但由于某种原因,网格内部没有显示任何内容.

当我浏览调试器并观察信息流时,我可以看到正在创建T列表,SelectionsList并将其传递给数据网格所在的用户控件的构造函数.我可以看到DataContext确实正在设置并显示列表中的项目,但是当我回到我的应用程序并尝试查看数据网格时,它是空白的.

任何帮助将不胜感激.在过去的一天半里,我一直在试图解决这个问题.谢谢! …

c# data-binding wpf datagrid

7
推荐指数
1
解决办法
6871
查看次数

标签 统计

c# ×1

data-binding ×1

datagrid ×1

wpf ×1