[英]WPF bind usercontrol to viewmodel from code behind
主窗口构造函数:
InitializeComponent();
MainViewModel = new MainViewModel();
captureUserControl.DataContext = MainViewModel.CaptureViewModel;
主窗口中的 XAML
<UserControls:CaptureControl x:Name="captureUserControl"/>
用户控制的一部分
<Image x:Name="masterImage" Margin="0,189,0,120" RenderTransformOrigin="0.5,0.5" Source="{Binding Path=MasterImage, ElementName=captureUserControl}" Stretch="Fill" Grid.Column="1" >
ViewModel的一部分
public BitmapSource MasterImage { get { return masterImage; } private set {SetValue<BitmapSource>(ref masterImage, value); } }
错误
System.Windows.Data Error: 40 : BindingExpression path error:
'MasterImage' property not found on 'object' ''CaptureControl'
(Name='captureUserControl')'. BindingExpression:Path=MasterImage;
DataItem='CaptureControl' (Name='captureUserControl');
target element is 'Image' (Name='masterImage'); target property is 'Source' (type 'ImageSource')
我认为这可能是因为在创建captureUserControl
,没有设置其datacontext。 我希望在后面的代码中实例化MainViewModel
,因为需要完成的工作不是单击按钮即可。 需要在窗口加载时调用某些async
方法来初始化硬件。 是否有人以这种方式设置了数据绑定的任何示例或技巧?
UserControl并非旨在绑定到视图模型。
它们本应绑定到其他容器(即Window)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.