DataTemplate包含字符串数组

时间:2014-06-05 10:28:06

标签: c# .net wpf datatemplate contentpresenter

我有一个ContentPresenter,其值为stringstring[]两种类型。如何根据值类型进行可视化视图。

我的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[]做到这一点。

1 个答案:

答案 0 :(得分:1)

您应该DataTemplate TextCombo类似:{/ 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>