Запретить работу кнопки wpf, если определенное значение равно false
У меня есть кнопка, которая должна показать некоторое содержимое, если name_checked
вернуть истину
• C#:
private bool name_checked = false; // <<--------#
private string username = "Smith";
private string message = null;
public MainWindow() {
if (username == "Josh"){
name_checked = true; // <<--------# if right true
message = "Welcome Josh";
}
private void button__Click(object sender, RoutedEventArgs e) {
if ( name_checked == true ) MessageBox.Show(message);
}
• wpf xaml:
<Button Name="anyname" Click="button__Click"
Width="100" Height="50" HorizontalAlignment="Right"
Margin="0,4,154,0" VerticalAlignment="Top" Grid.Row="2" Grid.RowSpan="2" />
Output─ Ошибка вывода: (InvalidOperationExction was unhandled
)
То, что я хочу: остановить действие кнопки, если логическое значение
name_checked
вернуть ложь
я не хочу, чтобы какое-либо сообщение показывалось вообще, если логическое значение возвращает false, даже ошибки
- так я использую это правильно или нет??, если нет, пожалуйста, покажи мне правильный путь.
2 ответа
Решение
Установите bool в вашей ViewModel (CodeBehind)
public bool OkToContinue { get; set; }
Затем в XAML сделайте это:
<Button IsEnabled="{Binding OkToContinue}" Click="ButtonBase_OnClick" />
Когда OkToContinue==false, кнопка будет отключена, в противном случае она будет включена.
+ Изменить message
показать по умолчанию, когда это не Джош. Такие как:
private string message = "Unknown";
Чтобы не иметь нулевого указателя. string.Empty
может работать так же.