我正在尝试在单独的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确实正在设置并显示列表中的项目,但是当我回到我的应用程序并尝试查看数据网格时,它是空白的.
任何帮助将不胜感激.在过去的一天半里,我一直在试图解决这个问题.谢谢! …