首先,对我的英语感到抱歉。我有个问题,我想不出怎么解决。我有一个包含finalList对象的列表( list )。我在DataGrid中动态地创建列和行。我有一个生成行的List>。我的问题是,当我创建一个FrameworkElement类型(TextBox)时,绑定非常有效。但是,当我使用combobox创建框架元素时,我可以看到选项,但不能设置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中。
谢谢!
发布于 2014-09-25 14:01:52
ItemsSource绑定是否正常工作?如果是这样,则绑定SelectedValue的过程或多或少是相同的。
frameElementFactory.SetBinding(
Selector.SelectedValueProperty,
new Binding {
Path = new PropertyPath(ContentControl.ContentProperty), // ?
Mode = BindingMode.TwoWay
}
);我对绑定路径并不乐观;它应该与其他列相同。
通常,当逻辑值是ItemsSource中项的子属性时使用SelectedValuePath,在这种情况下,您可能还需要使用SelectedValuePath属性来指定属性路径。否则,您可以简单地使用SelectedItem。
https://stackoverflow.com/questions/26039703
复制相似问题