MultiValueConverter を使用したテキスト列を持つデータグリッドがあります。コンバーターは 2 つの値を取得しました。1 番目は現在の Item に依存し、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>
次に、最初の行は問題ありませんが、2 行目では currentItem を取得できません。
私はSortEventを使用しようとしましたが、ロジックなしでSortDescriptionしか追加できません(コンバーターに持っています)。
multiValueConverter を使用するときに列を並べ替える方法はありますか?