加载WPF控制数据

时间:2019-07-08 05:34:12

标签: c# wpf vb.net mvvm

我正在使用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控件知道其数据已更改一样。

0 个答案:

没有答案