感谢您阅读我的问题。
情况:
我有一个可观察的集合
CheckableTags = new ObservableCollection<CheckableListItem<Item>>();
包装类CheckableListItem<Item>
为每个对象添加一个bool。
public class CheckableListItem<T> : INotifyPropertyChanged
{
private bool mIsChecked;
private T mItem;
public event PropertyChangedEventHandler PropertyChanged;
public CheckableListItem(T item)
{
mItem = item;
}
public bool IsChecked
{
get
{
return mIsChecked;
}
set
{
mIsChecked = value;
OnPropertyChanged("IsChecked");
MeasConSettings.Current.CheckableTags_CheckedChanged("ENTIRE OBJECT HERE");
}
}
public T Item
{
get
{
return mItem;
}
set
{
mItem = value;
OnPropertyChanged("Item");
}
}
protected virtual void OnPropertyChanged(string propertyName)
{
var handler = PropertyChanged;
if (handler != null)
handler(this, new PropertyChangedEventArgs(propertyName));
}
}
当用户选中复选框时,bool变量会发生变化,这就是我在bool变量属性中触发函数MeasConSettings.Current.CheckableTags_CheckedChanged("ENTIRE OBJECT HERE");
的原因。
该功能如下:
public void CheckableTags_CheckedChanged(object sender)
{}
我的问题是: 如何将整个对象从bool的属性发送到我的viewmodel中的函数,我应该在“ENTIRE OBJECT HERE”字段中发送什么,以便接收具有2个元素bool变量和Item的CheckableListItem类的对象
如果可能的话,获取对象的引用,以便我可以在接收函数中复制它。
备选方案: 如果不可能,我还能做什么?
提前致谢。
答案 0 :(得分:0)
您可以使用以下关键字发送整个对象:
MeasConSettings.Current.CheckableTags_CheckedChanged(this);
此外,您可以更改方法和类以使用泛型并接受类型化的通用参数,如:
public void CheckableTags_CheckedChanged(CheckableListItem<T> sender)
{}