productColumn2的绑定完美地适用于这两种方式。当我为每个添加一个转换器时,productColumn1称为转换器;但是当从可观察集合加载时将其值设置为null,或者在赋值时将值设置为产品(但实际上并未分配可观察集合)。相同的绑定适用于1个XAML项目,但为另一个为空
问题与DataContext和LogicalTree有关。 ProductSelectorTextBoxUserControl的DataContext本身就是它自己的代码。我希望能够将其“文本”属性绑定到我的可观察集合,如productColumn2中。我到目前为止似乎无法将ProductSelectorTextBoxUserControl DataContext设置为此处使用的DataContext。
<DataGrid ItemsSource="{Binding Path=ObservableCollectionItems, Mode=OneWay}" AutoGenerateColumns="False" EnableRowVirtualization="True" >
<DataGrid.Columns>
<DataGridTemplateColumn x:Name="productColumn1" SortMemberPath="Product" >
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<productSelector:ProductSelectorTextBoxUserControl Text="{Binding Path=Product, Mode=TwoWay, NotifyOnSourceUpdated=True, UpdateSourceTrigger=LostFocus, ValidatesOnExceptions=True}" />
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<DataGridTextColumn x:Name="productColumn2" Binding="{Binding Path=Product, Mode=TwoWay, NotifyOnSourceUpdated=True}" />
</DataGrid.Columns>
您能分享转换器的代码吗? – sellmeadog 2012-08-07 15:45:44
在输出窗口中获取任何绑定错误? – 2012-08-07 16:05:08
您是否曾尝试在'productColumn2'中使用转换器?我最初的猜测是'customeTextBoxOfProductType'没有找到'Product'属性,这会指示导航逻辑树时出现问题而无法找到'DataGrid.DataContext'。 – sellmeadog 2012-08-07 16:09:05