Bind Control в зависимости от bool - PullRequest
0 голосов
/ 15 марта 2019

Я должен выполнить следующую задачу и вообще не знаю, как это сделать.

Я использую WizardControl (XCeed Wpf Toolkit) и хочу пропустить одну страницу, в зависимости от определенного состояния в ViewModel (скажем, bool-переменная). Для этого мне нужно привязать другой элемент управления (WizardPage) к предыдущему объекту WizardPage NextPage DependencyProperty в соответствии с этой переменной bool. Я думаю, что это можно сделать как-то с помощью 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; }

То, что я хочу сделать, это сделать «NextPage» из «Page1» зависимым от «Property», например, Если для свойства == true задано значение "Page2" в качестве значения NextPage, в противном случае перейдите на "Page3".

Большое спасибо за помощь!

Jan

Ответы [ 2 ]

0 голосов
/ 15 марта 2019

Это решение сработало для меня:

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

Спасибо за все ответы.

0 голосов
/ 15 марта 2019

Может быть что-то вроде:

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

Попробуйте что-нибудь подобное.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...