【发布时间】:2013-06-18 20:54:26
【问题描述】:
谁能给我一些提示,告诉我我可能做错了什么?
所以我在 xaml 中有一个文本块
<TextBlock>
<TextBlock.Text>
<Binding Source="signal_graph" Path="GraphPenWidth" Mode="TwoWay" Converter="{StaticResource string_to_double_converter}" />
</TextBlock.Text>
</TextBlock>
附加到 signal_graph 的 GraphPenWidth 属性(双精度类型)。转换器在应用的资源中声明为资源,如下所示:
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();
}
}
我认为会发生的是,在启动时,默认构造函数选择的属性值将传播到文本块,然后当文本块离开焦点时,未来的文本块更改将更新图形。但是,初始加载不会更新文本块的文本,对文本块文本的更改不会影响图形的笔宽值。
请随时要求进一步澄清。
【问题讨论】:
-
你搞错了:你需要一个 DoubleToStringConverter,而不是 StringtoDoubleConverter。
标签: c# wpf ivalueconverter