0

我有一些绑定到应用程序主窗口控件的集合,下面以简化形式显示。视图模型中还有许多其他元素(为了清晰而省略),它们都会按预期更新和工作。

我需要在另一个窗口中编辑集合的元素,并将编辑后的数据返回到原始集合中。

/// Example of the Collection and Properties

ObservableCollection<MyData> _MyCollection = new ObservableCollection<MyData>();

public ObservableCollection<MyData> MyCollection { get { return _MyCollection; } }


public class MyData : INotifyPropertyChanged
{
    private bool cb_checked;

    public string Param1  { get; set; }
    public string Param2  { get; set; }
    public bool   myCheck
    {
        get { return cb_checked; }
        set
        {
            if (cb_checked == value) return;
                cb_checked = value;

             RaisePropertyChanged("Checked");

         }
     }
 }

我的问题是如何将集合中的一项传递到新窗口进行编辑。

我的想法是在窗口的构造函数中传递项目

   Dialog.Edit window = new Dialog.Edit(_MyCollection[2] );
   window.Owner = this;
   window.Show();

我也试过这个,因为我读过我不能使用索引引用

   var tmp = _MyCollection[2];
   Dialog.Edit window = new Dialog.Edit( tmp);
   window.Owner = this;
   window.Show();

但这不起作用,并且在尝试访问元素时出现空异常。

如果我需要传递完整的集合,这也可以,因为它们都很小,即 < 50 件。

我必须以错误的方式解决这个问题,请有人解释一下如何正确地做到这一点。

非常感谢莎拉

4

0 回答 0