【发布时间】:2018-06-18 07:58:48
【问题描述】:
所以我有一个简单的Gauge 类,它具有实现Propertychanged 的静态int 属性:
TotalPacketsSent
这个property 一直在提高,我想写简单的converter 并发送这个converter 这个property value 并根据这个property 返回一些值:
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
int val = (int)value;
double percentage = ((double)MyClass.TotalPacketsSent / MyClass.TotalPacketsInList) * 100;
return percentage;
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
}
在Window.Resources 下我有这个:
<Convertors:GaugeValueConverter x:Key="GaugeValueConverter"/>
这是我的Gause:
<Controllers:Gauge x:Name="gauge"
Value="{Binding Path=(my:MyClass.TotalPacketsSent), Converter={StaticResource GaugeValueConverter}}"
Minimum="0"
Maximum="100"/>
所以我的问题是我的converter 根本不工作,我的意思是我看不到这甚至执行了。
任何想法为什么?
编辑:
这个property一直在变化,我有Label我正在用这种方式来显示它的价值:
Content="{Binding Path=(my:MyClass.TotalPacketsSent)}"
这很好用。
【问题讨论】:
-
转换器是否关心它收到的价值?看起来您正在绑定到那里的静态属性,我不确定它是否会起作用。
-
是的,请查看我在转换函数中的编辑
-
这个属性(TotalPacketsSent)一直在变化,因为我提到我有一个简单的标签,可以实时显示这个属性值,这很好
-
MyClass.TotalPacketsSent在转换器中似乎没有多大意义。 MyClass 应该在这里是什么?转换器类的属性?你有没有把它放在任何地方?您实际需要的似乎是带有多值转换器的MyClass.TotalPacketsSent和MyClass.TotalPacketsInList的 MultiBinding。 -
静态属性很简单(它甚至有类型或实现吗?)而且标签很简单很好,但是简单属性会引发简单的静态属性更改通知吗?跨度>