我有一个窗口,我想在其中从另一个类自动生成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>();
}
知道我在这里缺少什么吗?
答案 0 :(得分:1)
如果要使用绑定,则需要在ResidenceWindow内设置DataContext。
例如:
public ResidenceWindow()
{
InitializeComponent();
this.DataContext = Manager;
}
https://www.wpf-tutorial.com/data-binding/using-the-datacontext/
答案 1 :(得分:1)
您可以像这样绑定到静态Manager.ResidenceList
属性:
<DataGrid Name="ResidenceGrid" ItemsSource="{x:Static local:Manager.ResidenceList}" AutoGenerateColumns="True"/>
并且没有理由将Mode
属性的绑定ItemsSource
设置为TwoWay
或将UpdateSourceTrigger
设置为PropertyChanged
。