0

如何从我的 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;
}
4

3 回答 3

2

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

当然,您可以将一个简单的集合属性设置为DataContext一个控件的,在这种情况下,您可以像往常一样从该集合中添加或删除项目。然而,通常更喜欢将数据项设置为对象DataContext而不是DataContext对象本身。

于 2013-09-10T11:40:52.503 回答
0

您可以使用例如:

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

或者

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

……

此外,如果 lvMain 在 MainPage 中,则不需要设置其数据上下文,因为它会被继承。

正如 Sheridan 提到的,使用视图模型和删除命令直接在视图模型中删除项目。

于 2013-09-10T11:40:35.907 回答
0

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

于 2013-09-10T11:44:04.400 回答