속성 Workspace를 기반으로 DataTemplateSelector에 의해 내용이 결정되는 ContentControl이 있습니다. 그러나 데이터 템플릿이 변경되면 ContentControl 및 전체 Window의 초기 크기를 기반으로 일부 계산을 수행해야하므로로드 될시기를 알고 싶습니다.변경시 ContentControl의 내용이로드 될 때를 어떻게 알 수 있습니까?
<ContentControl Content="{Binding Path=Workspace}" ContentTemplateSelector="{StaticResource workspaceTemplateSelector}" />
있는 ResourceDictionary :
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:vw="clr-namespace:Capgemini.Sag.KeyEm.View">
<DataTemplate x:Key="keyboardTemplate" >
<vw:Keyboard/>
</DataTemplate>
<DataTemplate x:Key="welcomeTemplate">
<vw:Welcome/>
</DataTemplate>
<vw:WorkspaceTemplateSelector
KeyboardTemplate="{StaticResource keyboardTemplate}"
WelcomeTemplate="{StaticResource welcomeTemplate}"
x:Key="workspaceTemplateSelector"/>
</ResourceDictionary>
DataTemplateSelector : 당신이 할 수있는
using Capgemini.Sag.KeyEm.ViewModel.Interfaces;
namespace Capgemini.Sag.KeyEm.View
{
using System.Windows;
using System.Windows.Controls;
class WorkspaceTemplateSelector : DataTemplateSelector
{
public DataTemplate WelcomeTemplate { get; set; }
public DataTemplate KeyboardTemplate { get; set; }
public override DataTemplate SelectTemplate(object item, DependencyObject container)
{
if (item is IWelcomeViewModel)
return WelcomeTemplate;
if (item is IKeyboardViewModel)
return KeyboardTemplate;
return null;
}
}
}
이 문제를 해결하는 적절한 방법은 자신의 질문에 대답 한 다음 며칠 후 정답으로 선택하는 것입니다. – Will