从DataContext添加/删除项目

时间:2013-09-10 11:22:19

标签: c# wpf

如何在DataContext中添加或删除项目?这是我的代码:

class WallModel
{
    public WallModel()
    {
        WallItems = new ObservableCollection<Wall>();
        Initialization = InitializeAsync();

    }
    public Task Initialization { get; private set; }
    public async Task InitializeAsync()
    {
            WallItems.Add(new Wall { id = 2, user = 3 });
    }
    public ObservableCollection<Wall> WallItems { get; set; }
}

和MainPage.xaml.cs:

public MainPage()
{
    this.InitializeComponent();
    DataContext = new WallModel();
    lvMain.DataContext = DataContext;
}

3 个答案:

答案 0 :(得分:2)

我们通常直接在DataContext添加或删除项目。相反,(在MVVM中)我们尝试创建一个包含我们想要在UI中显示的所有属性的类以及执行所需功能的方法。然后我们将此类的实例设置为DataContext

当然,你可以只设置一个简单的集合属性作为一个控件的DataContext,在这种情况下,你可以正常添加或删除该集合中的项目。但是,通常首选操作设置为DataContext而非DataContext对象本身的数据项。

答案 1 :(得分:0)

您可以使用例如:

((WallModel)DataContext).WallItems.Remove(item);

((WallModel)DataContext).WallItems.RemoveAt(index);

...

此外,如果lvMain位于MainPage中,则无需设置其datacontext,因为它会被继承。

Sheridan提到使用viewmodel和Delete命令直接在视图模型中删除项目。

答案 2 :(得分:0)

((WallModel)DataContext).WallItems.Add(new Wall {id = 2,user = 3});