問題タブ [system.componentmodel]

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 に答える
614 参照

wpf - IEQuatable の方法コンボボックスの動作に影響を与える

コンボ ボックスの作業中に、有線の問題が見つかりました。Xamlは次のようになります

Itemsource が Shaft (オブジェクト) のリストにバインドされており、selectedItem がリストの 1 つであるとします。

そして、このリストをnullにしようとしました(Button_Clickを参照してください).Comboboxは、リストの各オブジェクトの.Equalsを呼び出して、最後に選択したオブジェクトを比較します。私の期待では、.equals を呼び出して SelectedItem を null に設定するべきではありません。

Shaft に IEquatable を実装し、List を null に設定すると、正常に動作します。.Eqauls への呼び出しが行われないことを意味し、selectedItem は null に設定されます。

新しい実装

これは、リストが null の場合でも、コンボボックスが Itemsource にバインドされたオブジェクトを解放していないことを示しています。IEquatable を実装するまで。

なぜそれがそのようなものなのか、何か考えはありますか?

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

c# - ラムダ式でコンパイル時にプロパティ名をチェックする

以前の質問で、プロパティ名を取得するためのLinq式と拡張メソッドで、式と拡張を使用した2つのPOCOプロパティ間のデータバインディングについて質問しました。私は役に立つ答えを手に入れました、そしてそれはうまく働いています、しかし私はそれについて質問があります。

コードは次のとおりです。

使用法:

上記に関する私の質問は次のとおりです。

  • Bindを呼び出すと、2番目のパラメーターは現在のクラスのメンバーであるため、x.Bind(Name => Id);のようなものになります。x.Bind(Name => y.Id)の代わりに。この場合、destinationExpression.ExpressionはMemberExpressionではなくConstantExpressionであるため、バインドは失敗します。その場合に機能させるために何を変更する必要があるのか​​わかりません。

  • x.Bind(Na123me => Id)のように、プロパティ名が正しくない場合にコンパイル時に失敗させる方法はありますか?

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

.net - カスタムコレクションエディタに関する最も高度なチュートリアル

標準の.NETコレクションエディタをカスタマイズする方法についてすべてを知る必要があります。どこを見ればよいでしょうか。

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

.net - System.ComponentModel.GroupDescriptionをサブクラス化する方法は?

.NET ライブラリのGroupDescriptionクラスを使用して、PropertyGroupDescription クラス以外 (のようなクラス) を実装する方法を説明できる人はいますか?

言い換えれば、GroupDescription をサブクラス化することによって、他にどのような種類のグループ化が可能でしょうか? GroupDescription の GroupNameFromItem(...) メソッドを実装する方法の具体例を教えてください。

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

c# - ユーティリティクラスのプロパティセッターに静的ユーティリティメソッドを使用する方法

DataGridViewとDGVにデータを提供するBindingListの間で双方向のバインディングを実現しようとしています。一部の列は、基になるリストの変更をまだ反映していません。これは、プロパティの変更を通知するためのプロパティセッターを提供していないためだと思います。Processプロパティの場合と同じようにRowsプロパティのセッターをコーディングするのではなく、より「エレガント」にしようとしていますが、行き詰まっていることに気づきました。

私はよりエレガントなアプローチのための非常に興味深い記事に出くわしました、そして私はそれの概念を実装しようとしています(参照してください): http ://www.gavaghan.org/blog/2007/07/17/use-inotifypropertychanged- with-bindinglist /

これが私が使いたいマイクの記事(私のCBMI.CommonプロジェクトでUtilities.csとして確立された)からのコードです:

それで、これについての私の最初の質問:著者は彼の記事にreturnステートメントを持っていませんでした、そして私はコンパイラエラーを解決するそれを追加しました。eventHandlerが実行されて返されると思いますが、これは作成者の省略であり、メソッドがブール値の戻り型を必要とするため、これはtrueを返すはずです。それは正しい仮定ですか?

2番目の質問は、上記のヘルパーメソッドを使用しようとしたときのC#ルーキーを示しています。このクラスを、上記と同じプロジェクト(および名前空間)のInputFileInfo.csという別のファイルにコーディングしました。

このクラスの2番目のプロパティのセッターは、Mikeの静的メソッドを使用しようとする場所です。

Utilities.Setを削除し、次のようにコーディングした場合:

..次に、 「名前'Set'は現在のコンテキストに存在しません」とコンパイラが文句を言います。

ユーティリティを使用して追加してみました。ディレクティブですが、問題は解決しませんでした。

最後に、私はパラメーターを理解していません:ref T oldValue、T newValue 、またはSetメソッドが呼び出されるvalue
と呼ばれるパラメーター。

