У меня есть 3 ViewModel: базовая, и 2 дочерних. Хочу при помощи ViewModelLocator иметь возможность управлять свойством, которое находится в базовой ВМ, из дочерних, так чтобы они работали с одним и тем же экземпляром, а не каждый со своим, и соответственно обе реагировали на изменения. Конкретно в базовой ВМ есть bool свойство, которое должно меняться из других ВМ.
Пользовался этой статьей(https://msdn.microsoft.com/en-us/library/hh821028.aspx). Создал в App.xaml экземпляр ViewModelLocator, сам класс должен отдавать экземпляр нужной ВМ, когда я делаю на него Binding на Xaml.
UPD
Locator
public class ViewModelLocator
{
private BaseViewModel baseVm;
public BaseViewModel BaseVm
{
get { return new BaseViewModel(); }
}
}
App.xaml
<viewModels:ViewModelLocator x:Key="ViewModelLocator"/>
MainPage.xaml элементы которые забиндены на нужные мне св-ва из BaseViewModel
<Image Visibility="{Binding IsFilterImgVisible, Source={StaticResource ViewModelLocator} ,Converter={StaticResource BooleanToVisibilityConverter}}"/>
<controls:ImageManipulatorControl
Visibility="{Binding IsUserControlVisibile, Converter={StaticResource BooleanToVisibilityConverter}}">
</controls:ImageManipulatorControl>
C контролом вообще отдельная беда, при такой записи, что-то прозрачное накладывается на часть экрана(подозреваю что это контрол, хотя bool изначально стоит false)
В базовой VM лежат bool свойства, которые меняются из дочерних VM применяя слово this., но результата никакого
App.xaml, я могу сразу на них сослаться или нужно писатьBaseViewModel = new BaseViewModel()– SmiLe Sep 15 '16 at 09:24BaseViewModel– SmiLe Sep 15 '16 at 10:45App.xaml.csне могу прописатьDatacontextон не хочет использовать это пронстранство имен. Писал даже полностью – SmiLe Sep 15 '16 at 12:07Xamlсначала на VM ругался, я удалил, теперь на конверторы, а они то тут вообще ни при чем Это в конструктореApp`MainViewModel vm = new MainViewModel(); new MainPage() { DataContext = vm – SmiLe Sep 15 '16 at 18:57new MainPage()судя по всему неправильно, вы ж должны страницу не только создать, но и показать? – VladD Sep 15 '16 at 19:00app.xaml) http://joxi.ru/J2b4aWEHWxEnr6 Каждый раз как они встречаются в коде вMainPage.xamlв качествеStaticResourceВсе эти ресурсы нужно перенести вApp.cs? – SmiLe Sep 15 '16 at 19:57mainPage.Frame.Navigate(typeof(MainPage));mainPage переменная типаMainPage. Но все равн та же ошибка – SmiLe Sep 15 '16 at 20:15