問題タブ [itemscontrol]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
533 参照

silverlight - Silverlight 2: 可変数のアイテムが固定幅を占めるようにしたい

スタックパネルが連携していません。固定幅と、その中に左から右にレイアウトする可変数の項目があります。

スタック パネルでそれらをレイアウトする項目コントロールがあります。

しかし、これはアイテムのサイズを正しくしません。使用可能なスペースに関係なく、常に同じサイズです。項目が多すぎる場合は、すべてが収まるようにサイズ調整するのではなく、右側が切り取られます。これを達成する方法はありますか? アイテムの数が一定であればグリッドを使用しますが、そうではありません。通常は 1 ~ 4 個のアイテムです。

ItemsPanelTemplate が可変数の列を持つグリッドであると便利です。しかし、ItemsPanelTemplate でそれ (または同じ結果が得られるもの) が可能かどうかはわかりません。

含まれるアイテムに等しい幅を割り当てるパネルの特別なサブクラスを作成する答えはありますか?

0 投票する
4 に答える
9141 参照

wpf - WPF - カスタム ItemsControl の作成

私は WPF 用のカスタム コントロールの作成を検討しており、かなり有用なブログなどを見つけましたが、漠然と十分な詳細を説明していますが、まだ少し苦労しています。

基本的に、私が作成しようとしているのは、悪名高い「Coda Slider」に似たものですが、適切に開始するのに十分な知識がありません。誰か/どこかの方向に私を向けて、カスタム ItemControls の作成に関する詳細を教えてくれるか、どの ItemsControl メンバーをオーバーライドする必要があるかなどの基本的な情報を提供してもらえますか?

すべての助けを喜んで受け取ります。

0 投票する
2 に答える
9083 参照

wpf - WPF - UserControl のデフォルトのコンテンツ属性

私は UserControl を作成していますが、デフォルトのコンテンツ プロパティとして機能させたいプロパティを装飾するために使用する属性の名前を思い出せません。

具体的な例を挙げると、次のようなプロパティ構文を使用して設定できる「タイトル」というプロパティがあるとします-

しかし、コントロールの消費者は、次のような要素構文を使用したい場合があります -

このサポートを有効にするために Title プロパティに追加する必要がある属性があることは知っていますが、それが何であるかを忘れてしまい、どこにも見つかりません。

誰か私の記憶をリフレッシュしてくれませんか? また、ItemsControl から継承する CustomControls に作用する同様の属性を探しています。

0 投票する
2 に答える
774 参照

wpf - ItemsControlをドッキングしようとするとLastChildFillが機能しない

WPFUserControlに次のマークアップがあります。

ItemsControlで使用可能なすべてのスペースを埋めたいのですが、DockPanelのLastChildFillプロパティに準拠していません。水平方向と垂直方向の「ストレッチ」値も役に立ちません。私は何が欠けていますか?

0 投票する
1 に答える
501 参照

c# - WPF:リストボックスのプロパティを集約する

私は2つのリストボックスを持っています。どちらもExtendedSelectionModeを使用しています。最初のItemsSourceはリストであり、データテンプレートを使用します。最初のプロパティの集計を2番目のアイテムソースとして使用しようとしています。例えば:

したがって、最初のリストのオブジェクトには、Dictionaryタイプのプロパティが含まれています。最初のリストで選択したすべてのアイテムの辞書にあるすべてのアイテムを2番目のリストに追加したいと思います。

コンバーターは初期ロード時に呼び出されたようですが、その後は呼び出されないため、2番目のリストボックスが空になります。私は何かが足りないのですか?

0 投票する
1 に答える
6145 参照

wpf - ItemsControl の WPF GridViewRowPresenter

私はWPFの学習を始めたばかりで、ItemsControl内でGridViewRowPresenterを使用して、HTMLの単純なテーブルの機能を本質的に複製しようとしています。ListView はインタラクティブであるため、適切ではありません (これは望ましくありません)。数量が不明なオブジェクトの一般的なリストにバインドしています。

FirstName と LastName の 2 つの文字列プロパティを持つカスタム オブジェクトのリストがあります。次のコードが機能します。

これは何もレンダリングしませんが:

ここからどこに行けばいいのかわからないので、助けていただければ幸いです。ありがとう!

0 投票する
1 に答える
330 参照

wpf - WPF/Silverlight では、HTML のような TableControl にバインドできますか?

次のカテゴリとサブカテゴリがあるとします。

  1. アニメーション (ファミリー ガイ、カルビン & ホーブズ、ブーンドックス、ダック テイルズ、ルーニー トゥーンズ、ピンク & ザ ブレイン)
  2. セサミストリート(オスカー、アーニー&バート、カエルのカーミット、エルモ、クッキーモンスター、グローバー)

次のように、行と列に (動的に) レンダリングする方法を探しています。

P/S: リスト コントロール (ItemsControl、DataGrid、ListView など) を認識していますが、この基準を満たしていないようです。

0 投票する
3 に答える
14265 参照

wpf - サブオブジェクト タイプに基づく DataTemplate の選択

ItemsCollection をデータバインドしたいのですが、コレクション アイテムをレンダリングする代わりに、コレクション アイテムのプロパティを介して到達したサブオブジェクトをレンダリングしたいと考えています。

