Binding 将DataGridComboBoxColumn项源绑定到相对资源FindAncestor不';行不通

Binding 将DataGridComboBoxColumn项源绑定到相对资源FindAncestor不';行不通,binding,wpftoolkit,wpfdatagrid,Binding,Wpftoolkit,Wpfdatagrid,我试图使用WPFToolkit的DataGrid控件(和C#/.net3.5)为每条记录显示一个组合框。使用以下代码,将显示组合框,但其下拉列表中不包含任何项目: <wpftkit:DataGrid ItemsSource="{Binding TransactionToEdit.SisterTransactions}" AutoGenerateColumns="False"> <wpftkit:DataGrid.Columns> <wpf

我试图使用WPFToolkit的DataGrid控件(和C#/.net3.5)为每条记录显示一个组合框。使用以下代码,将显示组合框,但其下拉列表中不包含任何项目:

<wpftkit:DataGrid ItemsSource="{Binding TransactionToEdit.SisterTransactions}"
          AutoGenerateColumns="False">
<wpftkit:DataGrid.Columns>
    <wpftkit:DataGridComboBoxColumn Header="Account" ItemsSource="{Binding RelativeSource={RelativeSource AncestorType={x:Type StackPanel},  diagnostics:PresentationTraceSources.TraceLevel=High}, Path=DataContext.Accounts}" DisplayMemberPath="Name"/>
</wpftkit:DataGrid.Columns>
</wpftkit:DataGrid>
但是,以下代码按预期工作(正确填充了组合框的下拉列表):


请注意,DataGrid和ItemsControl都具有相同的ItemsSource字符串。DataGridComboBox列和ComboBox也是如此。一个控件正确绑定,而另一个控件未正确绑定

为什么DataGridComboBoxColumn项资源不能正确绑定

谢谢你,


仅供参考,
diagnostics
被定义为
xmlns:diagnostics=“clr namespace:System.diagnostics;assembly=WindowsBase”

有趣的…如果我创建一个包含组合框的自定义DataGridColumn并使用与上述相同的ItemsSource绑定字符串,它就可以工作

<wpftkit:DataGridTemplateColumn.CellTemplate>
    <DataTemplate>
    <ComboBox SelectedItem="{Binding Account}" ItemsSource="{Binding RelativeSource={RelativeSource AncestorType={x:Type StackPanel}}, Path=DataContext.Accounts}"        DisplayMemberPath="Name" />
    </DataTemplate>
</wpftkit:DataGridTemplateColumn.CellTemplate>


我发现,如果我将组合框放在CellTemplate中,可能会发生奇怪的事情……例如,当行切换到编辑模式时,组合框将丢失其选定的值。一个简单的解决方法是让CellTemplate显示一个文本块,然后将组合框放在CellEditingTemplate中。这是一个bug,它已经被发现了。我也遇到了同样的问题!!DataGridComboxColumn只是一个损坏的东西!
<ItemsControl ItemsSource="{Binding TransactionToEdit.SisterTransactions}">
<ItemsControl.ItemTemplate>
    <DataTemplate>
    <ComboBox ItemsSource="{Binding RelativeSource={RelativeSource AncestorType={x:Type StackPanel}}, Path=DataContext.Accounts, diagnostics:PresentationTraceSources.TraceLevel=High}" DisplayMemberPath="Name"/>
    </DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
<wpftkit:DataGridTemplateColumn.CellTemplate>
    <DataTemplate>
    <ComboBox SelectedItem="{Binding Account}" ItemsSource="{Binding RelativeSource={RelativeSource AncestorType={x:Type StackPanel}}, Path=DataContext.Accounts}"        DisplayMemberPath="Name" />
    </DataTemplate>
</wpftkit:DataGridTemplateColumn.CellTemplate>