私はmvvmパターンのSilverlight5に疑問があります。xamlでは、1つのテキストブロックを使用し、その中にいくつかの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のプロパティを作成し、イベントを発生させ、値をtextblockにバインドしました。
値をvisibleに変換するには、「Converters」という名前の1つの別のフォルダーに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に値を取得した場合は、さらに先に進むことを意味します。
できれば教えてください..!