我有一个ContentPresenter
,其值为string
和string[]
两种类型。如何根据值类型进行可视化视图。
我的XAML代码看起来像
<ContentPresenter Content="{Binding Path=Value}">
<ContentPresenter.Resources>
<DataTemplate DataType="{x:Type System:String}">
<TextBox Text="{Binding Path=Content, RelativeSource={RelativeSource AncestorType={x:Type ContentPresenter}}}" />
</DataTemplate>
<DataTemplate DataType="{x:Type System:String[]}">
<ComboBox SelectedItem="???" ItemsSource="{???}">
</ComboBox>
</DataTemplate>
</ContentPresenter.Resources>
</ContentPresenter>
另外,需要一些方法来接收所选项目。
对于string
值,代码看起来是:
public class Text
{
string Value { set; get; }
}
并且,对于string[]
public class Combo
{
string Value { set; get; }
string[] Items { set; get; }
}
此代码仅适用于string
类型。我不知道如何为string[]
做到这一点。
答案 0 :(得分:1)
您应该DataTemplate
Text
和Combo
类似:{/ p>
<DataTemplate DataType="{x:Type local:Text}">
<TextBox Text="{Binding Path=Value}" />
</DataTemplate>
<DataTemplate DataType="{x:Type local:Combo}">
<ComboBox SelectedItem="{Binding Value}" ItemsSource="{Binding Items}">
</ComboBox>
</DataTemplate>