我觉得我缺少明显的东西,因为这很简单。先谢谢您的帮助。我正在努力在Xamarin应用程序中绑定简单ListView的SelectedItem。我正在UWP上进行测试,并且正在使用Prism的MVVM BindableBase基类。这是我正在经历的:
SelectedGrade
的{{1}}调用value
的二传手。 null
setter。以下是相关的XAML:
SelectedGrade
这是ViewModel:
<ListView BackgroundColor="#7F7F7F"
CachingStrategy="RecycleElement"
IsPullToRefreshEnabled="True"
IsRefreshing="{Binding IsBusy, Mode=OneWay}"
ItemsSource="{Binding Grades, Mode=OneWay}"
SelectedItem="{Binding SelectedGrade, Mode=TwoWay}"
RefreshCommand="{Binding RefreshCommand}"
RowHeight="50">
<ListView.ItemTemplate>
<DataTemplate>
<ViewCell>
<StackLayout HorizontalOptions="FillAndExpand"
VerticalOptions="CenterAndExpand"
Orientation="Horizontal"
Padding="10">
<Label HorizontalOptions="FillAndExpand"
Text="{Binding Title}"
TextColor="#272832"/>
<Label HorizontalOptions="FillAndExpand"
Text="{Binding Score}"
TextColor="Aquamarine" />
</StackLayout>
</ViewCell>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
编辑:我还在代码后面添加了一个Grade _selectedGrade;
public Grade SelectedGrade
{
get { return _selectedGrade; }
set { SetProperty(ref _selectedGrade, value); } // this gets set to NULL the first time i select an item then never gets set again
}
事件侦听器,并且在选择初始项后不会将其触发。触发一次,ItemSelected
揭示ListView的SelectedItemChangedEventArgs
为空。正如我期望的那样,这时我还可以看到ListView的ItemsSource包含三个项的集合。我对为什么ListView认为SelectedItem
为null以及为什么在所选项目更改时不广播而感到困惑。
答案 0 :(得分:0)
这似乎是Xamarin中的错误。我从Xamarin.Forms 3.0.0.550146
升级到3.1.0.637273
,现在可以使用了。