请帮帮我,我不知道出了什么问题。无论我怎么尝试,网格都不会更新(保持为空)。
我希望网格绑定到一个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 >代码:
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));
}}
发布于 2012-03-21 20:20:42
我认为您只需要从绑定中删除单词Product.即可。每个DataGridRow的DataContext都是Product类型的对象,因此绑定应该指向Product上的属性
<DataGrid.Columns>
<DataGridTextColumn Binding="{Binding Path=Amount}" Header="AMOUNT" />
<DataGridTextColumn Binding="{Binding Path=Name}" Header="NAME" />
</DataGrid.Columns>https://stackoverflow.com/questions/9804457
复制相似问题