У меня есть простой XAML, который выглядит, как показано ниже:стиль Модифицирование и MultiBinding условно
<Window.Resources>
<Converters:ButtonVisibilityConverter x:Key="m_ButtonConverter"/>
</Window.Resources>
<Grid>
<ComboBox Height="23" HorizontalAlignment="Left" Margin="71,18,0,0" Name="comboBox1" VerticalAlignment="Top" Width="229" SelectionChanged="comboBox1_SelectionChanged">
</ComboBox>
<TextBox Height="23" HorizontalAlignment="Left" Margin="71,76,0,0" Name="textBox1" VerticalAlignment="Top" Width="229" Style="{StaticResource requiredFieldValidationStyle}"/>
<TextBox Height="23" HorizontalAlignment="Left" Margin="71,125,0,0" Name="textBox2" VerticalAlignment="Top" Width="229" Style="{StaticResource requiredFieldValidationStyle}"/>
<Button Content="Submit" Height="23" HorizontalAlignment="Left" Margin="225,175,0,0" Name="button1" VerticalAlignment="Top" Width="75">
<Button.IsEnabled>
<MultiBinding Converter="{StaticResource m_ButtonConverter}">
<Binding ElementName="textBox1" Path="Text" />
<Binding ElementName="textBox2" Path="Text" />
<Binding ElementName="comboBox1" Path="Text" />
</MultiBinding>
</Button.IsEnabled>
</Button>
<Label Content="Box 1" Height="28" HorizontalAlignment="Left" Margin="12,74,0,0" Name="label1" VerticalAlignment="Top" />
<Label Content="Box 2" Height="28" HorizontalAlignment="Left" Margin="12,123,0,0" Name="label2" VerticalAlignment="Top" />
</Grid>
TextBox1 и TextBox2 являются как обязательные поля теперь, и что кнопка не позволяет, если обе коробки не имеют текста.
Я хочу сделать следующее: Когда в выпадающем списке выбрано четное число, я хочу сделать запись в текстовом поле2 необязательной. Это означает, что я удаляю его из многосвязного (из IsEnabled кнопки), а также удаляет стиль. Однако, когда выбрано нечетное число, я хочу их вернуть.
Может кто-нибудь помочь?
Хотя это работает, насколько сложнее вы сделали это для создания автоматических модульных тестов. Кроме того, это бизнес-логика (необязательные данные в определенных ситуациях), которые вы встроили в свой интерфейс. Возможно, это небольшое приложение и не требует сложности MVVM, но я хочу, чтобы другие могли найти это решение, чтобы рассмотреть недостатки этого решения. –
Согласен. Вы предлагаете лучшее решение, не преобразовывая его в MVVM? – naspras