1

我有 mvvm 模式的 Silverlight5 我有一个疑问。在 xaml 中,我使用了一个文本块,并在其中绑定了一些 id。如果文本块内容值为 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 创建了属性并引发了事件并将值绑定到文本块。

要将值转换为可见,我在一个名为“Converters”的单独文件夹中有一个 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 意味着我将继续进行。

告诉我你是否可以..!

4

1 回答 1

3

嗨,我找到了解决方案..

 In xaml give the following:

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

在 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();
}

}

问题解决了... !

于 2012-11-06T08:31:38.957 回答