我有一个表单,它有一个用户可以选择一个选项的 Picker 元素。使用 MVVM 方法,我能够检索值并重置 Picker 选项。但是,屏幕上显示的文本不会被删除。
这是 Picker 的 XAML 代码片段:
<Picker Title="Choose A Category"
x:Name="PickerCategory"
ItemDisplayBinding="{Binding Type}"
SelectedItem="{Binding CategorySelection}"
SelectedIndex="{Binding SelectIndex}"
SelectedIndexChanged="PickerCategory_SelectedIndexChanged"/>
这是重置 Picker 的 ViewModel:
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();
}
}
因此,在重置选择器的索引后,值会重置,但值的标题保持不变:
如何将此字段重置为用户选择项目之前存在的占位符文本?
