2

我使用 SelectedItem 属性将数据绑定到我的 ViewModel,并且每当我点击一个项目时,我都可以看到该 set 方法正在触发。但是我在列表视图中点击的项目不会保持突出显示。知道为什么吗?

理想情况下,我还希望列表视图从选定的项目开始。但这也行不通。我试过使用 RaisePropertyChanged(() => CurrentItem); 在 ViewModel 构造函数中无济于事。

<Mvx.MvxListView
    android:id="@+id/mainListView"
    android:layout_width="240dp"
    android:layout_height="fill_parent"
    local:MvxItemTemplate="@layout/mainListItem"
    local:MvxBind="ItemsSource Items; SelectedItem CurrentItem; ItemClick ShowDetailCommand" />


    /// <summary>
    /// Gets or sets the selected item.
    /// </summary>
    /// <value>The selected item.</value>
    public MainListItem CurrentItem
    {
        get
        {
            if (SelectedIndex >= 0 && SelectedIndex < MainItems.Count)
            {
                return MainItems[SelectedIndex]; 
            }

            return null;
        }
        set
        {
            if (value != null)
            {
                int idx = MainItems.FindIndex(info => info.Name == value.Name);
                if (SelectedIndex != idx)
                {
                    SelectedIndex = idx;
                }
            }
            else
            {
                SelectedIndex = -1;
            }
            RaisePropertyChanged(() => CurrentItem);
        }
    }
4

0 回答 0