私がこれらのより高度なアイデアを使用できるように、誰かがこのコードに関するこれらの複数の混乱について私を助けてくれますか?

----更新の編集---- 2つの良い答えが、これを機能させるのに役立ちました。上記の元の投稿の「2番目の質問」は、少しわかりにくいままです。マイクの元の記事のように単純な呼び出し構文を使用できるように、これをパッケージ化する方法に関する「ベストプラクティス」を要求するそれぞれにコメントを追加しました。つまり、メソッド名のみで「ヘルパー」静的メソッドを呼び出そうとしています。次のように呼び出す方法を理解したい:

次のようにコーディングする代わりに:

これはUtilities.Setをコーディングすることで機能しましたが、質問は少し変形していると思います。「静的メソッドをどこに配置し、それらを呼び出す方法を教えて、クラス名で「修飾」する必要がないようにしますか?」オブジェクトのインスタンスを必要としない、一般的に有用な「ユーティリティ」タイプのメソッドをパッケージ化する方法を理解したいと思います。この場合、静的メソッドはSetと呼ばれますが、次のような他の静的メソッドを追加できるようにしたいと思います。

クラスファイルのみを含む、個別にコンパイルされたDLL(Vstudioプロジェクト)があります。最終的には、このクラスを他のアプリケーションで使用できると思います。

これらの種類の静的メソッドを次のように呼び出すことができるように宣言するのに最適な場所はどこですか。

それ以外の:

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

.net - ITypedList に相当する Silverlight はありますか?

オブジェクトのコレクションがあり、それぞれが一連の名前と値のペアを保持しています。名前はすべてのオブジェクトで同じです。これらをデータ グリッドの列として表示したいと思います。

Winforms/WPF ではITypedList、いくつかのPropertyDescriptorインスタンスで使用して、ランタイムにいくつかの偽のプロパティを提供します。ただし、このタイプは Silverlight では使用できないようです。

では、代替手段はありますか、それとも Silverlight には存在しませんか?

いくつかのコードを追加して編集し、シナリオをより適切に構成します

行/セルのルックアップを機能させてデータを入力するにはどうすればよいDataGridですか? 具体的には、プロパティが変更されたらバインディングを介してグリッドを更新する必要がありRowsます (バインディングが応答する変更イベントが発生すると仮定します)。

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

c# - NotifyIconにアタッチされたContextMenuで遅延したイベントをクリックします

System.ComponentModel.CompositionWindows UIの通知領域にアイコンを配置するアプリケーションのプラグイン(を使用)に取り組んでいます。

そのアイコンのコンテキストメニューの項目をクリックしても、Clickハンドラーが呼び出されていません。
興味深いことに、アイコンをもう一度右クリックすると(メニュー項目をクリックした後)Click、前にクリックしたハンドラーMenuItemが呼び出されます。アイコンを左クリックまたはホバーしても、このステップはトリガーされません。

何が起こっている?

更新:私の問題はこの質問に関連していると強く感じています。しかし、私はまだそれをプラグイン/アプリケーションに適用する方法を見つけようとしています。

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

c#-4.0 - System.ComponentModel.BindingList:Add(object)とAddNew()

System.ComponentModel.BindingList方法Add(object)との違いは何AddNew()ですか?MSDNのドキュメントには次のように書かれています。

  • Add:の末尾にオブジェクトを追加しますCollection<T>

  • AddNew:コレクションに新しいアイテムを追加します。

どちらの方法でもコレクションにアイテムが追加されるようですがAdd(object)、1回のショットで追加されますが、AddNew()少し複雑です。でのテストは機能してAdd(object)いるようですが、正しい方法を使用しているかどうかを知りたいです。

では、これらの方法の違いは何ですか?

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

sharepoint - SilverlightのSharePointクライアントオブジェクトモデルで文字列を色に変換する方法は?

色の名前 (「赤」など)を持つ文字列を System.Windows.Media.Color のオブジェクトに変換する必要があります。

次のコードを使用しています。

コードは正常にビルドされますが、「ConvertFrom がベース TypeConverter に実装されていません」というランタイム例外がスローされます。

どんな助けでも大歓迎です。ありがとう!

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

c# - 一度構築された引数を表示

ViewModelクラスのコンストラクターとして次のコードがあります。

このビューモデルは子ウィンドウに対応します。子ウィンドウを1回実行し、閉じてからもう一度実行しようとすると、閉じたウィンドウでShowShowDialogを呼び出すことができないという例外が発生します。IItemDefViewこれは、1つのオブジェクトのみが作成されることを意味しますか?これについてはどうすればよいですか?