問題タブ [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.

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

silverlight - この単純なデータバインディングのシナリオが機能しないのはなぜですか? (コンボボックス関連)

私はしばらくこれについて頭を悩ませてきましたが、現時点では困惑しています.

問題のシナリオはコードとして説明する方が簡単なので、うまくいけばそれ自体が物語っています。まず、XAML に次のような Silverlight アプリケーションがあります...

私のコードビハインドは次のようになります...(すべて単一のクラスファイルに記述されているため、独自のプロジェクトに簡単にコピーしてコンパイルできます)

説明させてください...たとえば、コレクションを ComboBox にバインドするときに、ComboBox のSelectedItemプロパティをそれにバインドできるように、 SelectedItemプロパティを持つ ObservableCollection を作成する一般的な方法を書き始めました。

ただし、何らかの理由で、ComboBox が ItemTemplate を介して効果的にネストされている場合は機能しないようです。私は効果的にリストのリストを持っています。これは、何が問題なのかわからなくなるほど単純なシナリオです。

コードを実行すると、テンプレート化された ComboBox が正しいアイテムを取得することがわかりますが、バインディングにもかかわらず SelectedItem に設定されることはありません。

私はそれがかなり長く続いていることを知っていますが、... 何かアイデアはありますか?

どうもありがとう

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

c# - XAMLでのWPFデータバインディング

現在のプロジェクトでは、データバインディングにほとんど問題はありません。ListBoxにバインドしたいObservableCollectionがあります。

...後で...

このコードは正常に機能します。リストボックスにはデータテンプレートがあり、すべてが完璧に見えます。

しかし、バインディングにC#コードを使用したくありません。XAMLコードでバインディングを作成したいと思います。日を探していますが、わかりません。これらは2行のC#コードですが、これをXAMLでアーカイブするには、コレクション用に独自のクラスを作成するか、DataProviderやリソースなどを追加する必要があります。

それを行う簡単な方法はありませんか?

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

wpf - ItemsSource + Converter + Treeview が更新されない

これはかなり複雑です。うまくいけば、誰かが私を助けてくれるように、これを十分に明確にすることができます。Manager と呼べるオブジェクトがあります。Manager には、彼が管理する人々のコレクションがあり、人々はすべて IPerson を実装していますが、さまざまな種類の人々がさまざまなプロパティを持っています。このマネージャーをツリーで表示し、マネージャー ノードの下に、彼が管理しているすべてのプロジェクトを表示したいと考えています。これは、彼が管理する人々から判断できます。

したがって、コンバーターを使用して人をプロジェクトのリストに変換する計画です。XAML は次のとおりです。

私の Person クラスは INotifyPropertyChanged を実装し、人々を保持するリストは INotifyCollectionChanged を実装します。このコードは、ツリービューの ItemsSource を設定するとうまく機能し、マネージャーはプロジェクトのリストと共に表示されます。

ただし、人のリストに新しい人を追加しても、TreeView は更新されません。デバッグすると、追加アクションと追加された項目で CollectionChanged が起動していることがわかります。また、CollectionChanged イベントは null ではないため、UI が監視していることがわかります。ただし、アイテムが追加されたときにコンバーターは実行されません。

IPerson オブジェクトを保持する List の Add メソッドを次に示します。

どういうわけかデータバインディングを壊していますか?

他にどのようなことを確認できますか?

コンバーターは、人物リストの各アイテムを見て、彼らが取り組んでいるプロジェクトを把握し、プロジェクト名を出力リストに追加します。

0 投票する
0 に答える
8121 参照

wpf - WPF - ListBox DataTemplate 内の 2 つのソースからのマルチバインディング

何か基本的なことが欠けているかどうかを確認するために周りを見回そうとしましたが、何が間違っているのか理解できないようです。

データセットからの写真のコレクションビューにアイテムソースをバインドしたいリストボックスがあります。問題は、画像が存在するディレクトリを MasterView CollectionView から取得し、個々のファイル名を DetailView CollectionView から取得する必要があることです。そこで、リソースを次のように定義しました。

これは問題なく動作するようです。データ セットをナビゲートして、マスター データと詳細データを確認できます。

完全なイメージ パスを取得するには、この 2 つをまとめるためのマルチバインディングが必要であることがわかり、1 つを作成することに成功しました。

先のコードでの私の仮定は、DataTemplate 内にある MultiBinding が、リストボックスから ItemsSource として定義されている BindingSource にアクセスできるということです。ただし、MultiValueConverter コードを調べると、MasterView からのデータと 2 番目の値の汎用オブジェクトのみが渡されます。

動作するかどうかを確認するために、マルチバインディングに詳細なソース情報を追加しました。

少なくとも、リストボックスに 5 つの画像があることがわかりましたが、それらはすべて同じ画像でした。DetailView CollectionView へのマルチバインド アクセスでは、最初のアイテムのみが表示されたようです。

「pictureFileName」を現在の ItemsSource アイテムにリンクして、正しい画像を表示できるようにする方法はありますか?

ありがとう!

ジョシュ

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

wpf - Binding Path プロパティを何に設定する必要がありますか?

C# に次の構造体定義があるとします。

そして、私は次のようなlinqクエリを持っています:

たとえば、ListBox の ItemsSource プロパティを以下のように設定した場合:

さて、上記のクエリ結果から「BackgroundCol」フィールドを参照するバインディング パスを設定するにはどうすればよいでしょうか。

{Binding Path=TimeSlotInfo.BackgroundCol}、{Binding Path=TimeSlotInfo/BackgroundCol}、そして最後に {Binding Path=BackgroundCol} を試しました...どれも機能していないようです..

誰でも助けることができますか?例をできるだけ単純化しようとしました。私の問題が十分に明確であることを願っています。前もって感謝します。

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

c# - Items と ItemsSource を持つ Button であるカスタム コントロールを作成しますか?

を使用してアイテムを表示するSplitButtonコントロールを作成しようとしています。ContextMenuSplitButton現在 から派生していButtonます。PART_DropDownInitiatorユーザーがクリックしてアイテムを表示するために表示する小さなアイコンですContextMenuSplitButton

ContextMenu問題は、またはスタイル内でデフォルトをセットアップしようとしていることですSplitButtonTemplateこのように、コントロールのユーザーは自分でそれを行う必要はありません。最初は、ユーザーに xaml でプロパティを設定させるだけだと思っていましたSplitButton.ContextMenu.Itemsが、それは不可能のようです。ここで、のテンプレート内でバインドできるItemsItemsSourceプロパティをに追加したいと思います。また、ユーザーはxaml またはコード ビハインドでorプロパティを設定する必要があるだけではありません。SplitButtonContextMenuSplitButtonItemsItemsSourceSplitButton

しかし、ItemsItemsSourceプロパティの両方が から派生しているように見えます。これは、が既に から派生してItemsControlいるため問題です。どうすればいいのかわからない...何かアイデアはありますか?SplitButtonButton

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

silverlight - ItemsSource を「プロキシ」コレクションにバインドします。DataContext を取得するには?

正しく並べ替えられていないデータを表示する複数のリストボックスとコンボボックスを含む Silverlight アプリケーションがあり、これを修正する必要があります。それらの ItemSource プロパティのほとんどは、XAML を通じて設定されます。それらの DataContext は、コントロールに直接設定されていない可能性があり、代わりに親に設定されていました。したがって、コード ビハインドで ItemSource または DataContext の割り当てに「OrderBy」を簡単に平手打ちすることはできません。その割り当てが明示的に存在しない可能性があるためです。

そこで、「プロキシ」コレクションを作成するというアイデアがありました。プロキシ コレクションは元の ItemSource を取得し、並べ替えられたバージョンを公開します。私はこれを変換することができます:

これに:

汚すぎる格好はやめて!しかし、ProxyCollection は ListBox の子ではないため、ListBox の DataContext はそれに伝達されず、バインディングは魔法のようには機能しません。ProxyCollection コレクションの DataContext を手動で設定すると、うまく機能します。ただし、DataContext を手動で設定する必要がある場合は、プロキシ コレクションを削除し、Listbox の DataContext を手動で設定して、「OrderBy」を追加することもできます。

では、プロキシ コレクションに設定された ListBox の DataContext を自動的に取得する方法についてのアイデアはありますか? または他の天才的なアイデアはありますか?