より具体的に言うと、これはゲームの 2D マップ ビューアーになります (ただし、現在の状態ではまだ 2D ではありません)。ItemsControl を ObservableCollection<Square> にデータバインドします。Square には Terrain (Terrain 型) というプロパティがあります。Terrain は基本クラスであり、さまざまな子孫があります。

私が欲しいのは、ItemsControl が、コレクション要素自体ではなく、各コレクション要素から Terrain プロパティをレンダリングすることです。

私はすでにこれを機能させることができますが、不必要なオーバーヘッドがあります。不要なオーバーヘッドを取り除く良い方法があるかどうか知りたいです。

私が現在持っているのは、次のクラスです(簡略化):

また、以下を含む MapView と呼ばれる UserControl:

このコードを考えると、次のようになります。

期待どおりのものが得られます。黄褐色のボックス (ダート用) と銀色のボックス (スチールプレート用) を含む StackPanel です。しかし、私は不必要なオーバーヘッドでそれを取得します。

私の具体的な懸念は、Square の DataTemplate にあります。

私が本当に言いたいのは、「いいえ、わざわざ Square 自体をレンダリングするのではなく、Terrain プロパティを代わりにレンダリングすることです」ということです。これはそれに近いものですが、これにより、すべての Square のビジュアル ツリーに 2 つのコントロールが追加されます。上記の XAML で明示的にコード化された ContentControl と、その ContentPresenter です。ここでは特に ContentControl は必要ありません。Terrain プロパティの DataTemplate を短絡してコントロール ツリーに直接挿入したいのです。

しかし、collectionitem をレンダリングする (そして Square オブジェクトの DataTemplate を探す) のではなく、collectionitem.Terrain をレンダリングする (Terrain オブジェクトの上記の DataTemplates の 1 つを検索する) ように ItemsControl に指示するにはどうすればよいでしょうか?

地形には DataTemplates を使用したいのですが、必ずしも広場には必要ありません。これは、適切に機能することがわかった最初のアプローチでした。実際、私が本当にやりたいことは、まったく別のことです。実際には、ItemsControl の DisplayMemberPath を「Terrain」に設定したいと考えています。これにより、追加の ContentControl または ContentPresenter を追加することなく、適切なオブジェクト (Dirt または SteelPlate オブジェクト) が直接レンダリングされます。残念ながら、DisplayMemberPath は常に文字列をレンダリングし、地形の DataTemplates を無視します。それは正しい考えですが、私には役に立ちません。

このすべてが時期尚早の最適化かもしれません。欲しいものを手に入れる簡単な方法がない場合は、手に入れたもので生きていきます。しかし、コレクション項目全体ではなくプロパティにバインドする方法についてまだ知らない「WPF の方法」があれば、WPF の理解が深まります。

0 投票する
1 に答える
5864 参照

wpf - WPFItemsControlデータバインディング-初期コントロールを追加

グループのリストを表示するデータバインドされたアイテムコントロール用に次のXAMLがあり、最初に表示される新しいグループを追加するためのラベルとボタンがあります。

グループの数が少ない場合、すべてが1行に表示されます。

グループ+グループ1グループ2グループ3

さらにグループを追加すると、アイテムを含む折り返しパネルが折り返されますが、新しいグループを追加するための最初のラベルとボタンは独自の行にあり、データバインドされたグループは次の行から始まります。

グループ+グループ
1グループ2グループ3グループ4グループ
5

ラップパネルがネストされているため、なぜこれが発生しているのか理解できます。私の質問は、最初のラベルとボタンを内側のラップパネルに含めて、それらが単独で並んでいないようにするにはどうすればよいですか?

グループ+グループ1グループ2グループ3グループ4グループ
5

0 投票する
2 に答える
1515 参照

wpf - 親がフォーカスされているときにItemsControlがフォーカス長方形を表示するのはなぜですか?

WPFのItemsControlは、フォーカスがあると判断し、ユーザーがTabキーまたはAltキーを押すと、フォーカス長方形を表示します。

しかし、最近、ItemsControlにフォーカスがないにもかかわらず、フォーカス長方形を表示させました。その親の1つはフォーカスを持っていました。ItemsControlはUserControl内にあり、UserControlはフォーカスを持っていた別のUserControl内にありました。このようなもの:

または、ネストを視覚的に表示するには:

フォーカスの長方形を表示するためのフォーカスのないコントロールを予期していなかったため、フォーカスの長方形がどこから来ているのかを理解するのにしばらく時間がかかりました(そしてStackOverflowの質問)。

私はまだWPFの使い方を学んでいますが、明らかにまだ十分に理解していません。そうでなければ、混乱することはありません。私が理解するのに役立つ2つの質問:

  1. ItemsControlが実際にはフォーカスを持っていないのに、親コントロールの1つがフォーカスを持っているのに、なぜフォーカス長方形を表示するのですかこの機能の理由は何ですか?(テンプレートやビジュアルツリーに関係するものがあると確信していますか?-WPFのメカニズムと哲学についてまだ十分に理解していません。)
  2. これはどのように機能しますか?ItemsControlがフォーカス長方形を表示するかどうかを決定するために使用するメカニズムは何ですか?