我使用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意味着我将继续前进。
告诉我你是否可以......!
答案 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();
}
}
问题解决了......!