2016-05-23 5 views
1

Xamarin.Forms MVVMプロジェクト(XAMLではなくコード内)で作業していますが、各セルの高さが異なるリストビューを使用しています(HasUnevenRows = true) 。各セル内では、ボタンをクリックしてセルに追加またはセルからいくつかのコンテンツを削除できます。私はこれを行うことができますが、セルの高さは、項目をスクロールして表示に戻すまで、コンテンツに調整されません。Xamarin.Forms - FlyViewのセルの高さを設定する

私がオンラインで読んだことから、セルの高さを自動的に内容に合わせて調整することはできません。だから私が次にしようとしているのは、その場でセルの高さを明示的に設定することです。私の現在の設定で 、私は3つのファイルがあります:

  • MyPage.csからmyListViewで使用ViewCellテンプレートが含まれている、と私はバインドするボタン、 - var myListView = new ListView { HasUnevenRows = true, ItemTemplate = new DataTemplate(() => new MyViewCell())
  • MyViewCell.csが含まれていますがコンテンツを追加し、ビューセルの高さを明示的に変更するためにビューモデル内のコマンドに渡す。
  • MyViewModel.cs - コンテンツを追加/削除し、ビューセルの高さを変更するコマンドが含まれています。

質問:ビューモデル(MyViewModel.cs)から、私はその高さを変更するために、リストビュー内の特定のViewCellにアクセスする方法を教えてください。

答えて

0

ListViewにバインドされているアイテムのうち、アイテムモデルにheightというプロパティを持ち、そのアイテムをViewCell HeightRequestにバインドします。ビューでコードなしで参照することができます。

+0

ViewCellのコンストラクタ内で、 'this.SetBinding (ViewCell.HeightRequestProperty、model => model.ViewCellHeight);'を試しましたが、ViewCellにはHeightRequestPropertyの定義が含まれていません。 VisualElement.HeightRequestPropertyも試しましたが、「無効なキャスト」エラーでクラッシュします。 – jbyrd

関連する問題