c#WPF绑定到DataConext的属性

c#WPF绑定到DataConext的属性,c#,wpf,data-binding,C#,Wpf,Data Binding,我在WPF(c#)中的绑定方面有问题 这是我的xaml: 如果我使用此绑定: Binding Binding=新绑定() { 路径=新属性路径(名称(ItemsSource)), 来源=此 }; 那么绑定路径是正确的(正在寻找可能的路径), 但他正在寻找虚假的来源。 正在绑定到ViewModel中的属性PossibleProps 如果我使用此绑定: Binding Binding=新绑定() { 路径=新属性路径(名称(ItemsSource)), Source=DataContext }

我在WPF(c#)中的绑定方面有问题

这是我的xaml:


如果我使用此绑定:

Binding Binding=新绑定()
{
路径=新属性路径(名称(ItemsSource)),
来源=此
};
那么绑定路径是正确的(正在寻找可能的路径), 但他正在寻找虚假的来源。 正在绑定到
ViewModel
中的属性
PossibleProps

如果我使用此绑定:

Binding Binding=新绑定()
{
路径=新属性路径(名称(ItemsSource)),
Source=DataContext
};
那么绑定路径为false(正在查找ItemsSource), 但是正在寻找我想要的来源。 正在绑定到
MainViewModel
中的属性
ItemsSource

你能帮我吗

更新1: 完整代码:

使用系统;
使用System.Collections.Generic;
使用System.Windows;
使用System.Windows.Controls;
使用System.Windows.Data;
使用Telerik.Windows.Controls;
使用Telerik.Windows.Controls.GridView;
命名空间DB_Admin_WPF.Controls
{
公共分部类ComboColumn:GridViewDataColumn
{
public static dependencProperty ItemsSourceProperty=dependencProperty.Register(“ItemsSource”、typeof(IEnumerable)、typeof(ComboColumn)、new PropertyMetadata());
公共IEnumerable ItemsSource
{
get{return(IEnumerable)GetValue(ItemsSourceProperty);}
set{SetValue(ItemsSourceProperty,value);}
}
公共覆盖FrameworkElement CreateCellElement(GridViewCell单元格,对象数据项)
{
var元素=新的TextBlock();
var valueBinding=新绑定(DataMemberBinding.Path.Path)
{
Mode=BindingMode.TwoWay,
Converter=新ConverterKeyValue()
};
元素.SetBinding(TextBlock.TextProperty,valueBinding);
返回元素;
}
公共覆盖FrameworkElement CreateCellEditElement(GridViewCell单元格,对象数据项)
{
Binding Binding=新绑定()
{
路径=新属性路径(名称(ItemsSource)),
Source=DataContext
};
var元素=新的RadComboBox();
元素.SetBinding(RadComboBox.SelectedItemProperty,DataMemberBinding);
element.DisplayMemberPath=“Value”;
元素.SetBinding(RadComboBox.ItemsSourceProperty,绑定);
返回元素;
}
//公共IEnumerable ItemSource{get;set;}
公共列()
{
初始化组件();
}
}
}
更新2 所以我现在分享了完整的代码。xaml是我想要如何使用我的类
ComboColumn

DataContext
指的是
MainViewModel
,而这指的是
ViewModel
,它位于“MainViewModel”的列表中

在绑定中,我想在
MainViewModel
中引用
PossibleProps
,您的
ItemsSource=“{binding PossibleProps}”
绑定将始终失败,因为
DataGridColumn
没有继承任何要绑定的
DataContext

Binding
(或
DataMemberBinding
)是在运行时应用于生成元素的绑定类型属性。没有从列中解析它


您可以查看答案,了解如何使用
Freezable
将列的
Visibility
属性绑定到源属性的示例。

这里不清楚您想做什么。您已经在xaml中创建了一个绑定,为什么还要在代码中创建绑定?@TimRutter Sry,这是我糟糕的解释。我不太习惯用英语写作。我希望你在编辑后明白我的意思。@4142:什么是正确的,什么是不正确的?您试图绑定到什么属性以及从何处绑定?
PossibleProps
在哪里?如何将
ItemsSource
属性绑定到此属性?@mm8我尝试在
MainViewModel
@peni4142:从哪里绑定
PossibleProps
?XAML标记?当我将绑定的
Source
设置为
DataContext
时,我得到的输出是:“object”“MainViewModel”“上找不到ItemsSource”属性,因此我认为存在DataContext.No。当您显式地设置
源代码时,您不会绑定到任何继承的
数据上下文。