У меня есть проблема, которую я не мог решить до сих пор:
Я занимаюсь разработкой приложения на C # / WPF и использую Caliburn.micro в качестве фреймворка. У меня есть несколько панелей меню (в качестве пользовательских элементов управления), которые я хочу использовать во всем приложении (например, меню фильтрации данных для сетки) и отображать их в <ContentControl />
. В зависимости от состояния приложения может отображаться другая панель меню.
Теперь я могу управлять всплывающими событиями из View меню в ViewModel родителя. Но я застрял со свойствами:
Например, в меню фильтрации нужно вводить текст, когда фильтр применяется мгновенно. Когда у меня было меню в представлении родителя, это было легко: я просто сделал фильтрацию в методе установки свойства.
Есть ли возможность создать своего рода "всплывающее сообщение", похожее на всплывающее сообщение в c.m (оно должно быть двухсторонним!)? Или любой другой (лучший) MVVM-совместимый подход?
Заранее спасибо!
Jan
Минимальный пример:
ParentView.xaml
<UserControl x:Class="App.ParentView">
<Grid>
<ContentControl x:Name="Toolbar" />
</Grid>
</UserControl>
ParentViewModel.cs
class ParentViewModel : Screen
{
public ParentViewModel()
{
Toolbar = new MenuViewModel();
}
private Screen _toolbar;
public Screen Toolbar
{
// get, set ...
}
public void LoadDifferentMenu()
{
this.Toolbar = new DifferentMenuViewModel();
}
}
MenuView.xaml
<UserControl x:Class="App.MenuView">
<Grid>
<TextBox x:Name="MyText" />
</Grid>
</UserControl>
MenuViewModel.cs
class MenuViewModel : Screen
{
public MenuViewModel()
{
}
private string _myText;
public string MyText
{
// get, set...
}
}