gpt4 book ai didi

wpf - WPF 中的焦点数据模板

转载 作者:行者123 更新时间:2023-12-03 07:49:47 24 4
gpt4 key购买 nike

我正在寻找的行为是在 ListView 中选择一个项目会导致聚焦第一个可聚焦的视觉子项。

问题:ItemsControler 中的数据模板化数据未获得初始焦点。在下面的示例中,有 4 个字符串,然后通过 Datatemplate 将其填充到 TextBox 中。

示例:

<Window xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
xmlns:sys="clr-namespace:System;assembly=mscorlib"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Grid>
<ListView>
<ListView.Resources>
<DataTemplate DataType="{x:Type sys:String}" >
<TextBox Width="100" Text="{Binding Mode=OneWay}"/>
</DataTemplate>
</ListView.Resources>
<ListView.ItemsSource>
<x:Array Type="{x:Type sys:String}">
<sys:String>test</sys:String>
<sys:String>test</sys:String>
<sys:String>test</sys:String>
<sys:String>test</sys:String>
</x:Array>
</ListView.ItemsSource>
</ListView>
</Grid>
</Window>

我已经尝试过一些组合

FocusManager.FocusedElement="{Binding ElementName=[...]}"

毫无意义的说:没有成功。有人知道我如何在不遍历 C# 中的可视化树的情况下获得我想要的东西吗?应该可以做到这一点,不是吗?

最佳答案

FocusManager 对此非常有效。

            <DataTemplate x:Key="MyDataTemplate" DataType="ListBoxItem">
<Grid>
<WrapPanel Orientation="Horizontal" FocusManager.FocusedElement="{Binding ElementName=tbText}">
<CheckBox IsChecked="{Binding Path=Completed}" Margin="5" />
<Button Style="{StaticResource ResourceKey=DeleteButtonTemplate}" Margin="5" Click="btnDeleteItem_Click" />
<TextBox Name="tbText"
Text="{Binding Path=Text}"
Width="200"
TextWrapping="Wrap"
AcceptsReturn="True"
Margin="5"
Focusable="True"/>
<DatePicker Text="{Binding Path=Date}" Margin="5"/>
</WrapPanel>
</Grid>
</DataTemplate>

关于wpf - WPF 中的焦点数据模板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/570194/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com