우선 코드를 먼저 보여 드리면
// App.Resources.xaml
<DataTemplate DataType="{x:Type plotvm:PlottingViewModel}">
<plotv:PlottingView />
</DataTemplate>
// PlottingViewModel.cs
public class PlottingViewModel : ReactiveObject, IContext
{
// ...
}
// PlottingView.xaml
<UserControl
x:Class="Uttu.Plotting.Views.PlottingView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:b="http://schemas.microsoft.com/xaml/behaviors"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:vm="clr-namespace:Uttu.Plotting.ViewModels"
d:DataContext="{d:DesignInstance vm:PlottingViewModel}"
mc:Ignorable="d">
// ....
</UserControl>
// DialogWindow.xaml
<Window
x:Class="Uttu.CAD.UI.DialogWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
WindowStartupLocation="CenterOwner"
mc:Ignorable="d">
</Window>
// DialogService.cs
public bool? ShowDialog(IContext content)
{
var dialog = new DialogWindow();
dialog.Content = content;
// ...
return dialoShowDialog();
}
이렇게 쓰고 있습니다.
화면에 정상적으로 나오긴 하는데
PlottingView가 두번 생성 됩니다.
그리고 같은 방식으로 다른 dialog 들도 쓰고 있는데
위 창만 이상하게 binding 된 값이 안들어 옵니다.
제가 뭔가 잘못 쓰고 있는 걸까요?