在datatemplate中设置datacontext不起作用

时间:2014-08-25 06:14:16

标签: c# wpf xaml telerik

在设置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。可能会遗漏一些东西。请指点。

1 个答案:

答案 0 :(得分:1)

试试这个

<local:UC2 ParentSource = "{Binding DataContext,RelativeSource={RelativeSource AncestorType={x:Type Window}}}"/>