簡體   English   中英

我似乎無法從列表視圖模板中的代碼訪問我的ui屬性

[英]I can't seem to access my ui properties from my codebehind in a listview template

我在Visual Studio 2015中使用ListView模板創建了一個ListView頁面。出於某種原因,盡管我給ui元素名稱賦予了“ x:Name”,但我無法從我的代碼后面訪問ui的屬性。 這是我在Xaml中聲明的ListView:

    <ListView.ItemTemplate>
        <DataTemplate>
            <ViewCell>
                <StackLayout>
                    <Label Style="{DynamicResource ListItemTextStyle}" Text="Central" />
                    <Label
                        x:Name="editField"
                        Style="{DynamicResource ListItemDetailTextStyle}"
                        Text="{Binding EmergencyCentralNumber}" />
                    <Entry
                        x:Name="entryField"
                        Completed="Entry_Completed"
                        IsVisble="false"
                        Text="{Binding EmergencyCentralNumber}" />
                </StackLayout>
            </ViewCell>
        </DataTemplate>
    </ListView.ItemTemplate>

</ListView>

這是我的代碼背后:

async void Handle_ItemTapped(object sender, ItemTappedEventArgs e)
{
    if (e.Item == null)
        return;

    await DisplayAlert("Item Tapped", "An item was tapped.", "OK");

    var selectedNumber = (AppUser)e.Item;
    //Deselect Item
    entryField.IsVisble = true;
    editField.IsVisble = false;
    //((ListView)sender).SelectedItem = null;

    //Deselect Item
    //((ListView)sender).SelectedItem = null;
}

async void Entry_Completed(object sender, EventArgs e)
{
    var text = ((Entry)sender).Text;
    if (string.IsNullOrEmpty(text))
    {
        await DisplayAlert("Alert", "Please do not leave this field empty", "OK");
    }

    await Task.Run(() =>
    {
        var realm = Realm.GetInstance();
        var user = realm.All<AppUser>().First();
        //cast sender to access the properties of the Entry
        realm.Write(() => user.EmergencyCentralNumber = ((Entry)sender).Text);
    });

    editField.IsVisble = false;
    entryField.IsVisble = true;
}

}

為什么會提示我在當前上下文中不存在editField和entryField變量?

我可能是錯的,但是名稱只能在DataTemplate范圍內訪問以進行引用,否則,如果您將事件處理程序放在ListView之外的元素上並按名稱引用您的項目,那么您的代碼應如何知道您要具體引用ListView中的哪個項目? 因為它們在該上下文中都具有相同的名稱。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM