私はXamarin.Formsでアプリケーションを開発しています。ユーザーはフィードの更新を公開でき、このフィードの更新にはテキストと添付されたファイル。私のxamlビューは、基本的にStackLayout
にはListView
、Editor
、そして、Buttons
という2つが含まれています。問題は、onAppearing
メソッドでListView
のItemSource
を設定しようとしていることです。メソッドはちょうどいいと呼ばれています。私が設定しているコレクションは期待どおりに変更されます。しかし何らかの理由でListView
が更新されていません。 ListView
の作業を回避するには、Source
にEditor
フォーカスメソッドを設定した直後でした。コレクションが無条件に設定された後にエディタをクリックしたときに、ListView
が適切にレンダリングされていることがわかったので、私はそのようにしました。しかし、非常に厄介な回避策です。Xamarin.Forms - OnAppearingメソッドでListViewが更新されていません
HorizontalOptionsとVerticalOptionsからの変更:
public partial class UpdateFeedPage : ContentPage { public static List<FileObject> CurrentSelectedFile = new List<FileObject>(); public static string PostText = ""; public UpdateFeedPage() { InitializeComponent(); Title = "New Update"; UpdateFeedEditor.Text = PostText; } protected override void OnAppearing() { AttachedFilesListView.ItemsSource = CurrentSelectedFile; UpdateFeedEditor.Focus(); base.OnAppearing(); } async void onPostClicked(object sender, EventArgs e) { await Navigation.PopAsync(); } async void onAttachFileClicked(object sender, EventArgs e) { await Navigation.PushAsync(new FilePickerPage()); } }
は、私のようなものがたくさんで再生:
<?xml version="1.0" encoding="utf-8" ?> <ContentPage xmlns="http://xamarin.com/schemas/2014/forms" xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" x:Class="HalliganTL.View.UpdateFeedPage"> <StackLayout Orientation="Vertical" > <ListView x:Name="AttachedFilesListView" MinimumHeightRequest="50" HorizontalOptions="FillAndExpand" VerticalOptions="FillAndExpand" > <ListView.ItemTemplate> <DataTemplate> <ViewCell> <StackLayout HorizontalOptions="StartAndExpand" Orientation="Horizontal"> <Button Text="[X]" /> <StackLayout Padding="5,0,0,0" VerticalOptions="StartAndExpand" Orientation="Vertical"> <Label Text="{Binding Name}" VerticalTextAlignment="Center" FontSize="Medium" /> </StackLayout> </StackLayout> </ViewCell> </DataTemplate> </ListView.ItemTemplate> </ListView> <Editor x:Name="UpdateFeedEditor" FontSize="15" Text="{Binding PostText}" VerticalOptions="FillAndExpand" /> <Button Text="Attach file" TextColor="White" BackgroundColor="#77D065" Clicked="onAttachFileClicked"/> <Button Text="Post" TextColor="White" BackgroundColor="#77D065" Clicked="onPostClicked"/> </StackLayout> </ContentPage>
はここに私のページのコードです:ここで
は私のXAMLですListViewとListViewを含むStackLayoutを返します。StackLayoutと子ListView以外のコントロールはすべて削除されました。
しかし、何も、エディタを呼び出すことを除いて、これまで働いていないフォーカス方式をプログラム
注:
あなたは私が設定していたListViewコレクションは静的で見ることができるように、私は変更私がOnAppearingでブレークポイントを設定すると、コレクションが適切に変更されていたので、これは問題ありません。
「ListViewが更新されていない」と言うと、すでに 'UpdateFeedPage'を見て、別のページに行き戻りましたか?あるいは、 'UpdateFeedPage'を見ているのは初めてです。 – SushiHangover
私は既にUpdateFeedPageを見たことがあります。 – 4gus71n