文本框可见性/崩溃在silverlight mvvm中

时间:2012-11-06 07:26:48

标签: silverlight mvvm

我使用mvvm模式的Silverlight5我有一个疑问。   在xaml中,我使用了一个文本块,并在其中绑定了一些id。   如果textblock内容值为1或2表示   还有另一个文本框是可见的,否则就会崩溃..如何实现...

我的代码:

 <TextBlock Name="textBlock1" Text="{Binding id}" Loaded="textBlock1_Loaded" Visibility="Collapsed" />
<TextBox Text="{Binding name,Mode=TwoWay}"  x:Name="t1" Visibility="{Binding IsVisible,Converter={StaticResource visibilityconverter}}" />

在视图模型中,我创建了id的属性并引发了事件并将值绑定到textblock。

将值转换为可见我在一个名为“转换器”的单独文件夹中有一个visibilityconverter类

public class visibilityconverter:IValueConverter
    {

       public object Convert(object value, Type targetType,
                                       object parameter, CultureInfo culture)
        {
            if (id==1 && id==2)
            {
                return Visibility.Visible;
            }
            return Visibility.Collapsed;
        }

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

    }

在上面的visibleconverter类中我如何从viewmodel获取id值并检查它..  如果我从viewmodel获得值到visibilityconverter意味着我将继续前进。

告诉我你是否可以......!

1 个答案:

答案 0 :(得分:3)

您好我找到了解决方案..

 In xaml give the following:

<TextBox Text="{Binding name,Mode=TwoWay}"  x:Name="t1" Visibility="{Binding id,Converter={StaticResource visibilityconverter}}" />

在visibilityConverter类中:

public class visibilityconverter:IValueConverter {

public object Convert(object value, Type targetType,
                               object parameter, CultureInfo culture)
{
    string v = value.ToString();
    if (v =="1" ||  v=="2")
    {
        return Visibility.Visible;
    }
    return Visibility.Collapsed;
}

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

}

问题解决了......!