【发布时间】:2013-02-21 12:52:35
【问题描述】:
在 WPF 应用程序中,我定义了一个进度条。
<ProgressBar Minimum="0" Maximum="{Binding TotalItemCount}" Value="{Binding CurrentItemCount, UpdateSourceTrigger=PropertyChanged}" />
但是我的问题是进度条已完全填充,即在启动应用程序后直接填充 100%,尽管我最初将属性设置为以下值:
TotalItemCount = 0;
CurrentItemCount = 0;
只要我将TotalItemCount 更改为1,进度条就会正确设置为 0 %。在我看来,控件将 0 从 0 解释为 100 % 。
如何将进度条初始化为 0 %?
【问题讨论】:
-
显然 0 of 0 是 100%。为什么不设置
TotalItemCount= 1 作为初始值? -
我认为进度条此时不需要可见,为什么不隐藏它直到你真正加载项目?
-
TotalItemCount属性绑定到另一个显示数字的标签控件。如果我将其初始化为 1,则用户认为已经有一项,因此他没有加载任何数据。 -
您的最大值为 0,值为 0,因此达到最大值。数学在那里并没有真正发挥作用,虽然我不知道内部原理。
-
@Robert 当你说 0/0 没有定义时,你就明白了。只要最小值和最大值相等,就无法计算出有效的百分比。换句话说,任何值(无论是 0% 还是 100%)都同样无效。因此,您不能说“正确初始化为 0%”。唯一的解决办法是根本不显示进度条。
标签: c# wpf data-binding progress-bar