How to set property only on second column of a ListView?

Posted by Lernkurve on Stack Overflow See other posts from Stack Overflow or by Lernkurve
Published on 2010-06-16T11:47:18Z Indexed on 2010/06/16 11:52 UTC
Read the original article Hit count: 371

Filed under:
|
|
|

Introduction

I have a ListView and want to format only the second column. The following XAML code does that:

<ListView x:Name="listview">
    <ListView.View>
        <GridView>
            <GridViewColumn Header="Property" DisplayMemberBinding="{Binding Path=Key}" Width="100"/>
            <!-- <GridViewColumn Header="Value" DisplayMemberBinding="{Binding Path=Value}" Width="250">-->
            <GridViewColumn Header="Value" Width="250">
                <GridViewColumn.CellTemplate>
                    <DataTemplate>
                        <TextBlock Text="{Binding Path=Value}" Foreground="CornflowerBlue" AutomationProperties.Name={Binding Path="Key"}/>
                    </DataTemplate>
                </GridViewColumn.CellTemplate>
            </GridViewColumn>
        </GridView>
    </ListView.View>
</ListView>

The one problem I have is that the AutomationProperties.Name property is not being set. I was checking it with the Coded UI Test Builder and the property is empty. The Text and the Foreground property are being set correctly.

Question

Does anyone know why AutomationProperties.Name is not being set?

Additional information

Strangly enough, the following XAML code does set the AutomationProperties.Name

<ListView x:Name="listview">
   <ListView.Resources>
       <Style TargetType="TextBlock">
           <Setter Property="AutomationProperties.Name" Value="{Binding Key}"/>
        </Style>
    </ListView.Resources>
    <ListView.View>
        <GridView>
            <GridViewColumn Header="Property" DisplayMemberBinding="{Binding Path=Key}" Width="100"/>
            <GridViewColumn Header="Value" DisplayMemberBinding="{Binding Path=Value}" Width="250"/>
        </GridView>
    </ListView.View>
</ListView>

The problem here though is that AutomationProperties.Name is being set on all the columns. But I only want it on the second one because otherwise my Coded UI Test code returns the wrong value (that of the first column, instead of that of the second column which I want).

© Stack Overflow or respective owner

Related posts about wpf

Related posts about xaml