Xamarin表单ListView SelectedItem绑定似乎不起作用

时间:2016-11-30 14:48:04

标签: listview xamarin.forms viewmodel selecteditem

我的ListView

有以下XAML
                    <ListView x:Name="lvListItems" Grid.Row="2" Grid.Column="0" 
                  VerticalOptions="StartAndExpand" 
                  HorizontalOptions="CenterAndExpand"
                  HasUnevenRows="True"
                  Margin="0,20,0,0"
                  SelectedItem="{Binding Selected, Mode=TwoWay}"
                  ItemSelected="lvListItems_ItemSelected">
            <ListView.ItemTemplate>
                <DataTemplate>
                    <ViewCell>
                        <Grid HorizontalOptions="Center" VerticalOptions="Center">
                            <Grid.RowDefinitions>
                                <RowDefinition Height="auto" />
                            </Grid.RowDefinitions>
                            <Grid.ColumnDefinitions>
                                <ColumnDefinition Width="*" />
                            </Grid.ColumnDefinitions>
                            <Label x:Name="lblItemName" Text="{Binding Value}" FontSize="Medium" />
                        </Grid>
                    </ViewCell>
                </DataTemplate>                    
            </ListView.ItemTemplate>
        </ListView>

在我的代码中,我按如下方式设置绑定上下文:

this.BindingContext = ViewModelObjects.DayOfWeek;   lvListItems.ItemsSource = ViewModelObjects.DayOfWeek.GBSDaysOfWeek_ForList;

在我的ViewMdoel中,Selected属性会调用OnPropertyChanged事件

    public GBSDayOfWeek_ForList Selected
    {
        get
        {
            return iobj_SelectedGBSDayOfWeek_ForList;
        }

        set
        {
            iobj_SelectedGBSDayOfWeek_ForList = value;
            OnPropertyChanged();
        }
    }

问题是显示时所选项目未在列表中显示。有关如何使其工作的任何建议?我知道它正在调用我的ViewModel的Selected属性并且正在返回正确的项目。

更新:我将上传一个说明问题的示例。您可以看到我在视图模型中设置了选定的值,如果在Get for the属性上设置断点,则可以看到它被调用两次,一个返回null,一个返回列表中的正确项。

如果我在页面的OnAppearing事件中设置了所选值,它似乎可以正常工作。任何建议都表示赞赏。

示例项目链接: https://1drv.ms/f/s!Ams6cZUzaeQy289UiBx0qNqH86YbHg

0 个答案:

没有答案