Мне нужны конвертеры для использования с Texblocks и Slider в приложении UWP.При использовании Binding все работает нормально, но после изменения на x: Bind конвертер перестает работать.Свойства обновляются корректно, и если я удаляю конвертер (из текстовых полей), я вижу, что значения обновляются (но без правильного формата).
Возможно, кто-то может помочь мне изменить код конвертера, чтобы он был совместимымс x: Bind (я уже пробовал, но не могу найти решение).
Свойства:
Position = TimeSpan
Duration = TimeSpan
Duration.TotalSeconds = double
Элементу управления Slider необходимо преобразовать позицию в удвоенное значение.Элементу управления Textblock необходимо преобразовать Position в строку с соответствующим форматом.
Код XAML Slider Control
<Slider Name="PositionSlider" Orientation="Horizontal" Margin="10"
Value="{x:Bind ViewModel.Position, Mode=TwoWay, Converter={StaticResource TimeSpanToSecondsConverter}}"
Maximum="{x:Bind ViewModel.Duration.TotalSeconds}"/>
Элемент управления TextBlock
<TextBlock Margin="10" Text="{x:Bind ViewModel.Position, Converter={StaticResource TimeSpanToStringConverter}}"/>
Код для «TimeSpanToSecondsConverter»"
public sealed class TimeSpanToSecondsConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, string language)
{
var timeSpan = value as TimeSpan?;
return timeSpan?.TotalSeconds ?? 0.0;
}
public object ConvertBack(object value, Type targetType, object parameter, string language)
{
var seconds = value as double?;
return TimeSpan.FromSeconds(seconds ?? 0);
}
}
Код для" TimeSpanToStringConverter "
public sealed class TimeSpanToStringConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, string language)
{
var timeSpan = value as TimeSpan?;
return timeSpan?.ToString("mm\\:ss");
}
public object ConvertBack(object value, Type targetType, object parameter, string language)
{
throw new NotSupportedException();
}
}
Спасибо.