我正在使用mvvm light工具包,但我不知道在何处放置公共命令以加载数据。我是mvvm的新手,我想知道那在哪里正确。
尝试研究mvvm框架,有些具有用于数据访问的文件夹结构。现在,我尝试访问绑定到具有数据属性的视图模型的视图数据上下文。
这是我尝试访问数据上下文的代码
Case "tabShutout"
Dim tempDatagrid As System.Windows.Controls.DataGrid = DirectCast(ctlShutout.Controls("dgShutout"), System.Windows.Controls.DataGrid)
DirectCast(tempDatagrid.DataContext, Vessel_Movement_Report_Creator_User_Controls.ViewModel.MainViewModel).LoadShutout(clsVMR.ShutoutContainers)
这是我的视图模型
public class MainViewModel : ViewModelBase
{
/// <summary>
/// Initializes a new instance of the MainViewModel class.
/// </summary>
///
private ObservableCollection<Model.Shutout_Container> _shutoutContainers;
private Model.Shutout_Container _selectedContainer;
public MainViewModel()
{
////if (IsInDesignMode)
////{
//// // Code runs in Blend --> create design time data.
////}
////else
////{
//// // Code runs "for real"
////}
}
public ObservableCollection<Model.Shutout_Container> ShutoutContainers => _shutoutContainers;
public Model.Shutout_Container SelectedContainer
{
get
{
return _selectedContainer;
}
set
{
_selectedContainer = value;
RaisePropertyChanged("SelectedContainer");
}
}
public void LoadShutout(ObservableCollection<Model.Shutout_Container> ShutoutContainers)
{
this._shutoutContainers = ShutoutContainers;
this.RaisePropertyChanged(() => this.ShutoutContainers);
Messenger.Default.Send<NotificationMessage>(new NotificationMessage("Shutout Loaded"));
}
}
我希望单击该选项卡时,应该将数据加载到wpf控件中,并进行相应的调整,就像wpf控件知道其数据已更改一样。