我在银光中拍了一格.最初textbox2是不可见的.当我点击textbox1时,我们必须看到textbox2.我试试如下:
<TextBox x:Name="textbox1" SelectionChanged="txt1_SelectionChanged"/> <TextBox x:Name="textbox2 " Visibility="Collapsed"/> private void txt1_SelectionChanged(object sender,RoutedEventArgs e) { textbox2 .Visibility = Visibility.Visible; }
它工作正常.
但我想使用MVVM模式.所以我不想使用eventHandler.
那么如何使用MVVM模式呢?
解决方法
编辑:对不起,我以为你的意思是当另一个有焦点时文本框可见,我改变了我的初始答案.
我目前无法尝试,但您使用valueconverter将文本框的Visibility属性绑定到另一个的SelectionLength属性:
<UserControl.Resources> <local:IntToVisibilityConverter x:Key="IntToVisibilityConverter" /> </UserControl.Resources> <Textbox x:name="textbox2" Visibility={Binding SelectionLength,ElementName="textbox1" Converter={StaticResource IntToVisibilityConverter}} />
像这样实现值转换器:
public class IntToVisibilityConverter : IValueConverter { public Object Convert(Object value,Type targetType,Object parameter,CultureInfo culture) { return (int)value > 0 ? Visibility.Visible : Visibility.Hidden; } public Object ConvertBack(Object value,CultureInfo culture) { throw new InvalidOperationException("Converter cannot convert back."); } }