c# - 如何避免 View 模型的冗余属性

标签 c# .net wpf mvvm

我有一个接口(interface),我的模型和 View 模型从中实现。我在接口(interface)中有一个列表属性,模型实现为列表,但由于某些原因,我需要在 View 模型中使用可观察集合。如何使用可观察集合实现相同的属性。这是我的示例代码,

public  class MyObject
{
    public string Property1 { get; set; }
     public string Property1 { get; set; }
}

public interface IFoo
{
    List<MyObject> MyList { get; set; }
}


public class Model : IFoo
{
    private List<MyObject> mMyList;

    public List<MyObject> MyList
    {
        get { return mMyList; }
        set { mMyList = value; }
    }
}

public class ViewModel : IFoo
{

    // I want 
    //ObservableCollection<string> Mylist 
    //for view purpose,How can I use the same property from interface 


}

最佳答案

别这么苛求了。我的意思是,在您的界面中。

public interface IFoo
{
    IList<MyObject> MyList { get; set; }
}

并在幕后使用 OC

ObservableCollection 实现了 IList,因此您可以轻松
public class Bar : IFoo
{
    public IList<MyObject> MyList {get; private set;}
    public Bar()
    {
        MyList = new ObservableCollection<MyObject>();   
    //snip

绑定(bind)会知道我们的 secret 并采取相应的行动。

关于c# - 如何避免 View 模型的冗余属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29749829/

相关文章:

c# - 在 ListView 的 gridview 中使用空格/输入选中/取消选中复选框 - wpf

c# - WPF 文本 block 不会在运行时显示属性更改

c# - 如何使用 IEnumerable.GroupBy<T> 和 3 个不同的 "qualities"在 C# LINQ 中获取计数?

c# - 在 ASCII 转换中解包 EBCDIC 压缩小数 (COMP-3)

.net - 为 Entity Framework 安装Oracle Data Provider时的"access denied"

c# - Windows 窗体中标签的自动换行

c# - 如何制作使用同一程序集中的静态变量的动态方法?

c# - 如何跳出这个循环

c# - 需要有关 Fluent Nhibernate 自动映射的 'No persister for:' 异常的帮助

c# - 如何阻止 ValidatesOnNotifyDataErrors 过于活跃