【发布时间】:2013-10-01 08:03:59
【问题描述】:
我想动态更新我的 XAML 中定义的 ProgressBar 的值:
<ProgressBar HorizontalAlignment="Center"
Height="90" Margin="0,-30,0,0"
VerticalAlignment="Center"
Width="600" x:Name="BarProgress" Value="{Binding Test}" Maximum="100" />
在页面的控件中我定义了这个类:
public class TestData
{
public double Test { get; set; }
}
而在LoadState方法中:
TestData data = new TestData();
data.Test = downloadData.ProgressValue();
BarProgress.DataContext = data;
最后,在负责下载文件的类中,我有一个 ProgressValue 函数,它返回下载的百分比。 绑定似乎有效,但它不是动态的......我可以在 ProgressBar 中看到我为 downloadData.ProgressValue() 设置的第一个值...... 哪个是动态绑定的正确方法?!?!
【问题讨论】:
-
通常当您看到第一个值但没有更改时,您会忘记通知属性更改,因此数据绑定永远不会更新。查看INotifyPropertyChanged。
-
负责下载的类,返回值downloadData.ProgressValue(),扩展INotifyPropertyChanged...
标签: c# xaml data-binding