我有一个使用 MultiValueConverter 的带有文本列的数据网格。转换器有 2 个值。当前项目的第一个依赖项和 TextBlock 的第二个依赖项。显示的值是我想要的。
<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 时有什么方法可以对列进行排序?