我正在尝试在我的视图模型和背后的代码之间共享以下对象
.prev('h3')
此对象未在XAML中使用。它在后面的代码中用于几个动态生成的UI元素。
MVVM Light的做法是什么?
答案 0 :(得分:2)
嗯,ViewModel通常设置为View的“DataContext”。代码隐藏是View的一部分。
所以......只是暴露ViewModel中的数据。在您的代码隐藏中,您可以使用DataContext属性(使用适当的转换)访问它。
答案 1 :(得分:0)
我会将viewmodel存储在一个变量中,所以我不需要每次都运行DataContext ...例如在MainWindow.xaml.cs代码中:
private MainWindowViewModel _vm;
public MainWindow()
{
InitializeComponent();
this._vm = new MainWindowViewModel();
// this._vm.MyProperty = ... (or does the vm instantiate MyProperty?)
this.DataContext = this._vm;
}
private void HandleSomeEvent(object sender, RoutedEventArgs e)
{
var sharedObject = _vm.MyProperty;
}