首页 > 解决方案 > 如何对数据网格 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; }

       
    }

我在监督什么?

标签: c#wpfmvvm

解决方案


确保为您的视图分配一个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

有很多方法可以做到这一点。


推荐阅读