問題タブ [collectioneditor]
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.
.net - カスタムコレクションエディタに関する最も高度なチュートリアル
標準の.NETコレクションエディタをカスタマイズする方法についてすべてを知る必要があります。どこを見ればよいでしょうか。
.net - コレクションエディタでパラメータを変更しているときにコントロールを無効にする
コレクションエディターでプロパティを編集しながら、コントロールの内容を更新するためのより洗練された方法を探しています。
私たちが知る限り、唯一の解決策は次のとおりです。http: //dotnetfacts.blogspot.com/2008/05/how-to-take-control-over-collection.html
したがって、静的イベントハンドラーを宣言します。
このソリューションにはいくつかの欠点があり(複数のコントロールがあることを考えてください)、別のアプローチが可能かどうか疑問に思いました。
ありがとう。
c# - リストデザイナー連載
以下のMyIntListプロパティが、デザイナーで次の出力を生成することを正しく解釈する理由:DesignerSerializationVisibility.Content
一方、MyClassIntListは次の出力を出力しますか?
カスタム コントロール クラスのソース コードは次のとおりです。
テストする場合に備えて、完全な Form1.cs ソース コードを次に示します。
c# - PropertyGrid-IListから派生したプロパティ、ユーザーがアイテムを追加/編集/削除できるようにPropertyGridに追加するにはどうすればよいですか?
私がどのようにしてこの時点に到達したかについて、少し歴史を述べさせてください。
私はもともとCollectionsBaseから派生したプロパティをクラス内に持っていて、このコレクションをPropertyGridにマップしていて、ユーザーはリストからアイテムを自由に追加/編集/削除できました。
ただし、CollectionsBaseをNHibernateでマップできなかったため、最初の実装を破棄する必要があり、CollectionsBaseから派生する代わりに、クラスをIListから派生させました。
これでNHibernateにマップできますが、PropertyGridを介してコレクションを編集できません。
2つをお互いにうまくプレイさせるためにいくつかの助けが必要です。
私のメインクラスには、次のように定義されたプロパティがあります。
IListを継承するマイゾーンコレクションは次のように定義されます。
}
これで、ICustomTypeDescriptorとPropertyDescriptorは、このクラスがCollectionsBaseから派生したときに正常に機能しましたが、リストからアイテムを追加/編集/削除するための「...」ボタンなしで、プロパティ名にクラス名ZoneCollectionが表示されるだけです。
これが機能していないことがIListから継承されているので、何が間違っていますか?
追加した場合:
ZoneCollectionの最初に、展開可能なツリーにリストされているリスト内のアイテムを取得しますが、それは私が探しているものではありません。CollectionBaseではなくIListから継承したときに、コレクション内のアイテムを追加/編集/削除できるポップアップウィンドウを開く[...]ボタンはどこに移動しましたか?
c# - プロパティ グリッドで使用するカスタム コレクション エディター フォームを作成するにはどうすればよいですか?
プロパティの 1 つとして別のクラスのリスト/コレクションを持つクラスにプロパティ グリッド コントロールを組み込もうとしています。それらをクラス A と呼びましょう。リストには参照用のクラス B が含まれます。
リスト ボックスが 2 つあるフォームを組み込みたいと考えていました。左側のリスト ボックスには、現在右側のリストにないプログラム内のすべてのクラス B のリストが含まれます。右側のリストには、現在クラス A に関連付けられているすべてのクラス B が含まれます。2 つのリスト間でアイテムを移動するために、間にボタンが必要です。
これは簡単に設計できますが、コレクション エディターとして使用するフォームを設定する方法が正確にはわかりません。
誰かが私を正しい方向に向けることができますか?
また、誰かがこれを達成するための方向性を教えてくれる場合、選択する ID のリストを含むプロパティのドロップダウンを設定するにはどうすればよいですか。
c# - CollectionEditorの親
私はそのようなプロパティを持っています:
そして、 CollectionEditorLayerCollection
から派生したクラスがあります。そして、このプロパティはクラスにあります。ここで、オブジェクトはコレクションの親であるクラスについて知る必要があります。では、どうすればCollectionEditorの親を取得できますか?Layers
Canvas
Layer
Canvas
LayerCollection
または、それが不可能な場合、作成時にCollectionEditorにパラメーターを渡すことはできますか?このようにして、Canvas
オブジェクトを作成時にパラメーターとして渡すLayer
ことができます。
c# - CollectionEditor と「プロパティ '****' のコード生成に失敗しました」というエラー メッセージ
でプロパティを使用するユーザー コントロールがありますCollectionEditor
。そして、同じソリューションで別のプロジェクトを使用してコントロールをテストしています。コレクション エディタは問題なく動作しますが、コンポーネント dll を再コンパイルした後、設計時に IDE でエラーが発生します。IDE を閉じると、ソリューションを再度開いても問題なく動作します。コントロールのコードを変更して再コンパイルすると、IDE で同じエラーが発生します。コントロールを再コンパイルすると、IDE がコレクションのコードを生成しないことに気付きました。しかし、IDE を閉じて再度開くと、コードが生成されます。
エラーメッセージ:
プロパティ 'AProperty' のコード生成に失敗しました。エラー: '[A]MyComponent.AProperty は [B]MyComponent.AProperty にキャストできません。タイプ A は 'MyComponent; に由来します。場所「...\AppData\Local\Microsoft\VCSExpress\10.0\ProjectAssemblies\1f88w0l001\MyComponent.dll」のコンテキスト「LoadNeither」のバージョン=1.0.0.0、カルチャ=中立、PublicKeyToken=null'。タイプ B は 'MyComponent; に由来します。場所「...\AppData\Local\Microsoft\VCSExpress\10.0\ProjectAssemblies\eb4apk_301\MyComponent.dll」のコンテキスト「LoadNeither」のバージョン=1.0.0.0、カルチャ=中立、PublicKeyToken=null'。
コントロール内のプロパティは次のとおりです。
CollectionEditor
のコードは次のとおりです。
wpf - ユーザーが作成したカスタム型で Visual Studio コレクション エディターを使用する
タイプのプロパティを持つカスタム コントロールを開発しています。ObservableCollection<ICollectionItem>
このコントロールを使用している開発者が、ICollectionItem を実装する独自のタイプを作成し、Visual Studio 2010 のコレクション エディターで表示できるようにしたいと考えています
。属性を持つコレクションNewItemTypes(ICollectionItem)
ですが、何もしませんでした(VSは新しいアイテムタイプが であるべきだとすでにわかっていると思いますICollectionItem
)
この種の機能を実現する方法はありますか?
ありがとう。
c# - CollectionEditor を完全に無効にする
PropertyGrid でカスタム動的クラス オブジェクトを使用しています (ここに投稿するにはコードが多すぎます)。簡単に言えば、実行時に任意の入力 (この場合は XML ですが、それは重要ではありません) からプロパティを作成できるようにすることです。これらのプロパティは、無期限にネストできるように、別のカスタム クラスを含め、任意の型にすることができます。
私が抱えている問題は、PropertyGrid がこのクラスをコレクションとして認識し、Value 列に CollectionEditor を開くためのボタンがあることです。これには (特に) [追加] ボタンと [削除] ボタンがあり、どちらもカスタム クラスを根本的に壊します。これら 2 つの複雑なシステムをうまく連携させようとするのではなく、単純に CollectionEditor を完全に無効にしたいと思います。(PropertyGrid.SelectedObject を子オブジェクトに設定することにより) クラスの子オブジェクトを表示できる別のシステムがあり、正常に動作します。CollectionEditor はこのシステムとはまったく互換性がないように見えるため、ユーザーが CollectionEditor を表示するオプションさえ持たないことを望みます。
理想的には、クリック イベントをキャプチャして自分で処理できるボタンを [値] 列に配置したいだけですが、それはオプションです。また、問題の行だけで CollectionEditor を無効にするか、PropertyGrid 全体で無効にするかは気にしません。私はどちらの方法でも使用していないので、アクセスできないようにするものは何でも良いでしょう.