....種類と、このような中括弧を...ドロップ私は数日前に同じ問題を抱えていました...と私は解決策を発見した...私はそれを非常に誇りに思っていないですが、それは動作します。.. するDataTemplateを作成し、すべての可能なユーザーコントロールにあり
<DataTemplate x:Key="WorkspaceItemTemplate">
<Grid>
<View:TreeView Visibility="{Binding Converter={StaticResource ViewVisibilityConverter}, ConverterParameter=TreeView}" />
<View:GridView Visibility="{Binding Converter={StaticResource ViewVisibilityConverter}, ConverterParameter=GridView}" />
<View:DataView Visibility="{Binding Converter={StaticResource ViewVisibilityConverter}, ConverterParameter=DataView}" />
</Grid>
</DataTemplate>
を追加し、茶コンバータを作成します
<DataTemplate DataType="loc:MyType">
<TextBlock Text="My template" />
</DataTemplate>
Xを指定することなく、リソースディクショナリにそれを置くことができます。これは、最終的にはあなたが今、この種のものを書くことができるのSilverlight 5に固定されたタイプ
public class ViewVisibilityConverter : IValueConverter
{
#region IValueConverter Members
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
if (((ViewModelBase)value).DisplayName.Equals((string)parameter))
return Visibility.Visible;
return Visibility.Collapsed;
}
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
throw new NotImplementedException();
}
#endregion
}
私はMMVMを使用しているので、オブジェクトを動的に読み込み、タイプに応じてUIを適切な表示にします。あなたの解決策はまだ私の問題を解決しますか? –
あなたのWPF xamlを取り出し、{x:Type ....}を置き換え、中括弧を削除し、x:Typeを削除してください。 Silverlightは少し違うので、テンプレートセレクタなどを作る必要があるかもしれません。 –