【问题标题】:C# WPF How to Pass an object of an observable collection from the property of the objectC# WPF 如何从对象的属性中传递可观察集合的对象
【发布时间】:2013-09-09 15:52:34
【问题描述】:

感谢您阅读我的问题。

情况:

我有一个可观察的集合

CheckableTags = new ObservableCollection<CheckableListItem<Item>>();

包装类CheckableListItem&lt;Item&gt;为每个对象Item添加一个布尔值。

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 的属性发送到我的视图模型中的函数,我应该在“ENTIRE OBJECT HERE”字段中发送什么以便接收具有 2 个元素的 CheckableListItem 类的对象 bool 变量和 Item .

如果可能,获取对象的引用,以便我可以在接收函数中复制它。

替代方案: 如果这是不可能的,我还能做什么?

提前致谢。

【问题讨论】:

    标签: c# wpf observablecollection


    【解决方案1】:

    您可以使用此关键字发送整个对象:

    MeasConSettings.Current.CheckableTags_CheckedChanged(this);
    

    您还可以更改方法和类以使用泛型并接受类型化的泛型参数,例如:

    public void CheckableTags_CheckedChanged(CheckableListItem<T> sender)
    {}
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-06-05
      • 1970-01-01
      • 1970-01-01
      • 2014-10-23
      • 2017-09-07
      • 2018-12-16
      相关资源
      最近更新 更多