我有一个使用MultiValueConverter的textcolum datagrid。转换器有2个值。第一个依赖于当前Item和第二个TextBlock。显示的值是我想要的。使用MultiValueConverter排序DataGrid列
<TextBox x:Name="phases"></TextBox>
<DataGrid AutoGenerateColumns="False" CanUserAddRows="False" CanUserDeleteRows="False" CanUserReorderColumns="False" CanUserResizeRows="False"
ItemsSource="{Binding MySource}" RowDetailsVisibilityMode="Collapsed" RowHeaderWidth="0"
SelectionMode="Single">
<DataGrid.Columns>
<DataGridTextColumn Width="Auto" Header="Pos">
<DataGridTextColumn.Binding>
<MultiBinding Converter="{StaticResource MyMultiValueConverter}">
<Binding ElementName="phases" Path="Text" />
<Binding />
</MultiBinding>
</DataGridTextColumn.Binding>
</DataGridTextColumn>
</DataGrid.Columns>
</DataGrid >
列中的值显示是我想要的。 问题是我不能按这个柱子排序。 我尝试添加类似的东西:
<DataGridTextColumn.SortMemberPath>
<MultiBinding Converter="{StaticResource MyMultiValueConverter}">
<Binding ElementName="phases" Path="Text" />
<Binding />
</MultiBinding>
</DataGridTextColumn.SortMemberPath>
但我得到一个“找不到理事FrameworkElement的或FrameworkContentElement上的目标元素。”错误。我改成:
<DataGridTextColumn.SortMemberPath>
<MultiBinding Converter="{StaticResource MyMultiValueConverter}">
<Binding Path="Text" Source="{x:Reference phases}" />
<Binding Path="" />
</MultiBinding>
</DataGridTextColumn.SortMemberPath>
然后第一行是好的,但第二,我不能得到currentItem。我尝试使用SortEvent,但我只能添加SortDescription没有任何逻辑(我有它在我的转换器)。
使用multiValueConverter时,有什么方法可以对列进行排序?
[DataGridColumn SortMemberPath on MultiBinding]可能重复(http://stackoverflow.com/questions/11193203/datagridcolumn-sortmemberpath-on-multibinding) – horns 2015-12-22 00:36:57