簡體   English   中英

如何在XAML中設置DataGrid的ItemsSource?

[英]How do I set the ItemsSource of a DataGrid in XAML?

我想設置ItemsSource一個財產DataGrid命名dgIssueSummary是一個ObservableCollection命名IssueSummaryList 目前,當我在我的代碼隱藏中設置ItemsSource屬性時,一切正常:

public partial class MainPage : UserControl
{
    private ObservableCollection<IssueSummary> IssueSummaryList = new ObservableCollection<IssueSummary>

    public MainPage()
    {
        InitializeComponent();
        dgIssueSummary.ItemsSource = IssueSummaryList
    }
}

但是,我寧願在XAML中設置ItemsSource屬性,但我不能讓它工作。 這是我的XAML代碼:

<sdk:DataGrid x:Name="dgIssueSummary" AutoGenerateColumns="False"
                ItemsSource="{Binding IssueSummaryList}" >
    <sdk:DataGrid.Columns>
        <sdk:DataGridTextColumn Binding="{Binding ProblemType}" Header="Problem Type"/>
        <sdk:DataGridTextColumn Binding="{Binding Count}" Header="Count"/>
    </sdk:DataGrid.Columns>
</sdk:DataGrid>

我需要做什么才能將ItemsSource屬性設置為XAML中的IssueSummaryList而不是C#?

您需要將“IssueSummaryList”設為屬性。 如果這樣做,您可以直接綁定它。 您無法通過Xaml綁定到私有字段。

您還需要將DataContext設置為“ this ”(或使用其他方法來使其找到適當的實例)。

您的IssueSummaryList是私有的。 您需要使用get和set將其設為屬性

public ObservableCollection<IssueSummary> IssueSummaryList 
{
     get
     {
        // ...
     }
}

XAML是正確的,所以問題必須在綁定中。

  • ObservableCollection是作為屬性公開的嗎?
  • 你是如何設置綁定的? 在最簡單的情況下,您使用以下代碼:

    this.DataContext =此;

在Window_Load事件處理程序中

暫無
暫無

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

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