c#WPF绑定到DataConext的属性
我在WPF(c#)中的绑定方面有问题 这是我的xaml:c#WPF绑定到DataConext的属性,c#,wpf,data-binding,C#,Wpf,Data Binding,我在WPF(c#)中的绑定方面有问题 这是我的xaml: 如果我使用此绑定: Binding Binding=新绑定() { 路径=新属性路径(名称(ItemsSource)), 来源=此 }; 那么绑定路径是正确的(正在寻找可能的路径), 但他正在寻找虚假的来源。 正在绑定到ViewModel中的属性PossibleProps 如果我使用此绑定: Binding Binding=新绑定() { 路径=新属性路径(名称(ItemsSource)), Source=DataContext }
如果我使用此绑定:
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。当您显式地设置源代码时,您不会绑定到任何继承的数据上下文。