WPF按钮automationproperties.name绑定到2个值

时间:2018-04-05 00:03:59

标签: asp.net wpf

如何将wpf中的按钮AutomationProperties.name绑定到2个值 像那样 AutomationProperties.Name =“text1 + {Binding automationPropertiesNameInspectMode}”

AutomationProperties.Name =“text2 + {Binding automationPropertiesNameTestMode}”

<Grid x:Name="ictMainMenu" KeyboardNavigation.TabIndex="1"
                         DockPanel.Dock="Top" KeyboardNavigation.DirectionalNavigation="Contained"
                         WindowChrome.IsHitTestVisibleInChrome="True" 
                         Margin="0,90,0,0"
                         VerticalAlignment="Top"
                         KeyboardNavigation.TabNavigation="Once">
                    <Grid.RowDefinitions>
                        <RowDefinition/>
                        <RowDefinition/>
                    </Grid.RowDefinitions>
                    <Button x:Name="btnInspect" 
                            Height="40" Width="40"                                                                
                            ToolTip="Inspect" Style="{StaticResource btnLeftNav}"

                            AutomationProperties.Name="text1 + {Binding automationPropertiesNameInspectMode}" 
                            Click="btnInspect_Click">
                        <Grid Width="40" Height="40">
                            <Canvas x:Name="cvsInspect" HorizontalAlignment="Left" Width="7" Height="Auto" Background="#FFFFFF" Visibility="Collapsed"/>
                            <fabric:FabricIconControl GlyphName="SearchAndApps" FontSize="24" VerticalAlignment="Center" HorizontalAlignment="Center" Foreground="#eaeaea"/>
                        </Grid>
                    </Button>
                    <Button x:Name="btnTest" 
                            Height="40" Width="40" 
                            Grid.Row="1"                         
                            ToolTip="Test"
                            AutomationProperties.Name="text2 + {Binding automationPropertiesNameTestMode}" 
                            Click="btnTest_Click"
                            Style="{StaticResource btnLeftNav}">
                        <Grid Width="40" Height="40">
                            <Canvas x:Name="cvsTest" HorizontalAlignment="Left" Width="7" Height="Auto" Background="#ffffff"/>
                            <fabric:FabricIconControl GlyphName="TestBeakerSolid" FontSize="24" HorizontalAlignment="Center" Foreground="#eaeaea" Margin="12,0,12,12" Height="16" VerticalAlignment="Bottom"/>
                        </Grid>
                    </Button>
                </Grid>

2 个答案:

答案 0 :(得分:0)

您可以使用绑定字符串格式。

<Button Content="Open" Height="50" Click="Button_Click"
   AutomationProperties.Name="{Binding ButtonAccessibleName ,StringFormat=test{0}}"/>

bindingbase.stringformat

或者,如果您想要更多控制,可以使用这样的转换器:

AutomationProperties.Name="{Binding CurrentPlant,    
        Converter={StaticResource     
            CurrentPlantToAutomationPropertiesNameConverter}}">

链接:part-2-set-the-automationproperties-name

答案 1 :(得分:0)

我刚刚在更新窗口UI的方法中手动更新了它,因此每次更新窗口时都会调用它