gpt4 book ai didi

listview - 将 ViewCell 条目聚焦在 ListView 项目选择上

转载 作者:行者123 更新时间:2023-12-03 23:55:35 25 4
gpt4 key购买 nike

我有一个带有自定义 ViewCell 的 Xamarin.Forms ListView,其中包含一个带有条目和标签的 StackLayout。我希望在任何时候选择 ViewCell 时条目都能获得焦点。
ItemSelected提供被选中的项目,但不提供 ViewCell。我可以为 ViewCell 创建一个自定义类,但我看不出它是如何知道它何时被选中的。

如何将条目集中在 ListView 项目选择上?

最佳答案

将条目移动到 View 模型中,并将条目绑定(bind)到 ContentView在 ViewCell 中。在 ListView.ItemSelected事件处理程序,SelectedItem现在包含条目,您可以在其上调用 Focus .

XAML 如下所示:(在此示例中,条目包含一个数量。)

<ViewCell>
<StackLayout Orientation="Horizontal">
<ContentView Content="{Binding QuantityView}" />
<Label ... />
</StackLayout>
</ViewCell>

View 模型如下所示:

public class MyViewModel {
public string Quantity {get; set;}
public Entry QuantityView { get; } = new Entry {...};

public MyViewModel() {
QuantityView.SetBinding(Entry.TextProperty, nameof(Quantity));
}
}
ItemSelected事件处理程序如下所示:

void FocusQuantity(object sender, SelectedItemChangedEventArgs e) {
if (e.SelectedItem == null) return;
((MyViewModel)e.SelectedItem).QuantityView.Focus();
}

关于listview - 将 ViewCell 条目聚焦在 ListView 项目选择上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48811089/

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