簡體   English   中英

來自另一個類的C#WPF DataGrid綁定

[英]C# WPF DataGrid Binding from another class

我有一個要在其中從另一個類自動生成ObservableCollection的窗口。 在后端進行設置時,一切正常:

XAML

<DataGrid Name="ResidenceGrid" AutoGenerateColumns="True"/>

CS
public ResidenceWindow()
    {
        InitializeComponent();
        ResidenceGrid.ItemsSource = Manager.ResidenceList;
    }

但是,當我嘗試在xaml中完成所有操作時,DataGrid顯得空白:

XAML

<DataGrid Name="ResidenceGrid" ItemsSource="{Binding Path=Manager.ResidenceList, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" AutoGenerateColumns="True"/>

CS
public ResidenceWindow()
    {
        InitializeComponent();
    }

以防萬一,從另一個類調用ObservableCollection:

static class Manager
{
    public static ObservableCollection<Residence> ResidenceList { get; set; } = new ObservableCollection<Residence>();
}

知道我在這里缺少什么嗎?

如果要使用Binding,則需要在ResidenceWindow內設置DataContext。

例如:

public ResidenceWindow()
{
    InitializeComponent();
    this.DataContext = Manager;
}

https://www.wpf-tutorial.com/data-binding/using-the-datacontext/

您可以像這樣綁定到靜態Manager.ResidenceList屬性:

<DataGrid Name="ResidenceGrid" ItemsSource="{x:Static local:Manager.ResidenceList}" AutoGenerateColumns="True"/>

並且沒有理由將ItemsSource屬性的綁定Mode設置為TwoWay或將UpdateSourceTrigger設置為PropertyChanged

暫無
暫無

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

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