我有一個使用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