【发布时间】:2015-06-15 21:41:19
【问题描述】:
我有圈子Progress-Bar 和这个Circle 里面的简单标签
<DesignInControl:CircularProgressBar x:Name="CircularProgressBar" HorizontalAlignment="Center" VerticalAlignment="Center"
Percentage="0" />
<Label Name="lblProgress" Content="0%" Foreground="White" Grid.Column="1" />
我有 2 个静态字段:
- 在我的
main form class- totalFiles 中 -
作为
class member:公共类数据 { 公共静态 int numberOfFiles; }
所以在这个Circle 和我的label 中,我想通过计算来显示我的百分比:(Data.numberOfFiles\totalFiles) * 100
那么我该如何通过XAML 做到这一点?
编辑
添加包含我的表单变量的新类:
public class TotalPacketInList
{
private static int _value;
public static int Value
{
get { return _value; }
set { _value = value; }
}
}
我的DoubleToPercentageConverter 班级:
public class DoubleToPercentageConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
return string.Format("{0%}", (int)(((double)Data.numberOfFiles/ TotalFilesInList.Value) * 100));
}
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
return 0;
}
}
<Label Name="lblCircleProgress" Content="{Binding ElementName=CircularProgressBar,Path=Percentage, Converter={StaticResource DoubleToPercentage}}"
Grid.Column="1" />
这将计算我的百分比,但是当我尝试运行我的应用程序时,我的label 出现异常:
在 PresentationFramework.dll 中发生了“System.Windows.Markup.XamlParseException”类型的第一次机会异常
附加信息:'设置属性 'System.Windows.Controls.ContentControl.Content' 引发了异常。 行号“481”和行位置“45”。
这是因为当应用程序启动时,TotalPacketInList.Value 的值为零,而我的计算结果除以零。
【问题讨论】:
标签: wpf