1
我有一個ListBox從ViewModels的集合中填充,它使用了就地編輯,我做了一些樣式,我可以應用於DataTemplate的部分它們根據需要可見/摺疊。這些看起來是這樣的:自動聚焦一個ListBoxItem的選擇部分
<Style
x:Key="UnselectedVisibleStyle"
TargetType="{x:Type FrameworkElement}">
<Setter
Property="Visibility"
Value="{Binding Path=IsSelected, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type ListBoxItem}}, Converter={StaticResource boolToVis}, ConverterParameter=False}" />
</Style>
<Style
x:Key="SelectedVisibleStyle"
TargetType="{x:Type FrameworkElement}">
<Setter
Property="Visibility"
Value="{Binding Path=IsSelected, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type ListBoxItem}}, Converter={StaticResource boolToVis}, ConverterParameter=True}" />
</Style>
有了擁有它的ItemTemplate通過像給我的列表框:
<ListBox.ItemTemplate>
<DataTemplate>
<Grid>
<TextBlock
Text="{Binding Name}"
Style="{StaticResource UnselectedVisibleStyle}" />
<TextBox
x:Name="textBox"
Text="{Binding Name}"
Style="{StaticResource SelectedVisibleStyle}" />
</Grid>
</DataTemplate>
</ListBox.ItemTemplate>
這工作得很好,但我想最好是讓文本框自動選擇當用戶點擊該項目,理想情況下,我可以在整個項目中使用一種很好的通用方式,並且不會在代碼隱藏中弄亂太多。
謝謝, DM。