c# - 如何对数据网格 Mvvm 进行数据绑定
问题描述
有点卡在这个 mvvm 上,将数据网格与我的 viewmodel 绑定,我制作了一个 ObservableCollection,然后将虚拟数据传递到 gridview 但我不知道该怎么做我开始在没有 mvvm 的情况下这样做,现在没有问题我有点卡住并且不确定如何做
这是我的视图 - UserView.xaml
Grid>
<DataGrid x:Name="dt_Users" ItemsSource="{Binding UserItems}" HorizontalAlignment="Left" Height="100" Margin="161,222,0,0" VerticalAlignment="Top" Width="585" />
</Grid>
我的视图模型 - userviewmodel.cs
public class UserViewModel: INotifyPropertyChanged
{
public event PropertyChangedEventHandler PropertyChanged;
ObservableCollection<User> UserItems = new ObservableCollection<User>();
private void fetchgrid()
{
UserItems.Add(new User { firstname = "h", lastname = "h" });
UserItems.Add(new User { firstname = "h", lastname = "h" });
}
}
和我的模型 - user.cs
public class User
{
public string firstname { get; set; }
public string lastname { get; set; }
}
我在监督什么?
解决方案
确保为您的视图分配一个UserViewModel
实例DataContext
。
在 XAML 中,例如:
<Window>
<Window.DataContext>
<UserViewModel />
</Window.DataContext>
<Grid>
<DataGrid ... />
</Grid>
</Window>
或在代码隐藏中,例如在构造函数中:
public MainWindow()
{
InitializeComponent();
this.DataContext = new UserViewModel();
}
或者,在 App.xaml 中定义视图模型的实例并使用在 XAML{StaticResource}
中设置。DataContext
有很多方法可以做到这一点。
推荐阅读
- android-fragments - 在片段中使用 RecyclerView 时询问权限时应用程序崩溃
- facebook - 如何通过facebook api获取其他人对我的帖子的评论
- image - 使用 imagesc 函数查看矩阵的不同平面
- javascript - Javascript 无法提醒字典
- javascript - 如何使用 javascript 微软认证?
- java - Spring 不显示 home.html
- javascript - 如何从给定的字符串数组生成随机 URL?
- go - 同一程序内的多个 Golang 包实例
- android - 如何显示图标以指示进度?
- android - 在超过 19 的 api 的回收器视图的卡片视图中添加波纹?