Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Xamarin.forms ios上处于发布模式的Xamarin表单选择器不显示文本_Xamarin.forms - Fatal编程技术网

Xamarin.forms ios上处于发布模式的Xamarin表单选择器不显示文本

Xamarin.forms ios上处于发布模式的Xamarin表单选择器不显示文本,xamarin.forms,Xamarin.forms,我有一个Xamarin Forms应用程序,在这样定义的页面中有一个选择器: <Picker ItemsSource="{Binding AvailableCultures}" SelectedItem="{Binding SelectedCulture, Mode=TwoWay}" ItemDisplayBinding="{Bindin

我有一个Xamarin Forms应用程序,在这样定义的页面中有一个选择器:

            <Picker ItemsSource="{Binding AvailableCultures}"
                    SelectedItem="{Binding SelectedCulture, Mode=TwoWay}"
                    ItemDisplayBinding="{Binding DisplayName}" />

viewmodel中的相关部分包括:

    private CultureInfo selectedCulture = CultureHelper.CurrentCulture;

    public CultureInfo SelectedCulture
    {
        get => selectedCulture;
        set
        {
            if(value == null)
                return;
            if(selectedCulture == value)
                return;
            selectedCulture = value;
            settingsFacade.DefaultCulture = selectedCulture.Name;
            CultureHelper.CurrentCulture = selectedCulture;
            RaisePropertyChanged();
        }
    }

    public ObservableCollection<CultureInfo> AvailableCultures { get; }

    private async Task LoadAvailableCulturesAsync()
    {
        await dialogService.ShowLoadingDialogAsync();

        CultureInfo.GetCultures(CultureTypes.AllCultures).OrderBy(x => x.Name).ToList().ForEach(AvailableCultures.Add);
        SelectedCulture = AvailableCultures.First(x => x.Name == settingsFacade.DefaultCulture);

        await dialogService.HideLoadingDialogAsync();
    }
private CultureInfo selectedCulture=culturehelp.CurrentCulture;
公共文化信息选择文化
{
get=>selectedCulture;
设置
{
如果(值==null)
返回;
如果(selectedCulture==值)
返回;
选择文化=价值;
settingsFacade.DefaultCulture=selectedCulture.Name;
CultureHelper.CurrentCulture=selectedCulture;
RaisePropertyChanged();
}
}
公共可见集合可用文化{get;}
专用异步任务LoadAvailableCultureAsync()
{
等待dialogService.ShowLoadingDialogAsync();
CultureInfo.GetCultures(CultureType.AllCultures).OrderBy(x=>x.Name).ToList().ForEach(AvailableCultures.Add);
SelectedCulture=AvailableCultures.First(x=>x.Name==settingsFacade.DefaultCulture);
等待dialogService.HideLoadingDialogAsync();
}
当我调试时,这在模拟器上工作没有问题。它在Android上也可以正常工作。但当我在iOS上部署应用程序时,文本是空的

我可以滚动浏览它们并选择新的,值也会更改。我想这可能是绑定的问题,但当我完全关闭链接时,它仍然存在。 是什么原因造成的


存储库链接:

调试发布模式之间进行测试后,我们将看到
显示名
发布模式下不显示,但
英文名称
始终显示

调试模式:

释放模式:

因此有一个解决方案使其在发布模式下工作

使用绑定
EnglishName
ItemDisplayBinding修改
Picker
Xaml代码,如下所示:

<Picker x:Name="MyPicker"
    ItemsSource="{Binding AvailableCultures}"
        SelectedItem="{Binding SelectedCulture, Mode=TwoWay}"
        ItemDisplayBinding="{Binding EnglishName}" />


Hi,您可以使用
itemsplaybinding
检查在iOS设备上运行时是否有值。我已经在本地站点进行了测试,并在物理设备上运行,没有问题。您可以通过物理设备网络进行检查。@JuniorJiang MSFT谢谢您的回复。您是否在调试或发布配置中进行了本地测试?我在调试中进行了测试,它工作得很好。在我的帖子中,我可能没有足够清楚地指出这一点,但在调试中它对我也工作得很好。这个问题只会发生在我在发布版中构建之后。