C# 使用Xamarin将选定项从选择器传回视图模型,而不是整个对象
因此,我有以下选择器,其中包含一个字符串列表作为项源。除了我不喜欢将整个对象传递回视图模型的方式外,其他一切都正常。我试图做的只是将所选项目传回viewmodel XAML: 基本上,我想完成的是以下几点:C# 使用Xamarin将选定项从选择器传回视图模型,而不是整个对象,c#,xamarin,events,mvvm,C#,Xamarin,Events,Mvvm,因此,我有以下选择器,其中包含一个字符串列表作为项源。除了我不喜欢将整个对象传递回视图模型的方式外,其他一切都正常。我试图做的只是将所选项目传回viewmodel XAML: 基本上,我想完成的是以下几点: CommandParameter="{Reference EventTypePicker.SelectedItem}" 而不是: CommandParameter="{Reference EventTypePicker}" 您已经将SelectedItem绑定到视图模型上名为Event
CommandParameter="{Reference EventTypePicker.SelectedItem}"
而不是:
CommandParameter="{Reference EventTypePicker}"
您已经将SelectedItem绑定到视图模型上名为EventType的属性。你应该可以直接使用这个属性 在XAML中,可以删除CommandParameter:
<Picker x:Name="EventTypePicker" ItemsSource="{Binding EventTypes}" SelectedItem="{Binding EventType}">
<Picker.Behaviors>
<behaviors:EventHandlerBehavior EventName="SelectedIndexChanged">
<behaviors:InvokeCommandAction Command="{Binding EventTypePickerSelectionChangeCommand}" />
</behaviors:EventHandlerBehavior>
</Picker.Behaviors>
</Picker>
@安德鲁·德普想得太多了。谢谢你注意到这一点。
CommandParameter="{Reference EventTypePicker}"
<Picker x:Name="EventTypePicker" ItemsSource="{Binding EventTypes}" SelectedItem="{Binding EventType}">
<Picker.Behaviors>
<behaviors:EventHandlerBehavior EventName="SelectedIndexChanged">
<behaviors:InvokeCommandAction Command="{Binding EventTypePickerSelectionChangeCommand}" />
</behaviors:EventHandlerBehavior>
</Picker.Behaviors>
</Picker>
private void OnEventTypeChange() {
var selectedItem = EventType;
}