如何在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;
}
答案 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});