0

WPF / XAML の初心者である私は、レイアウトに取り組んでおり、それを統一しようとしています。グリッドのリストボックスを使用しており、異なる列に異なるデータがあります。望ましい動作を言うことから始めましょう: 列の開始位置と終了位置を統一*WidthますColumnDefinition

また、下部にある GitHub リンクからの最新の差分では、ダミー データを使用して、さまざまな文字列の長さで列が均一になっています。しかし、何らかの理由でDirectorySizers から引き出された実際のデータを使用すると、均一性が窓の外に出てしまい、2 番目の列は の長さに基づいて異なる位置から始まりますDirPath。私が考えることができる唯一のことは、データが列よりも何らかの形で長い場合でしたが、そうではないようです(メモリ内の検査はDirPath適切にトリミングされます)。

これに対する解決策/説明はありますか? 私は途方に暮れています。

望ましい行動と望ましくない行動の違い

4

2 に答える 2

2

リストボックスでGrid.IsSharedSizeScopeを使用することを検討する必要があります。これを使用すると、columnDefinitionのプロパティ「SharedSizeGroup」に基づいて、すべてのグリッドが同じ列サイズを共有するようにすることができます。これは完全な説明ではないことを私は知っているので、Grid.IsSharedSizeScopeをグーグルで検索してください。必要なものが見つかります。

また、表示される動作の違いは、使用しているデータソースの構造の違いによって説明される場合があります。まったく同じ値が各列にバインドされる文字列の配列を実行する代わりに、2つの異なる文字列値を使用してクラスを設定し、それにバインドしてみてください。そうすれば、DirectorySizerオブジェクトとのより有効な比較になります。

于 2012-06-28T06:57:29.313 に答える
0

どうやら何かがINotifyPropertyChanged原因でレイアウトがおかしくなっているようです。がNotify()発生し、新しいコンテンツが表示されると、レイアウト システムは単にコンテンツとグリッド ラインの間のパディングを維持するため、コンテンツのサイズが異なる場合、配置が変形します。

于 2012-06-29T05:43:52.823 に答える