C# 重置Xamarin表单中的选择器显示值
我有一个表单,它有一个选择器元素,用户可以选择一个选项。使用MVVM方法,我能够检索值并重置选择器选项。但是,屏幕上显示的文本不会被删除 这是选择器的XAML代码段:C# 重置Xamarin表单中的选择器显示值,c#,xaml,xamarin.forms,mvvm,C#,Xaml,Xamarin.forms,Mvvm,我有一个表单,它有一个选择器元素,用户可以选择一个选项。使用MVVM方法,我能够检索值并重置选择器选项。但是,屏幕上显示的文本不会被删除 这是选择器的XAML代码段: <Picker Title="Choose A Category" x:Name="PickerCategory" ItemDisplayBinding="{Binding Ty
<Picker Title="Choose A Category"
x:Name="PickerCategory"
ItemDisplayBinding="{Binding Type}"
SelectedItem="{Binding CategorySelection}"
SelectedIndex="{Binding SelectIndex}"
SelectedIndexChanged="PickerCategory_SelectedIndexChanged"/>
class SellPageViewModel : ViewModelBase
{
public SellPageViewModel()
{
Vehicle = new Vehicle();
SaveVehicleCommand = new Command(SaveVehicle);
SetNewCommand = new Command(SetNew);
SetUsedCommand = new Command(SetUsed);
}
private Vehicle vehicle;
public Vehicle Vehicle
{
get { return vehicle; }
set
{
SetProperty(ref vehicle, value);
Console.WriteLine("Vehicle details entered");
}
}
private object categorySelection;
public object CategorySelection
{
get { return categorySelection; }
set
{
SetProperty(ref categorySelection, value);
Category catToInt = (Category)value;
if (value != null)
Vehicle.CategoryId = catToInt.Id;
}
}
private int selectIndex;
public int SelectIndex
{
get { return selectIndex; }
set
{
if (value != -1)
SetProperty(ref selectIndex, value);
}
}
public Command SetNewCommand { get; }
public Command SetUsedCommand { get; }
public Command SaveVehicleCommand { get; }
void SetNew()
{
Vehicle.Condition = "New";
}
void SetUsed()
{
Vehicle.Condition = "Used";
}
async void SaveVehicle()
{
Console.WriteLine("Save Button Clicked");
Console.WriteLine(Vehicle.Title);
Console.WriteLine(Vehicle.Price);
Console.WriteLine(Vehicle.CategoryId);
Console.WriteLine(Vehicle.Condition);
SelectIndex = 0;
Vehicle = new Vehicle();
}
}
因此,重置选择器的索引后,值将重置,但值的标题将保持不变:
如何将此字段重置为用户选择项目之前的占位符文本?根据@CFun的建议,这是一个简单的解决方案: 我设定:
CategorySelection = new Category();
代码中不需要SelectIndex来执行此功能。因此,它可以从ViewModel和XAML页面中删除。SelectedIndex的默认值为-1,而不是0我也尝试过-1,但它不起作用。
CategorySelection=null代码>?@Cfun我试过了too@Cfun但在你的帮助下,我找到了答案。我会把答案贴出来的