我有一个文本块,扩展器和一个文本框......
这些都在listview列的标题内。
TextBlock用于列表视图列名,单击扩展器...将显示文本框...用户可以根据该列搜索列表视图。默认情况下,文本框已折叠。
我的要求是,当用户点击扩展器时,应该向用户显示文本框...并且焦点应该放在文本框上。
使用下面的XAML,我可以在点击扩展器时显示文本框,并在我的文本框上设置焦点(光标)。 但是光标没有闪烁。我的意思是我必须再次点击文本框输入内容
请帮助我找出问题所在......任何帮助都将不胜感激。
<StackPanel>
<DockPanel>
<TextBlock DockPanel.Dock="Left" Text="ID"/>
<Expander x:Name="IdExp" DockPanel.Dock="Right" IsExpanded="False" ExpandDirection="Down" >
</Expander>
</DockPanel>
<TextBox x:Name="PropertyCCCIDSearch"
Text="{Binding RelativeSource={RelativeSource Mode=FindAncestor,AncestorType={x:Type UserControl}},
Path=DataContext.SearchCCGId.Value,UpdateSourceTrigger=PropertyChanged}"
Visibility="{Binding ElementName=IdExp, Path=IsExpanded, Converter={x:Static local:Converters.BoolToVisibility}}" >
<TextBox.Style>
<Style>
<Style.Triggers> <DataTrigger Binding="{Binding ElementName=IdExp, Path=IsExpanded}" Value="True">
<Setter Property="FocusManager.FocusedElement" Value="{Binding ElementName=PropertyCCCIDSearch}"/> </DataTrigger>
</Style.Triggers>
</Style>
</TextBox.Style>
</TextBox>
</StackPanel>
答案 0 :(得分:0)
你的代码工作正常这是我试过的
<Window.Resources>
<BooleanToVisibilityConverter x:Uid="BooleanToVisibilityConverter_1" x:Key="b2v" />
</Window.Resources>
<Grid>
<StackPanel>
<DockPanel>
<TextBlock DockPanel.Dock="Left" Text="ID"/>
<Expander x:Name="IdExp" DockPanel.Dock="Right" IsExpanded="False" ExpandDirection="Down" >
</Expander>
</DockPanel>
<TextBox x:Name="PropertyCCCIDSearch" Text="{Binding RelativeSource={RelativeSource Mode=FindAncestor,AncestorType={x:Type UserControl}},
Path=DataContext.SearchCCGId.Value,UpdateSourceTrigger=PropertyChanged}"
Visibility="{Binding ElementName=IdExp, Path=IsExpanded,
Converter={StaticResource b2v}}" >
<TextBox.Style>
<Style>
<Style.Triggers>
<DataTrigger Binding="{Binding ElementName=IdExp, Path=IsExpanded}" Value="True">
<Setter Property="FocusManager.FocusedElement" Value="{Binding ElementName=PropertyCCCIDSearch}"/>
</DataTrigger>
</Style.Triggers>
</Style>
</TextBox.Style>
</TextBox>
</StackPanel>
</Grid>
</Window>