我与Xamarin构建应用程序,目前我正在一个多标签页的工作。我在Android测试此。
每次我创建一个元素,并尝试查看我的模型对象有null值。
我有一个选择器,其定义如下:
<Picker Margin="10,0,10,0" x:Name="drawingToolsPicker" Title="Select a Drawing Tool" SelectedIndexChanged="drawingToolChanged">
<Picker.Items>
<x:String>Polygon</x:String>
<x:String>Text</x:String>
</Picker.Items>
</Picker>
在我的模型代码中,我试图通过使用“drawingToolsPicker”对象访问此。但它始终是返回null,代码访问该对象是以下:
public void drawingToolChanged(object sender, EventArgs e)
{
System.Console.WriteLine((string)drawingToolsPicker.SelectedItem);
//Always returns null, if I add a null check guard it won't reach this ever.
if ((string)drawingToolsPicker.SelectedItem == "Polygon")
{
paint.Style = SKPaintStyle.Stroke;
paint.Color = SKColors.Red;
paint.StrokeWidth = 5;
}
}
是否有任何理由为什么发生这种情况?
我的直觉是,它不工作的原因是您正在使用的物品属性,我建议你使用它的ItemsSource方法(推荐)填充数据到选择器。
有两种技术用于用数据选择器:
设置ItemsSource属性来对数据进行显示。这是推荐的技术,这是在Xamarin.Forms 2.3.4介绍。欲了解更多信息,请参阅设置选择器的ItemsSource属性。
添加的数据显示给项目集合。这种技术是用于用数据选择器原工艺。欲了解更多信息,请参阅将数据添加一个选择器的项目集合。
然后字符串列表添加到您的选择器类似下面:
drawingToolsPicker.ItemsSource= new string[] { "Polygon", "Text" };