在 MainWindow.xaml.cs 上我定义了:
5 May 2016
我也在同一个文件中更新CurrentStep。
On MessageWithProgressBar.xaml 我定义了:
private int _currentStep = 1;
public int CurrentStep
{
get
{
return _currentStep;
}
set
{
_currentStep = value;
NotifyPropertyChanged("CurrentStep");
}
}
private void NotifyPropertyChanged(string info)
{
if (PropertyChanged != null)
{
PropertyChanged(this, new PropertyChangedEventArgs(info));
}
}
public event PropertyChangedEventHandler PropertyChanged;
我在运行时得到的错误是:
BindingExpression路径错误:'object'''String'上找不到'CurrentStep'属性(HashCode = 1137317725)'。 BindingExpression:路径= CurrentStep; DataItem ='String'(HashCode = 1137317725); target元素是'ProgressBar'(Name ='progress'); target属性为'Value'(类型'Double')
有任何帮助吗?
谢谢!
答案 0 :(得分:1)
您必须设置MessageBox的DataContext。您可以在创建期间在constuctor中传递MainWindow:
<强> MessageWithProgressBar.xaml.cs 强>
public MessageWithProgressBar(MainWindow Mw)
{
this.DataContext = Mw;
}
现在,您只能使用它的名称绑定每个属性。您的progressBar现在看起来像
<ProgressBar Name="progress" IsIndeterminate="True" Value="{Binding CurrentStep, Converter={StaticResource stepToProgress}}"/>