У меня проблема с добавлением элементов в ObservableCollection через ICommand. Есть второе окно для редактирования этой ObservableCollection. И когда я добавляю новые элементы, ListView во втором окне показывает новый элемент, а 1-е окно - нет. Как я могу добавить в свою коллекцию Obseravle из моей команды?
Вот мой ObservableCollection:
public class ProductExtrasObservableCollection : ObservableCollection<ProductViewModel>
{
public AddToExtrasObservableCollectionCommand AddToExtrasObservableCollectionCommand { get; set; }
public DeleteExtrasProductCommand DeleteExtrasProductCommand { get; set; }
public ProductExtrasObservableCollection() : base()
{
AddToExtrasObservableCollectionCommand = new AddToExtrasObservableCollectionCommand(this);
DeleteExtrasProductCommand = new DeleteExtrasProductCommand(this);
Add(new ProductViewModel(new Product { Name = "Sugar", Price = 0.05, IsDrink = false }) { IsChecked = false } );
Add(new ProductViewModel(new Product { Name = "Milk", Price = 0.2, IsDrink = false }) { IsChecked = false });
Add(new ProductViewModel(new Product { Name = "Cream", Price = 0.1, IsDrink = false }) { IsChecked = false });
Add(new ProductViewModel(new Product { Name = "Canela", Price = 0.15, IsDrink = false }) { IsChecked = false });
}
}
}
А это мой класс с командой:
public class AddToExtrasObservableCollectionCommand : ICommand
{
ProductExtrasObservableCollection Collection { get; set; }
public AddToExtrasObservableCollectionCommand(ProductExtrasObservableCollection Coll)
{
this.Collection = Coll;
}
public event EventHandler CanExecuteChanged;
public bool CanExecute(object parameter)
{
return true;
}
public void Execute(object parameter)
{
Collection.Add(new ProductViewModel(parameter as Product));
}
}
Это XAML для кнопки:
<Button
Content="Add to Extras"
HorizontalAlignment="Left"
Margin="458,184,0,0"
VerticalAlignment="Top"
Width="88"
Height="60"
Command="{Binding AddToExtrasObservableCollectionCommand, Source={StaticResource ExtrasData}}"
CommandParameter="{Binding NewProduct, Source={StaticResource ViewModel}}" />