C# 绑定WPF进度条从不更新
在OnPropertyChanged()期间,PropertyChanged事件始终为NULL,因此永远不会调用该事件。我错过了什么 以下是XML代码:C# 绑定WPF进度条从不更新,c#,wpf,C#,Wpf,在OnPropertyChanged()期间,PropertyChanged事件始终为NULL,因此永远不会调用该事件。我错过了什么 以下是XML代码: <ProgressBar x:Name="ProgressBar1" Value="{Binding PBarValue, UpdateSourceTrigger=PropertyChanged}" Width="200" Height="20" Minimum="0" Maximum="100"></ProgressBar&
<ProgressBar x:Name="ProgressBar1" Value="{Binding PBarValue, UpdateSourceTrigger=PropertyChanged}" Width="200" Height="20" Minimum="0" Maximum="100"></ProgressBar>
我正在从另一个线程设置进度条的“值”,所以这就是我需要绑定的原因
在这一点上,我已经尝试了很多不同的方法,我的头在旋转 请将XAML中的绑定从PBarValue更改为progress。请参阅下面的代码
<ProgressBar x:Name="ProgressBar1" Value="{Binding progress, UpdateSourceTrigger=PropertyChanged}" Width="200" Height="20" Minimum="0" Maximum="100"></ProgressBar>
更改xaml以绑定到进度:
<ProgressBar x:Name="ProgressBar1" Value="{Binding progress, UpdateSourceTrigger=PropertyChanged}" Width="200" Height="20" Minimum="0" Maximum="100"></ProgressBar>
不管可能存在多线程问题:您正在为属性
PBarValue
触发PropertyChanged
事件,这将导致绑定通过反射查找属性PBarValue
的值。但是,看起来您没有该名称的属性。绑定无法知道您希望它检索progress
属性的值(如果您希望这样做的话)。PBarValue是绑定语句中XML格式的value属性的名称。这不正确吗?绑定中指示的属性名称必须与对象中的实际属性名称相匹配,这样就可以绑定到任何对象。目前还没有,太完美了!现在看起来很清楚。。。有时你可以看到森林里的树木!
<ProgressBar x:Name="ProgressBar1" Value="{Binding progress, UpdateSourceTrigger=PropertyChanged}" Width="200" Height="20" Minimum="0" Maximum="100"></ProgressBar>
private int _progress;
public int progress
{
get { return _progress; }
set
{
if (value != _progress)
{
_progress = value;
OnPropertyChanged("progress");
}
}
}