从Treeview获取一个元素

时间:2010-07-23 09:28:04

标签: silverlight

我在TreeView的HierarchicalDataTemplate中有一个Rectangle。在Treeview的selectedItemChange事件中,我必须更改作为所选节点下的子项的矩形的颜色。在绑定期间,我无法为矩形指定名称。它显示错误'期望名称属性的文本表示'。如果我可以在绑定时为矩形命名,我认为可以改变它的颜色。有什么方法可以解决这种情况。

<controls:TreeView x:Name="tree" ItemsSource="{Binding Path=Source, Source={StaticResource SourceClass}}" Margin="0,0,8,0" Background="#FFF8D1D1" Grid.RowSpan="4"  SelectedItemChanged="tree_SelectedItemChanged" >
        <controls:TreeView.ItemTemplate>
            <data:HierarchicalDataTemplate ItemsSource="{Binding Children}">                    
                <StackPanel>
                    <Rectangle Width="20" Height="20" Stroke="Black" Fill="Red" ToolTipService.ToolTip="{Binding Name}"  DataContext="{Binding Name}" MouseLeftButtonDown="Rectangle_MouseLeftButtonDown">
                    </Rectangle>
                    <TextBlock Text="{Binding Name}" ></TextBlock>

                </StackPanel>

            </data:HierarchicalDataTemplate>
        </controls:TreeView.ItemTemplate>
    </controls:TreeView>

1 个答案:

答案 0 :(得分:0)

您是否根据项目的某个属性更改颜色?如果是这样,您可以将颜色绑定到该属性,并在必要时编写值转换器以确定颜色。