【发布时间】:2020-02-04 18:56:09
【问题描述】:
我正在尝试将 null 默认值添加到我的 Picker。但是,如果 ItemsSource 中的一项为空,我会得到一个空异常。 这是我的 XAML 上的选取器: Picker
<Picker Grid.Row="0"
x:Name="Control"
IsVisible="False"
SelectedIndexChanged="selectedIndexChanged" />
这是错误和 ItemsSource 上的值:
private void updateItemsSource(object oldValue, object newValue)
{
if (oldValue is INotifyCollectionChanged oldObservable)
{
oldObservable.CollectionChanged -= onCollectionChanged;
}
Control.ItemsSource = ItemsSource;
if (ItemsSource is INotifyCollectionChanged observable)
{
observable.CollectionChanged += onCollectionChanged;
}
setDefaultSelection();
}
有没有办法让选择器接受空值?也许是渲染器?否则我将不得不使用一个空字符串作为我的默认值。我认为这不是我的理想选择。
【问题讨论】:
-
请粘贴实际代码,而不是图片。
-
您的目标是不显示初始值吗?如果是这样,您可以设置 SelectedIndex = -1。
-
查看answer了解更多详情。
-
确实如此。我试图添加一个新的空字段,而不是使用 -1 作为默认选定索引。这很愚蠢,我知道。但这对我有帮助 =) 谢谢@Andrew
-
@MarceloArchizaAlmeida 您好,欢迎来到 SO!如果使用 MVVM,这个问题就可以避免。如果使用
List<string>作为ItemSource,需要注意不要手动添加空值。