2012-02-09 9 views
0

私は、スタックパネル内にいくつかのコンポーネントがすべて含まれているデータテンプレートを持つリストアイテムを持っています。今、私は、リストの行のサイズを(行の数に応じて)リスト内の項目の数の間で均等に分割したいので、リストに2つの項目しかない場合、2つのリスト項目の高さは(800/2)、3(800/3)などの場合(行のサイズが一定になる制限があります)リスト内のアイテムの異なるセットをバインドする

私の問題は、この計算された高さをlistitemのコンテナ(stackpanel)にバインドする方法ですか? listitems itemsourceプロパティを設定し、 'container'がリストの内側にあるので

+0

あなたが役に立つ場合は、ur postコード – Apoorva

答えて

0

私がこれに取り組む方法は、List<T>の項目の数を調べ、個々のStackPanel要素の高さを計算する計算を行うValueConverterを作成することです。次に、この値をintとして返します。

、一緒に作品を置くために、あなたのXAMLで、プロパティのコンバータとしてごValueConverterを指定して、あなたのList<T>CountプロパティにごStackPanel.Heightプロパティをバインドします。あなたがCountプロパティにアクセスしようとすると、StackPanelは、個々のリスト項目へのDataContextセットを持っていますので、

DataContextは、少しトリッキーかもしれません。しかし、おそらくあなたのリストの各項目にCountプロパティを追加することで回避できます。

ValueConverterについてはこちら(http://www.jeff.wilcox.name/2008/07/visibility-type-converter/)です。 boolVisibilityに変換しますが、その概念は同じです。

関連する問題