I am writing an application which will allow users to select from a series of maps on a touchscreen display, and then the maps will also display on a larger wall-mounted screen. Users will be able to pan/zoom/rotate around the maps and I would like the wall-mounted screen to show those changes in sync with the touchscreen.
What is a good way to approach managing the two displays?
Currently, I have the application set up in MVVM format and am using Caliburn.Micro.
Each map is in its own UserControl and they are activated in a ContentControl on my ShellView using Conductor and ActivateItem in the ShellViewModel. I would like to have the Active Item also be displayed in a separate Window (on the wall-mounted screen).
Here is the code so far:
ShellView.xaml:
<Grid>
<!--The Content control shows which MapView is currently active-->
<ContentControl x:Name="ActiveItem"/>
<StackPanel>
<TextBlock Text="Select a map.">
<ComboBox>
<Button x:Name="LoadMap1">Map1</Button>
<Button x:Name="LoadMap2">Map2</Button>
<Button x:Name="LoadMap3">Map3</Button>
</ComboBox>
</StackPanel>
</Grid>
ShellViewModel.cs
public class ShellViewModel : Conductor<object>
{
public ShellViewModel()
{
}
public void LoadMap1()
{
ActivateItem(new MapOneViewModel());
}
public void LoadMap2()
{
ActivateItem(new MapTwoViewModel());
}
public void LoadMap3()
{
ActivateItem(new MapThreeViewModel());
}
}
I do not know if this is the best way to set this up, but it works well for loading the maps on the ShellView. I really just need to show the same thing in another window for the wall-mounted Display
Any help appreciated, Thanks!
What I have tried:
I have tried using a VisualBrush but don't know if I can bind it across two Windows.