我的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事件中设置了所选值,它似乎可以正常工作。任何建议都表示赞赏。