如何在Xamarin表单选择器控件中选择作为默认选项

问题描述 投票:0回答:1

我有一个选择器控件,它是可选字段,用户可以根据需要将选择器的选定项目设置为空。

是否有可能在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下面引用,但这没有帮助。

感谢您的任何帮助。

xamarin.forms picker
1个回答
0
投票

解决方案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

            }
        }
    }
© www.soinside.com 2019 - 2024. All rights reserved.