Мне очень нужна идея;
Вот что меня беспокоит:
У меня есть один вид, названный «DropDownView»
Вот как я это использую:
<control:DropDownView DataContext="{Binding StronglyTypedViewModel}"/>
Это означает, что на родительской странице ViewModel у меня есть свойство типа: StronglyTypedViewModel<T>
Теперь, когда представление представлено, все работает отлично, как я ожидаю;
Однако, эти несколько строк из DropDownView имеют тревожное поведение:
<ctrl:CustomDropDown x:Name="cc"
ItemsSource="{Binding ControlData}"
ItemTemplate="{Binding ControlItemTemplate}"
SelectedItem="{Binding ControlSelectedItem, ConverterParameter={Binding ControlData}, Converter={Binding}, Mode=TwoWay}"
...
С установленным свойством SelectedItem Convertor я получаю исключение времени выполнения: Ошибка в привязке ...
Без этого я могу видеть выпадающие значения, заполненные как и ожидалось (пользовательский ItemTemplate привязан), но представлен как object.ToString()
!
Я строго ввел ViewModel, то есть должен иметь строго типизированный конвертер, который объявлен в ViewModel, как:
public class SMOEntityProcessingViewModel<T> : CustomViewModelBase, IValueConverter
...
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
Но, так как я не знаю тип ViewModel во время компиляции, я не могу добавить StaticResource для ViewModel, который мог бы использоваться для Преобразователя ...
Любая помощь приветствуется ...
Спасибо
@ devdigital
ObservableCollection<T> ControlData;
object ControlSelectedItem;
ControlItemTemplate = Helpers.XAML.Methods.GenerateDataTemplate("{Binding Path=" + _propertyToShow + "}");
---------generating this in VM constructor, _propertyToShow depends on the T
1031 * т.е. *
"<DataTemplate ");
"xmlns='http://schemas.microsoft.com/winfx/"
"2006/xaml/presentation' "
"xmlns:x='http://schemas.microsoft.com/winfx/2006/xaml' >"
"<TextBlock Text='" + _propertyToShow + "' />"
"</DataTemplate>"
Я пока не знаю, как создать конвертер, так что он все еще в процессе ...
Пожалуйста, дайте мне знать, если вам нужна дополнительная информация, или, возможно, я мог бы отправить небольшую демонстрацию по почте ...
Большое спасибо за интерес ...