来自另一个带转换器WPF的cs文件的绑定属性

时间:2016-06-05 11:55:04

标签: c# wpf data-binding namespaces

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')

有任何帮助吗?

谢谢!

1 个答案:

答案 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}}"/>