[英]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.