То, что я пытаюсь сделать, - установить количество десятичных знаков для ячейки в одном столбце на основе соответствующей строки в другом столбце. Но мне все еще нужен первый столбец, который позволяет сортировать после его преобразования.Изменить формат строки в ячейке DataGridTextColumn на основе значения в другом столбце и сохранить значения сортировки
Первое, что я пробовал, - это использовать IValueConverter. Вот XAML:
<Window.Resources>
<src:DataValueConverter x:Key="dataValueConverter" />
</Window.Resources>
<Grid>
<DataGrid x:Name="dataGrid" AutoGenerateColumns="False">
<DataGrid.Columns>
<DataGridTextColumn Header="Id" Binding="{Binding Id}"></DataGridTextColumn>
<DataGridTextColumn Header="Humidity" Binding="{Binding Humidity, Converter={StaticResource dataValueConverter}"></DataGridTextColumn>
<DataGridTextColumn Header="Version" Binding="{Binding Version}"></DataGridTextColumn>
</DataGrid.Columns>
</DataGrid>
</Grid>
Здесь я хочу количество знаков после запятой в значении влажности на основе значения в версии. Поэтому я попытался передать версию в ConverterParameter, а затем быстро обнаружил, что он не принимает привязки.
Я попытался использовать MultiBinding с MultiValueConverter, как предложено Binding ConverterParameter. Он показывал разные десятичные разряды, однако колонка больше не сортировалась. Также попробовал этот bindable ConverterParameter http://www.codeproject.com/Articles/456589/Bindable-Converter-Parameter, дающий те же результаты.
Так можно заполнить преобразовательПараметр, чтобы получить желаемые результаты?
<DataGridTextColumn Header="Humidity" Binding="{Binding Humidity, Converter={StaticResource dataValueConverter}, ConverterParameter=???}">