向 WPF 可观察集合项添加功能更改事件而不覆盖它
add functionality to WPF observable collections item changed event without overriding it
我是 WPF 新手,我正在努力为可观察集合添加功能。
我有保管箱、数据网格和列表框。
数据网格和列表框绑定到相应的可观察集合。
我想为保管箱和列表视图中的项目添加一个侦听器。
这是我的示例代码
XAML
<controls:SearchableDropBox DomainObject="{Binding ClassA}"
InputValidationManifest="{Binding ClassValidation, Mode=OneWay}"/>
<Custom:XamDataGrid DataSource="{Binding Path=ClassB.ClassList}"
GroupByAreaLocation="None" />
<controls:ListBox x:Name="listBoxInputs" ItemsSource="{Binding ClassC, Mode=oneWay}">
VIEM模型
class MainViewModel : ViewModel
{
#region Attributes
private classA _classa;
private ObservableCollection<classC> _classC;
private classB;
#endregion
public MainViewModel()
{
this._classc= new ObservableCollection<classC>();
this._classB = new classB()
}
public classA ClassA
{
get { return _classA; }
set
{
if (!Equals(value, _classA))
{
_classA= value;
SelectionChanged(); //This is the function I want add on //propertychanged event
OnPropertyChanged(nameof(classA));
}
}
}
public ObservableCollection<classC> ClassC
{
get { return classC; }
set
{
this.classC= value;
OnPropertyChanged(nameof(ClassC));
}
}
B 级
public class classB
{
private ObservableCollection<String> _classList;
}
我想在选择保管箱和列表框中的项目 added/deleted 时调用 SelectionChanged() 函数而不覆盖其当前通知 属性 更改事件。
对于 _classC 集合中的 add/Remove,您订阅了 CollectionChanged 事件。
public MainViewModel()
{
this._classc= new ObservableCollection<classC>();
this._classB = new classB()
_classC.CollectionChanged += _classC_CollectionChanged;
}
private void _classC_CollectionChanged(object sender, System.Collections.Specialized.NotifyCollectionChangedEventArgs e)
{
//Populate ClassB.ClassList / Datagrid Function Call
}
我是 WPF 新手,我正在努力为可观察集合添加功能。
我有保管箱、数据网格和列表框。
数据网格和列表框绑定到相应的可观察集合。
我想为保管箱和列表视图中的项目添加一个侦听器。
这是我的示例代码
XAML
<controls:SearchableDropBox DomainObject="{Binding ClassA}"
InputValidationManifest="{Binding ClassValidation, Mode=OneWay}"/>
<Custom:XamDataGrid DataSource="{Binding Path=ClassB.ClassList}"
GroupByAreaLocation="None" />
<controls:ListBox x:Name="listBoxInputs" ItemsSource="{Binding ClassC, Mode=oneWay}">
VIEM模型
class MainViewModel : ViewModel
{
#region Attributes
private classA _classa;
private ObservableCollection<classC> _classC;
private classB;
#endregion
public MainViewModel()
{
this._classc= new ObservableCollection<classC>();
this._classB = new classB()
}
public classA ClassA
{
get { return _classA; }
set
{
if (!Equals(value, _classA))
{
_classA= value;
SelectionChanged(); //This is the function I want add on //propertychanged event
OnPropertyChanged(nameof(classA));
}
}
}
public ObservableCollection<classC> ClassC
{
get { return classC; }
set
{
this.classC= value;
OnPropertyChanged(nameof(ClassC));
}
}
B 级
public class classB
{
private ObservableCollection<String> _classList;
}
我想在选择保管箱和列表框中的项目 added/deleted 时调用 SelectionChanged() 函数而不覆盖其当前通知 属性 更改事件。
对于 _classC 集合中的 add/Remove,您订阅了 CollectionChanged 事件。
public MainViewModel()
{
this._classc= new ObservableCollection<classC>();
this._classB = new classB()
_classC.CollectionChanged += _classC_CollectionChanged;
}
private void _classC_CollectionChanged(object sender, System.Collections.Specialized.NotifyCollectionChangedEventArgs e)
{
//Populate ClassB.ClassList / Datagrid Function Call
}