2013-06-12 2 views
1

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

У меня это до сих пор. WPF

<TextBox Visibility="{Binding IsVisibleBoolean, Converter={StaticResource boolToVis}}" 
     Height="23" HorizontalAlignment="Left" Margin="340,439,0,0" Name="textBox2" VerticalAlignment="Top" Width="180" /> 

<Button Command="{Binding IsVisibleBoolean}" Height="32" Margin="526,401,142,0" Name="button2" VerticalAlignment="Top" BorderThickness="0" Style="{StaticResource {x:Static ToolBar.ButtonStyleKey}}"/> 

C# ViewModel

private bool _isVisibleBoolean = false; 
    public bool IsVisibleBoolean 
    { 
     get { return _isVisibleBoolean; } 
     set 
     { 
      if (_isVisibleBoolean == value) 
       return; 
      _isVisibleBoolean = value; 
      RaisePropertyChanged("IsVisibleBoolean"); 
     } 
    } 

и мой booleanconvert класс

public class BooleanToVisibilityConverter : IValueConverter 
{ 
    public object Convert(object value, Type targetType, object parameter, 
          CultureInfo culture) 
    { 
     if (value is Boolean) 
     { 
      return ((bool)value) ? Visibility.Visible : Visibility.Collapsed; 
     } 

     return value; 
    } 

    public object ConvertBack(object value, Type targetType, object parameter, 
           CultureInfo culture) 
    { 
     throw new NotImplementedException(); 
    } 
} 

Любая помощь будет большим.

ответ

3

Недвижимость Command на Button должно быть привязано к объекту ICommand. Вы привязываете его к логическому свойству. Если вы хотите сохранить эту команду на основе, создайте класс, который реализует ICommand и в методе Execute, установите IsVisibleBoolean вашей модели просмотра.

Или более простой подход: используйте ToggleButton вместо Button.

Смежные вопросы