xamarin.forms的奇怪问题

时间:2016-04-27 07:22:46

标签: c# xamarin.forms

视图中的输入字段正在内容页面上填充。在视图中,它设置为IsEnabled=false;。只要将其设置为禁用,就不会设置条目的值。

请查看以下代码:

    public class DetailsView : ContentView
    {
        public static Entry txtdetailsName;
        public DetailsView()
        { 
            Label lbldetailsName = new Label { Text = Resource.detailsName, FontAttributes = FontAttributes.Bold, Style = (Style)Application.Current.Resources["LabelStyle"] };
            txtdetailsName = new Entry { Style = (Style)Application.Current.Resources["entryStyle"], IsEnabled = false  };


            StackLayout stDetailsName = new StackLayout
            {
                Padding = new Thickness(10, 0, 10, 0),
                Children ={ 
                    lbldetailsName,
                    txtdetailsName
                }
            };
            Content = new StackLayout
            {
                Padding = new Thickness(0, 0, 0, 20),
                Children = {stDetailsName}
            };
        }
    }

在内容页面中:

public TestDetailsPage()
{
    getDetailsData();
}

private async void getDetailsData()
{
    Test test = new Test();
    test = await getTestDetails();
    loadView(test);
}

public async Task<Test> getTestDetails() 
{
    //...
    return Test;
}

public void loadView(Test test)
{
    DetailsView = new DetailsView();
    //DetailsView.txtdetailsName.Text = Test.Name;
    DetailsView.txtdetailsName.Text = "Some Text";
}  

但它似乎没有设定价值。不确定是什么导致了这个问题。

修改

我在三款Android设备Micromax Canvas(Android版本6.0.1),华硕Zenfone(Android版本4.4.2)和三星Galaxy Tab 2(Android版本4.1.2)上测试了该应用程序。在Asus zenfone和Samasung galaxy tab 2中,禁用字段的值按预期显示,而在Micromax画布上,禁用的文本框为空。

Android version could be the issue?

1 个答案:

答案 0 :(得分:0)

看起来loadView可能没有在主线程上创建DetailsView。你能检查确定它吗?异步空格可能会吞噬异常。