我有一个选择器控件,它是可选字段,用户可以根据需要将选择器的选定项目设置为空。
是否有可能在Xamarin表单选择器控件的itemsource中将Select作为附加选项。
自定义选择器的代码:
<controls:CustomPicker
Grid.Row="1"
Grid.Column="1"
Margin="0,5,0,0"
Image="Downarrow"
ItemDisplayBinding="{Binding abb}"
ItemsSource="{Binding StateList}"
Placeholder="Select"
SelectedIndex="{Binding StateSelectedIndex}"
Style="{StaticResource Key=PickerHeight}" />
StateSelectedIndex = -1;
我尝试将所选索引设置为-1。仅当在选择器控件中未选择任何内容时,该方法才有效,但是一旦从选择器中选择了一项,则无法选择“选择”选项(消失)。
我尝试在URL Default value for Picker下面引用,但这没有帮助。
感谢您的任何帮助。
解决方案1:您应该设置SelectedIndex
SelectedIndex="{Binding StateSelectedIndex,Mode=TwoWay}"
解决方案2:
您可以在ViewModel中绑定SelectedItem
的值。
public class YourViewModel: INotifyPropertyChanged
public event PropertyChangedEventHandler PropertyChanged;
private void NotifyPropertyChanged([CallerMemberName] String propertyName = "")
{
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
}
public ObservableCollection<string> MyItems { get; set; }
private string selectItem;
public string SelectItem
{
get
{
return selectItem;
}
set
{
if(value!=null)
{
selectItem = value;
NotifyPropertyChanged("SelectItem");
int SelectIndex = MyItems.IndexOf(value);
// this will been invoked when user change the select , do some thing you want
}
}
}