在设置datacontext时面临问题。 我有一个带有Itemsource = itemsource1的telerik radgridview - 它位于viewmodel1(UserControl“UC1”的datacontext)中。见下文:
public ObservableCollection<RadioCallData> itemsource1
{
get
{
return this.Get<ObservableCollection<Class1>>("itemsource1");
}
set
{
this.Set("itemsource1", value);
}
}
XAML:
UserControl:UC1
<telerik:RadGridView x:Name="Radgrid1"
ItemsSource="{Binding itemsource1}">
<telerik:RadGridView.Columns>
<telerik:GridViewDataColumn Width="4*" DataMemberBinding="{Binding Property1OfClass1}">
<telerik:GridViewDataColumn.CellTemplate>
<DataTemplate>
<local:UC2 ParentSource = "{Binding <context of viewmodel1>}"/>
<DataTemplate>
创建了另一个视图UC2,其中的控件是根据observablecollection中的项目设置的。
现在要求在UC2中获取viewmodel1.cs的datacontext,以便为某些按钮绑定几个命令。
我的方法:enter code here
在代码隐藏UC2.xaml.cs中,一个依赖项propety被创建为object类型的“ParentSource”。我正在尝试将上下文UC1,即viewmodel1分配给DP“ParentSource”,以便这样做 使用这个我们可以绑定命令来控制并获取viewmodel1中的实现。
我尝试了几种方法,但无法设置DP。可能会遗漏一些东西。请指点。
答案 0 :(得分:1)
试试这个
<local:UC2 ParentSource = "{Binding DataContext,RelativeSource={RelativeSource AncestorType={x:Type Window}}}"/>