У меня была та же проблема, пару дней назад ... и я нашел решение ... Я не очень горжусь этим, но это работает .. создать DataTemplate и добавить туда все возможные UserControls
<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>
и создать конвертер, что тя видимость НГРЭС на основе типа
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, поэтому я динамически загружаю объекты и хочу, чтобы пользовательский интерфейс отображал правильный вид в зависимости от типа. Решение youor все еще решает мою проблему? – 2009-08-21 11:44:51
возьмите свой WPF xaml и замените {x: Тип ....}, удалите фигурные скобки, удалите x: Type, и вам должно быть хорошо идти. silverlight немного отличается, поэтому вам может понадобиться сделать селектор шаблонов или такой. –