首先抱歉我的英语。 我遇到了问题,我无法弄清楚如何解决问题。我有一个带有DataGrid对象的列表(finalList)。我在DataGrid中动态创建列和行。我有一个List>我在哪里生成行。我的问题是,当我创建一个FrameworkElement typeof(TextBox)时,绑定效果很好。但是当我使用组合框创建框架元素时,我可以看到选项,但我无法设置SelectedValueBinding。因此组合框显示选项,但从不以选定的开始。
这就是我动态创建列的方法
FrameworkElementFactory frameElementFactory = new FrameworkElementFactory(typeof(ComboBox));
itemsSourceBinding.Source = finalList;
frameElementFactory.SetBinding(ComboBox.ItemsSourceProperty, itemsSourceBinding);
这是我的XAML
<DataGrid x:Name="UC_CopyReferenceGrid" HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Auto" Grid.Row="0" AutoGenerateColumns="False" CanUserAddRows="False" CanUserDeleteRows="False" Margin="10,10,246,10"></DataGrid>
我需要将绑定添加到FrameworkElementFactory。
谢谢!
答案 0 :(得分:0)
ItemsSource
绑定是否正常运行?如果是这样,则绑定SelectedValue
:
frameElementFactory.SetBinding(
Selector.SelectedValueProperty,
new Binding {
Path = new PropertyPath(ContentControl.ContentProperty), // ?
Mode = BindingMode.TwoWay
}
);
我对绑定路径不肯定;它应该与其他列相同。
通常,当逻辑值是SelectedValue
中项目的子属性时,会使用ItemsSource
,在这种情况下,您可能还需要使用SelectedValuePath
属性来指定财产路径。否则,您只需使用SelectedItem
。