C#にてDataTemplateのデータを取得したい
◆VIEWダイアログ
UserControl.Resources>
<ResourceDictionary>
<DataTemplate x:Key="TemplateA">
<local:TemplateAView Grid.Row="4" Grid.Column="1"/>
</DataTemplate>
<DataTemplate x:Key="TemplateB">
<local:TemplateBView Grid.Row="4" Grid.Column="1"/>
</DataTemplate>
<local:TemplateSelector
x:Key="MyTemplateSelector"
TemplateA="{StaticResource TemplateA}"
TemplateB="{StaticResource TemplateB}"/>
</ResourceDictionary>
</UserControl.Resources>
~~
ComboBoxやTextBoxなどの入力部品
<ContentControl x:Name="templateSelector"
Content="{Binding TemplateIndex}"
ContentTemplateSelector="{StaticResource MyTemplateSelector}"/>
~~
<Button Content="OK"
Command="{Binding OKComamnd}"/>★①
◆VIEW TemplateA
ComboBoxやTextBoxなどの入力部品を配置
◆VIEW TemplateB
ComboBoxやTextBoxなどの入力部品を配置
◆VIEWMODEL TemplateA
VIEWにバインドするプロパティなどを宣言
◆VIEWMODEL TemplateB
VIEWにバインドするプロパティなどを宣言
◆VIEWMODEL
public DelegateCommand OKComamnd { get; set; }
コンストラクタ内でOKボタン押下時処理を追加
this.OKComamnd = new DelegateCommand(() =>
{
try
{
入力値を保存してダイアログを閉じる★②
}
catch (Exception ex)
{
Excep = ex;
}
});
◆テンプレートのセレクタークラス
public DataTemplate TemplateA { get; set; }
public DataTemplate TemplateB { get; set; }
public override DataTemplate SelectTemplate(object item, DependencyObject container)
{
int value = (int)item;
if (value == 0)
return TemplateA;
else if (value == 1)
return TemplateB;
return base.SelectTemplate(item, container);
}
コンボボックスなどの変更により、画面でTemplateA、TemplateBを切り替わるようになったのですが、
★①のOKボタンを押下した場合に、TemplateA、TemplateBの選択した値を保存したいと考えているのですが、
★②などで選択したTemplateAまたは、TemplateBの値を取得するにはどのような方法があるのでしょうか?