Может ли кто-нибудь дать мне несколько советов о том, что я могу делать неправильно?WPF string to double converter
так у меня есть TextBlock в XAML
<TextBlock>
<TextBlock.Text>
<Binding Source="signal_graph" Path="GraphPenWidth" Mode="TwoWay" Converter="{StaticResource string_to_double_converter}" />
</TextBlock.Text>
</TextBlock>
, который прилагается к собственности GraphPenWidth signal_graph в (типа двойного). Преобразователь объявлен в качестве ресурса в ресурсах приложения и выглядит следующим образом:
public class StringToDoubleValueConverter : IValueConverter
{
public object Convert(object value, Type targetType,
object parameter, CultureInfo culture)
{
double num;
string strvalue = value as string;
if (double.TryParse(strvalue, out num))
{
return num;
}
return DependencyProperty.UnsetValue;
}
public object ConvertBack(object value, Type targetType,
object parameter, CultureInfo culture)
{
return value.ToString();
}
}
То, что я думал, что произойдет в том, что при запуске значение свойства выбирается конструктором по умолчанию будет распространяться на TextBlock, а затем будущее Изменения в текстовом блоке обновили бы график, когда текстовый блок оставил фокус. Однако вместо этого начальная нагрузка не обновляет текст текстового блока, а изменения в тексте текстового блока не влияют на значение ширины пера графа.
не стесняйтесь спрашивать о дальнейшем уточнении.
Вы это неправильный путь: Вам нужен DoubleToStringConverter, а не StringtoDoubleConverter. – Shlomo