【发布时间】:2015-04-09 09:48:42
【问题描述】:
我有一个 View 和 ViewModel。
MyView
{
MyView(int id)
{
InitializeComponent();
}
}
MyViewModel
{
private int _id;
public int ID
{
get { return _id; }
set { _id= value; OnPropertyChanged("_id"); }
}
}
我将 XAML 上的数据上下文设置为:
<Window.DataContext>
<vm:MyViewModel/>
</Window.DataContext>
单击按钮时,我的视图显示为:
Application.Current.Dispatcher.Invoke(() => new MyView(id).Show());
现在,我如何将 id 从 MyView(id) 传递到 MyViewModel.ID.
【问题讨论】:
-
在代码而不是 XAML 中设置 DataContext:
DataContext = new MyViewModel { ID = id }; -
但我想尽可能减少代码背后的使用。
-
那不是 MVVM。这就是货物崇拜。 Codebehind 非常适合 UI 问题。它不应该用于BI。 (刚刚注意到——你好!不是拖钓你的 q,我只是浏览我的 MVVM RSS 提要)