请帮助我,我不知道什么是错的。无论我尝试什么,网格都不会更新(保持空白)。
我希望将网格绑定到ObservableCollection,但不要生成自动cloumns,而是从名为Product的对象中选择两个属性,这是此Collection所拥有的类型。
XAML:
<DataGrid x:Name="itemsGrid" ItemsSource="{Binding OrdersList}" AutoGenerateColumns="False" Style="{StaticResource GridStyle}">
<DataGrid.Columns>
<DataGridTextColumn Binding="{Binding Path=Product.Amount}" Header="AMOUTN" />
<DataGridTextColumn Binding="{Binding Path=Product.Name}" Header="NAME" />
</DataGrid.Columns>
</DataGrid >
CODE:
public partial class Orders : Window,INotifyPropertyChanged
{
ObservableCollection<Product> _ordersList = new ObservableCollection<Product>();
public event PropertyChangedEventHandler PropertyChanged;
private ObservableCollection<Product> OrdersList
{
get { return this._ordersList; }
set { _ordersList = value; NotifyPropertyChanged("OrdersList"); }
}
private void addProduct(Product p)
{
OrdersList.Add(p);
NotifyPropertyChanged("OrdersList");
}
private void removeProduct(Product p)
{
OrdersList.Remove(p);
NotifyPropertyChanged("OrdersList");
}
protected void NotifyPropertyChanged(String propertyName)
{
if (PropertyChanged != null)
PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
}
}
答案 0 :(得分:2)
我认为您只需要从绑定中删除Product.
一词。每个DataContext
的{{1}}是DataGridRow
类型的对象,因此您的绑定应指向Product
上的属性
Product
答案 1 :(得分:0)
您需要在某处设置this.DataContext = this;
。最好在窗口的Load
事件中完成。