WPF MultiBinding с и условия & вложенные или условия - PullRequest
0 голосов
/ 01 мая 2019

Как мне написать этот псевдо-код C # в xaml:

if (button.Content =="Select" && (checkBox1.IsChecked || checkBox2.IsChecked))

Я пробовал Style.Triggers с DataTrigger и MultiDataTrigger с условием, но ни один не дает мне нужную комбинацию.

Ответы [ 2 ]

0 голосов
/ 01 мая 2019

Мне нравится ответ, данный DRapp, имеет смысл просто иметь простое свойство для проверки условий, однако, вот то, что, я думаю, вы пытаетесь достичь с помощью XAML.До тех пор, пока вы устанавливаете имена этих элементов так, чтобы они соответствовали вашим именам, и использовали установщик для применения вашего условия, это должно работать.

<Style.Triggers>
<MultiDataTrigger>
    <MultiDataTrigger.Conditions>
        <Condition Binding="{Binding ElementName=button1, Path=Content}" Value="Select" />
        <Condition Binding="{Binding ElementName=checkBox1, Path=IsChecked }" Value="True" />
    </MultiDataTrigger.Conditions>
    <Setter Property="SomeProperty" Value="SomeValue" />
</MultiDataTrigger>
<MultiDataTrigger>
    <MultiDataTrigger.Conditions>
        <Condition Binding="{Binding ElementName=button1, Path=Content}" Value="Select" />
        <Condition Binding="{Binding ElementName=checkBox2, Path=IsChecked }" Value="True" />
    </MultiDataTrigger.Conditions>
    <Setter Property="SomeProperty" Value="SomeValue" />
</MultiDataTrigger>
</Style.Triggers>
0 голосов
/ 01 мая 2019

Не видя, что вы пытаетесь сделать в окне / элементе управления WPF, ответить немного сложнее.Однако в контексте привязки (MVVM, модель представления, объект управления) почему бы не создать новое свойство, которое возвращает логическое значение и проверяет как

public bool YourSpecialFlag
{ get { return button.Content == "Select" && ( checkBox1.IsChecked || checkBox2.IsChecked ); }}

, если вы можете предоставить больше формы и модели, которые выобязательны, чтобы предложить больше предложений.Кроме того, если ваши флажки имеют привязку данных к вашему элементу управления (независимо от того, что это), то вы бы обратились непосредственно к свойствам этого класса.Также реализация INotifyPropertyChanged может помочь включить / выключить поля, как вы, возможно, ищете.Я и другие можем предоставить больше на основе большего от вас.

Пожалуйста, отредактируйте ваш ОРИГИНАЛЬНЫЙ ПОСТ, предоставив больше управляющего объекта, а также образец XAML, чтобы увидеть более полную картину.

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