【问题标题】:Xamarin XAML ListView - How to select programmaticallyXamarin XAML ListView - 如何以编程方式选择
【发布时间】:2016-04-07 12:43:15
【问题描述】:

我正在使用 Xamarin 开发 Windows 移动应用程序,但似乎无法以编程方式设置选定的 ListView 项。

我已经尝试了以下 ListViews 方法,但仍然没有

SelectedItem
ScrollTo()
Focus()

我也用谷歌搜索了它,似乎无法说明如何做到这一点。 我该怎么做?

【问题讨论】:

  • 你应该发布你正在尝试但没有产生你想要的结果的代码。
  • 以上答案对您有帮助吗?

标签: c# xamarin xamarin.forms


【解决方案1】:

这在我的示例应用中运行良好:

public partial class ItemsPage : ContentPage
{
    public ItemsPage()
    {
        InitializeComponent();
        Vm = new ItemsViewModel();
        BindingContext = Vm;
    }

    protected override void OnAppearing()
    {
        ListviewItems.SelectedItem = Vm.Items[1];
    }

    public ItemsViewModel Vm { get; private set; }

在我的示例应用中,ItemsViewModel.ItemsList<string>

OnAppearing这行代码运行后,列表中的第二项设置为选中状态。

【讨论】:

    【解决方案2】:

    设置SelectedItem 属性是“正确”的方法。什么具体没有发生,您认为在设置时会发生?

    【讨论】:

      【解决方案3】:

      我使用了一种方法,但它可能不是最有效的方法。您可以将更改设置为由您的模型类型创建的列表,然后您应该重新加载列表视图。

      subjects[i].something=false;//set something
      
      yourListView.ItemSource=null;
      yourListView.ItemSource=subjects;
      

      【讨论】:

        【解决方案4】:

        如果您想滚动到特定位置, 我正在使用

        listChat.SetSelection(currentIndex);

        在我的一个聊天应用程序中,它运行良好。

        如果您正在寻找滚动到所需位置的解决方案,即使我在互联网上搜索过解决方案,也没有任何帮助。最后这个是我的工作,使其工作。

        【讨论】:

          猜你喜欢
          • 2013-12-25
          • 2019-12-12
          • 2011-08-13
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2010-10-08
          • 2010-11-07
          相关资源
          最近更新 更多