具有不同数据绑定的Silverlight / WPF DataTemlate

时间:2013-01-08 12:32:23

标签: silverlight binding datatemplate

通常情况是:

<DataTemplate>
   <TextBox Text ="{Binding SomeProperty}" />
</DataTemplate>

这意味着对于列表中的每个项目,TextBox绑定到绑定项的相应属性。

是否可以为每个项目创建一个具有不同数据绑定的DataTemplate

例如:我有一个产品实体清单。对于第一个项目,需要绑定名称,对于第二个项目,它应该是地址,第三个是价格,等等。

模板的TextBox仍然适用于Binding更改的所有项目:

<DataTemplate>
   <TextBox Text ="{Binding <RunTimePropertyName>}" />
</DataTemplate>

注意:&lt;“”&gt; - Binding

中的更改

1 个答案:

答案 0 :(得分:0)

我会在你绑定的对象周围创建一个包装类。类似的东西:

public class ItemWrapper : OriginalItem
{
    public int RowNum { get; set; }
    public string TextForRow
    {
        get
        {
            if(RowNum == 0)
                return this.Name
            else if(RowNumb == 1)
                return this.Address
        }
}

然后绑定到TextForRow属性。

你必须以某种方式填写RowNum,但我假设你的OriginalItem

中的某个地方