绑定控件取决于布尔

时间:2019-03-15 11:15:41

标签: c# wpf xaml mvvm

我必须完成以下任务,根本不知道该怎么做。

我正在使用WizardControl(XCeed Wpf工具包),并且希望根据ViewModel中的某个状态(例如bool变量)跳过一页。 为此,我必须根据此bool变量将另一个控件(一个WizardPage)绑定到前一个WizardPage的NextPage DependencyProperty。我认为可以使用DataTrigger以某种方式完成此操作,但是我对此主题并不那么有经验。有人可以帮我吗?

最小代码示例:

<xctk:Wizard>
  <xctkWizardPage x:Name="Page1" NextPage="Page2"/>
  <xctkWizardPage x:Name="Page2"/>
  <xctkWizardPage x:Name="Page3"/>
  </xctkWizardPage>
</xctk:Wizard>
public bool Property { get; set; }

我想做的是使“ Page1”的“ NextPage”依赖于“ Property”,例如如果Property == true,则将“ Page2”作为NextPage,否则转到“ Page3”。

非常感谢您的帮助!

Jan

2 个答案:

答案 0 :(得分:0)

也许像这样:

<Style TargetType="xctWizardPage">
    <Style.Triggers>
        <DataTrigger Property="YourProperty" Value="True">
            <Setter Property="NextPage" Value="Page2" />
        </DataTrigger>
        <DataTrigger Property="YourProperty" Value="False">
            <Setter Property="NextPage" Value="Page3" />
        </DataTrigger>

    </Style.Triggers>
</Style>

尝试这样的事情。

答案 1 :(得分:0)

此解决方案对我有用:

<xctk:Wizard>
  <xctk:WizardPage x:Name="Page1">
    <Style TargetType="xctk:WizardPage">
      <Style.Triggers>
        <DataTrigger Binding="{Binding Path=Property}" Value="True">
          <Setter Property="NextPage" Value="{Binding ElementName=Page2}" />
        </DataTrigger>
        <DataTrigger Binding="{Binding Path=Property}" Value="False">
          <Setter Property="NextPage" Value="{Binding ElementName=Page3}" />
        </DataTrigger>
      </Style.Triggers>
    </Style>
  </xctk:WizardPage>

  <xctk:WizardPage x:Name="Page2"/>
  <xctk:WizardPage x:Name="Page3"/>
</xctk:Wizard>

感谢所有回复。