Отказать в элементе управления DataGrid для обновления и отображения данных, где данные типа таблицы данных в WPF с использованием MVVM
// Привет, я работаю над этой проблемой уже больше недели, и теперь я думаю, что мне нужна помощь здесь.
//Моя цель: привязать DataTable к DataGrid в MVVM.
//Вот в чем вопрос:
//в MainWindow.xaml код выглядит следующим образом :
<Grid> <DataGrid x:Name="dg" ItemsSource = "{Binding dtSrc}"/> <Button x:Name="loaddata" Command="{Binding File_OpenCommand}"/> </Grid>
//in MainWindow.xaml.cs public partial class MainWindow : Window { public MainWindow() { this.DataContex = new MainWindowViewModel; } } //in MainWindowViewModel.cs public class MainWindowViewModel { public MainWindowViewModel() { File_OpenCommand = new DelegateCommand(new Action<object>(File_Open)); } public DataTable dtSrc {get;set;} public DelegateCommand File_OpenCommand; public void File_Open(object obj) { // here is the problem: //dtSrc has data, but DataGrid refuse to refresh and show them. dtSrc = LoadData(); } } //in DelegateCommand.cs public class DelegateCommand : ICommand { readonly Action<object> _execute; readonly Predicate<object> _canExecute; public DelegateCommand(Action<object> execute) : this(execute, null) { } public DelegateCommand(Action<object> execute, Predicate<object> canExecute) { if (execute == null) throw new ArgumentNullException("execute"); _execute = execute; _canExecute = canExecute; } public void Execute(object parameter) { _execute(parameter); } public bool CanExecute(object parameter) { return _canExecute == null ? true : _canExecute(parameter); } public event EventHandler CanExecuteChanged { add { CommandManager.RequerySuggested += value; } remove { CommandManager.RequerySuggested -= value; } } }
Что я уже пробовал:
Я новичок в WPF и погуглил много демо-версий и сэмплов, но все равно застрял здесь.
[no name]
Вам нужно реализовать INotifyPropertyChanged