将ProgressBar与Caliburn.micro一起使用

rhe*_*980 4 c# wpf caliburn.micro progress-bar

在我的WPF应用程序中,我试图将控件“ ProgressBar”的“ Maximum”属性与ViewModel的属性绑定(借助Caliburn.micro)。

查看(xaml):

<ProgressBar x:Name="CurrentProgress"/>
Run Code Online (Sandbox Code Playgroud)

ViewModel:

private int currentProgress;
public int CurrentProgress
{
  get { return currentProgress; }
  set
  {
    if (currentProgress == value)
    {
      return;
    }

    currentProgress = value;
    NotifyOfPropertyChange(() => CurrentProgress);
  }
}
Run Code Online (Sandbox Code Playgroud)

问题:Caliburn.micro是否有办法绑定最大值。我试图创建一个像这样的属性:

private int maximumProgress;
public int MaximumProgress
{
  get { return maximumProgress; }
  set
  {
    if (maximumProgress == value)
    {
      return;
    }

    maximumProgress = value;
    NotifyOfPropertyChange(() => MaximumProgress);
  }
}
Run Code Online (Sandbox Code Playgroud)

但这是行不通的。我也在Caliburn文档中进行搜索,但是在那里找不到任何帮助。

谢谢你的帮助

dko*_*ozl 5

您可以ProgressBar.Maximum像其他人一样进行绑定DependencyProperty。这应该工作:

<ProgressBar x:Name="CurrentProgress" Maximum="{Binding Path=MaximumProgress}"/>
Run Code Online (Sandbox Code Playgroud)

x:Name="CurrentProgress"已转换为,Value="{Binding Path=CurrentProgress, Mode=TwoWay}"这样的事情也应该起作用:

<ProgressBar Value="{Binding Path=CurrentProgress}" Maximum="{Binding Path=MaximumProgress}"/>
Run Code Online (Sandbox Code Playgroud)