Доброго времени суток.
Я пытаюсь написать приложение , используя паттерн mvvm при участии фреймворка Caliburn.Micro .Моя задача: в MainView.xaml кроме MainViewModel ещё одну вьюмодель привязать к MenuItem
,где Header="Файл"
. Он описан в отдельном классеFileMenuViewModel
. Привязку MenuItem к вьюмодели в xaml я делаю так:
<MenuItem cal:View.Model="{Binding FileMenuViewModel, Mode=TwoWay}" Header="Файл" Height="22" Margin="4,0,0,0">
, но при кликании любых кнопок менюшки из MenuItem "Файл" в форме вылетает Exception , например , такой:
"No target found for method OpenFileWindow."
Как я понимаю Caliburn Micro не может найти из этого свойства cal:View.Model этот дурацкий Target , в которой и указывается ViewModel или любой другой элемент , который привязывается к View.
Вот мой проект:
https://yadi.sk/d/Z9paO0yfuqwWc
Столько гуглил и все равно не нахожу: почему CaliBurn.Micro не может найти Target и как это исправить ?
Прошу помогите(и не нападайте , плиз)))) ) , только пока ещё не предлагайте мне варианты , при которых мне придётся AppBootStrapper унаследовать от класса Bootstrapper , что придётся брать ещё с либы Silverlight или Prism , с чем я пока абсолютно не хочу иметь дело (итак тяжело мне в учёбе).
Оказывается Caliburn.Micro действительно устанавливает общую для всех компонентов формы(юзерконтрола) определённого окна класс вьюмодели , которую указывают и вызывают через конструктор класса AppBootStrapper. Чтобы поменять вьюмодель у юзерконтрола , нужно менять свойство контекста данных по отношению к тому тегу контрола(компонента формы) , где он применяется для вашей новой вьюмодели. Таким образом , чтобы задать новую модель , класс которой определён , нужно написать следующим образом:
<Grid.DataContext>
<VModels:TextInOutViewModel />
</Grid.DataContext>
, где VModels - псевдоним , указывающий на пространство имён , где вы храните обычно классы , каждый из которых представляет вьюмодель
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Делаю в Unity магнит - через PhysicsOverlap находим, ищем rigidbody и притягиваем к себеКод
В форме у меня есть следующий код
Делаю что-то вроде анкеты, в которой необходимо заполнить все поляКак сделать, чтобы по нажатию кнопки, если не заполнено какое либо поле,...