我有一个绑定的树视图,它显示了treeviewitem的一个属性(即displayname)(它们是对象的自定义视图模型)。
以下是相关的xaml:
<local:ExtendedTreeView.ItemTemplate>
<HierarchicalDataTemplate ItemsSource="{Binding SubOrganLocations}">
<TextBlock Text="{Binding OrganDisplayName}" >
</TextBlock>
</HierarchicalDataTemplate>
</local:ExtendedTreeView.ItemTemplate>
我想要的是能够在括号中显示显示名称旁边的另一个属性。
所以代替看起来像这样的树视图:
Root
-sub node1
--subsub node1
-sub node2
我希望它看起来像这样:
Root (Type1)
-sub node1 (Type2)
--subsub node1 (Type 3)
-sub node2 (Type 1)
我怎样才能做到这一点?使用多重绑定?
答案 0 :(得分:7)
试试这个:
<TextBlock>
<TextBlock.Text>
<MultiBinding StringFormat="{}{0} ({1})">
<Binding Path="{YourBindingHere}" />
<Binding Path="{YourBindingHere}" />
</MultiBinding>
</TextBlock.Text>
</TextBlock>
答案 1 :(得分:1)
您可以使用多个文本块
<local:ExtendedTreeView.ItemTemplate>
<HierarchicalDataTemplate ItemsSource="{Binding SubOrganLocations}">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition />
<ColumnDefinition />
</Grid.ColumnDefinitions>
<TextBlock Text="{Binding OrganDisplayName}" />
<TextBlock Grid.Column="1" Text="{Binding TypeName}" />
</Grid>
</HierarchicalDataTemplate>
</local:ExtendedTreeView.ItemTemplate>
或者您可以向视图模型添加一个属性,该属性在内部计算全名,然后绑定到该名称。
答案 2 :(得分:0)
或使用<Run/>
:
<TextBlock>
<Run Text="{Binding OrganDisplayName}"/>
<Run Text=" ("/>
<Run Text="{Binding TypeName}"/>
<Run Text=")"/>
</TextBlock>