使用属性作为值来定义绑定的WPF绑定

使用属性作为值来定义绑定的WPF绑定,wpf,telerik,Wpf,Telerik,我得说我不习惯WPF。 我的问题是,我有一个包含该值的属性,但我不想绑定到该属性。 我想将属性绑定到一个名为属性名称中的值的属性 这是我的xaml: <telerik:RadMultiColumnComboBox x:Name="radMultiColumnComboBox_Part" Grid.ColumnSpan="3" Grid.Row="

我得说我不习惯WPF。 我的问题是,我有一个包含该值的属性,但我不想绑定到该属性。 我想将属性绑定到一个名为属性名称中的值的属性

这是我的xaml:

        <telerik:RadMultiColumnComboBox x:Name="radMultiColumnComboBox_Part"
                                        Grid.ColumnSpan="3" Grid.Row="1"
                                        SelectedItem="{Binding SelectedItem, ElementName=selector, Mode=TwoWay}"
                                        >

        <telerik:RadMultiColumnComboBox.ItemsSourceProvider>
            <telerik:GridViewItemsSourceProvider ItemsSource="{Binding ItemsSource, ElementName=selector}" 
                                                 AutoGenerateColumns="False"
                                                 >
                <telerik:GridViewItemsSourceProvider.Columns>
                   <!-- This line below is what I am talking about -->
                   <telerik:GridViewDataColumn DataMemberBinding="{Binding Name, ElementName=selector}" />
                </telerik:GridViewItemsSourceProvider.Columns>
                </telerik:GridViewItemsSourceProvider>
            </telerik:RadMultiColumnComboBox.ItemsSourceProvider>
        </telerik:RadMultiColumnComboBox>
我更喜欢xaml格式的解决方案,但c#格式也可以


谢谢。

这在纯XAML中是不可能做到的。您需要以编程方式创建绑定。大概是这样的:

var gridViewColumn = sourceProvider.Columns[0] as GridViewDataColumn;
string propertyToBindTo = selector.Name;
gridViewColumn.DataMemberBinding = new Binding(propertyToBindTo);
解决方案:

        var provider = this.GridViewItemsSourceProvider;
        // var provider = this.radMultiColumnComboBox_Part.ItemsSourceProvider as GridViewItemsSourceProvider;
        provider.Columns.Add(new GridViewDataColumn() { DataMemberBinding = new Binding("Name") });

也许可以使用本机控件来解释您的问题,这样人们就可以在不下载第三方的情况下帮助您。我认为问题与框架有关。似乎有些解决方案不适用于这种情况。是的,问题是我无法访问该专栏。只有柱子。但我可以添加列
        var provider = this.GridViewItemsSourceProvider;
        // var provider = this.radMultiColumnComboBox_Part.ItemsSourceProvider as GridViewItemsSourceProvider;
        provider.Columns.Add(new GridViewDataColumn() { DataMemberBinding = new Binding("Name") });