WPF-MVVM将ViewModel属性绑定到嵌套的UserControl

WPF-MVVM将ViewModel属性绑定到嵌套的UserControl,wpf,mvvm,binding,user-controls,dependency-properties,Wpf,Mvvm,Binding,User Controls,Dependency Properties,正如标题所述,我希望将ViewModel中的属性绑定到相应视图中的嵌套UserControl。 我不能让它按我需要的方式工作 嵌套的UserControl只不过是一个日期选择器和一个下拉列表。如何让日期选择器选择ViewModel传播的日期作为其选定日期 我几乎什么都试过了,现在我离跳出窗外不远了。 如您所见,我们非常感谢您的帮助;) 现在来看到目前为止的代码:DateTimePicker.xaml.cs(CodeBehind) 嵌套的UserControl(DateTimePicker.xam

正如标题所述,我希望将ViewModel中的属性绑定到相应视图中的嵌套UserControl。 我不能让它按我需要的方式工作

嵌套的UserControl只不过是一个
日期选择器
和一个
下拉列表
。如何让日期选择器选择ViewModel传播的日期作为其选定日期

我几乎什么都试过了,现在我离跳出窗外不远了。 如您所见,我们非常感谢您的帮助;)

现在来看到目前为止的代码:DateTimePicker.xaml.cs(CodeBehind)

嵌套的UserControl(DateTimePicker.xaml):


最后但并非最不重要的一点是:具有嵌套UserControl(View.xaml)的视图

希望问题很清楚,任何人都能帮助我或指出我做错了什么。

使用:

"{Binding SelectedDateValue}"
告诉WPF“检查my
DataContext
中名为
SelectedDateValue
”的属性

您需要的是从用户控件获取
属性

最简单的方法是为用户控件命名,如:

<UserControl x:Name="myControl"/>

WPF控件实现的通常方式是使用模板,而不是像这里所做的那样将控件定义为直接内容。通过使用
模板
,您可以访问,从而可以轻松绑定控件属性。请参阅MSDN页面

<ControlTemplate TargetType="{x:Type local:DateTimePicker>
  ...
  <DatePicker SelectedDate="{TemplateBinding SelectedDateValue}" />
  ...
</ControlTemplate>

谢谢你的回复。我给了UserControl一个名称,并按照您所描述的那样更改了这个UserControl中的绑定。在运行时,它告诉我,
错误:在“对象”“日期时间选择器”“上找不到LocalRegistrationStartDate属性…
,这是我的用户控件。那么,我是否设置了错误的绑定?好的。现在好像有用了。我不得不删除在其他论坛中发现的一些我不想让他们做的事情;-)
<UserControl x:Name="myControl"/>
"{Binding ElementName=myControl, Path=SelectedDateValue}"
<ControlTemplate TargetType="{x:Type local:DateTimePicker>
  ...
  <DatePicker SelectedDate="{TemplateBinding SelectedDateValue}" />
  ...
</ControlTemplate>