无法将可观察的集合绑定到datagrid

时间:2018-07-24 07:03:49

标签: wpf data-binding wpfdatagrid

我是WPF的新手,所以请原谅我的无知。我在网上阅读过,为了约束工作,可观察的收藏应该是公共财产。所以,这是我到目前为止所做的:

我有一个我在其中声明了可观察对象的类:

public ObservableCollection<InventoryDto> invCollection { get; set; }
 public InventoryDto()
        {
            invCollection = new ObservableCollection<InventoryDto>();
        }


        public ObservableCollection<InventoryDto> observableList
        {
            get
            {
                return this.invCollection;
            }
            set
            {
                invCollection = value;
                OnPropertyChanged("observableList");
            }
        }

然后,在我看来,我有一个这样的绑定:

ItemsSource="{Binding observableList,Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"

在视图后面的代码(即view.xamls.cs)中,我正在填充可观察对象:

  foreach (var item in inventoryList)
            {

                invDto.invCollection.Add(new InventoryDto { location = item.location.Name, onHand = item.OnHand.ToString(), committed = item.committed.ToString() });


            }

但是,除非添加以下代码,否则我不会在网格中看到任何数据:

 InventoryDataGrid.ItemsSource = invDto.observableList;

首先,我发现在后面的代码中添加此代码很奇怪,而我已经在xaml中指定了ItemsSource。其次,此代码填充了网格。但是,当我从db中删除一行时,尽管我已指定BindingMode = TwoWay,但在网格中也不会删除该行。

请让我知道我在这里想念的东西。

0 个答案:

没有答案