問題タブ [itemssource]
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.
c# - 追加に応答するために ObservableCollection にバインドされた UserControl 派生クラスを取得するにはどうすればよいですか?
ListView を使用でき、追加に正しく応答するため、コレクションは問題ないように見えますが、リストビューを UserControl にネストすると、そうではありません。関連するコードを提供しました。
この方法で UserControl 派生クラスを作成しました。
次のような XAML を使用します。
私の消費 XAML は次のようになります。
コレクションは次のように定義されます。
wpf - グリッドにComboBoxを入力する
私はViewModel
2つのコレクションプロパティを持っています。DataContext
これに設定されているページのフォームフィールドに入力するために使用するコレクションの1つViewModel
。このフォームには、コレクションが入力されているフィールドの中に、他のComboBox
コレクションを入力したいものもあります。
グリッドを使用してレイアウトを行います。このグリッドDataContext
は最初のコレクションに設定されています。グリッドの外側にあるときはComboBox
、2番目のコレクションで簡単に埋めることができます。しかし、それがグリッドにあるときにそうしようとすると、それを成し遂げることができないようです。
コードスニペットでは、グリッドをに設定しDataContext
ましたItemTypes
。フィールドからItemTypes
値を取得できます。ComboBox
ただし、他のコレクションから値を取得する必要があります。
wpf - WPF によるデータ バインディング
私はWPFが初めてで、これはしばらくの間私を困惑させました:
モデルに、tabControl にバインドされた People オブジェクトの observableCollection があります。したがって、新しい People オブジェクトが追加されるたびに、People.Title をタブのヘッダーとして使用して新しいタブが作成されます。
各 People オブジェクトには、Friend オブジェクトの ObservableCollection があります。タブの内部には、Friend.FirstName 用と Friend.LastName 用の 2 つのテキスト ボックスのリストが必要です。
最初の要件は正常に機能していますが、2 番目の要件では「ItemsSource は既に使用されています」というエラーが表示されます
これまでの私のコードは次のとおりです。
私はあなたの助けに感謝します。
wpf - Button.Click の ListBox.ItemsSource Binding プロパティを変更しますか?
簡単な質問...
次のように、ビューモデルのコレクション プロパティにプロパティがバインドされていますListBox
。ItemsSource
また、同じビューに 2 つのButton
オブジェクトがあります。問題は... XAML のみを使用CollectionsListBox
ItemsSource Binding
するActivity.Timesheets
ように変更できますか?Activity.Attachments
コマンドオブジェクトを使用してビューモデルから失敗しましたか?
編集 >>>
ハワードの回答の一部からRadioButton
s の代わりにsを使用して、簡単な解決策を見つけました。Button
助けてくれてありがとう。
c# - カスタム コントロールで ItemsControl の動作を模倣する
私はクラスマーカーを持っています
他のプロパティとともに、マーカーのコレクションを公開するカスタム コントロール
ItemsControl の動作を模倣し、コンポーネントのユーザーが直接または ItemsSource の類推を使用してマーカーを指定できるようにしたいと考えています。さらに、両方のメソッドでデータバインディングをサポートしたい (できれば XAML で)
マーカーを直接
MarkersSource を使用したマーカー
最初の方法は非常に簡単ですが、2番目の方法に苦労しています。
MarkesSource を実装するにはどうすればよいですか? UserSpecifiedCollection のアイテムを Marker タイプに変換するにはどうすればよいですか? UserSpecifiedCollection アイテムのプロパティを Marker のプロパティにデータバインドするにはどうすればよいですか?
変換に関しては、ValueConvertor を使用できると思いますが、DataTemplates のような純粋な XAML ソリューションをお勧めします。可能です?
wpf - ObservableCollection にバインドされたリストボックスの並べ替え
リストボックスの内容を並べ替えるにはどうすればよいですか? 並べ替えはビジネス ロジックに影響を与えないため、これを UI レイヤーのみに保持する方が理にかなっているように思えます。私は正確に何をすべきかを理解することはできません。
wpf - WPF:ICollectionView-アイテムが別のリストに含まれている場合、1つのリストをフィルター処理しますか?
基本的に、2つのListViewがそれぞれ異なるにバインドされていますItemsSource
。
リスト1は変更できません(これはReadOnlyObservableCollection
)です。
リスト2は(ユーザーの操作によって)変更できます。
リスト1にフィルターを追加して、リスト2にあるものが何も表示されないようにする必要があります。これは、これまでの私のコードです...
List2.ItemsSourceは、ObservableCollection(実際の内容)ではなく、IEnumerableとして返されます。これをできるだけ効率的に実行したいので、次のようにする必要があるかどうかわかりませんでした。
- 明示的にItemsSourceをIListとしてキャストして、Containsにアクセスしますか?
- ItemsSourceを自分で繰り返して、アイテムが含まれているかどうかを確認しますか?
- LINQのCast拡張メソッドを使用してIList(または他のタイプ)にキャストし、Contains?にアクセスします。
- その他の方法で?
アップデート:
初めてレンダリングした後、アイテムのフィルタリングを続行していないようです。
更新2:
なぜフィルターを再適用しないのか理解できたと思います。元のコレクションはCollectionChanged通知を発生させないため、フィルターを再度実行する必要はありません。おそらく、この部分を解決することは、別の質問としてより適していますか?しかし、誰かがここでそれに答えたい場合は:
List2コレクションが変更されたときにList1にフィルターを再適用させるにはどうすればよいですか?
更新3:別のSO質問 でcollectionchangedイベントに関連付ける方法を尋ね、回答を得ました。
wpf - WPF:ListViewのItemsSource CollectionChanged通知にフックするにはどうすればよいですか?
私ListView
はにデータバインドされているを持っていObservableCollection
ます...
コレクションが変更されたときにトリガーされるイベントが見つからないようです。どういうわけか、collectionchanged通知にフックする必要があると思いますか?どうすればいいのかよくわかりません。
基本的に、コレクションが変更された場合、ListViewがリストを更新する際にすでに行っていること以外の追加の作業を行いたいと思います。
wpf - ItemsSourceを静的メソッドにバインドするWPF?
「Article」というクラスに次の静的メソッドがあります。
これをComboBoxのItemsSourceプロパティに直接バインドしたいのですが、コードにないXAMLでは、正しい構文が見つかりません。
これは私が思うように見えるはずです(EmacGbscCoreはArticleオブジェクトを含むアセンブリです):
よろしくお願いします。
c# - ItemsControl.ItemsSourceがnullかどうかを表示します
ご挨拶、
バインドされたItemsSource内のすべてのオブジェクトのRadioButtonを表示するために変更したItemsControlがあります。
ただし、ItemsSourceは空にすることができ、空の場合はデフォルト値を表示したいと思います。「バインドされたリストには、選択できるアイテムが含まれていません」のようなもの...
私が考えた1つの方法は、ItemsControl.VisibilityをCollapsedに設定し、TextBlock.VsibilityをVisibleに設定して、テキストを表示することです。ただし、これにはさらに多くのデータが含まれます。
ItemsControl.ItemsSourceがnullの場合、デフォルト値を表示することはできますか?