私はDataGridViewに表示するプロパティを持っていますが、同じオブジェクトがPropertyGridに表示されている場合は表示しません。私は[Browsable(false)]
を使うことができますが、それは両方のビューでそれを隠しています。 gridView.Columns["blah"].Visible = false;
もできますが、これはDataGridViewでは非表示になっていてPropertyGridでは非表示であるため、これとは逆です。その逆を行うための方法はありますか? (同じデータから1つのフィールドを差し引いた新しいDataTableを作成し、その代わりにすべてのデータを再バインドするのではなくて、それは実際にはやりかたのやり方です。)あるいは、DataGridViewに列を追加するソリューション実際のクラスには存在しません。DataGridViewではプロパティを表示できますが、PropertyGridでは表示されませんか?
答えて
PropertyGridのBrowsableAttributesプロパティを使用してこの問題を解決することは可能です。 まず、このような新しい属性を作成します。そして、あなたはあなたのPropertyGridのに示すことにしたいすべてのこれらのプロパティには、この属性を追加
public class PropertyGridBrowsableAttribute : Attribute
{
private bool browsable;
public PropertyGridBrowsableAttribute(bool browsable){
this.browsable = browsable;
}
}
を:
[DisplayName("First Name"), Category("Names"), PropertyGridBrowsable(true)]
public string FirstName {
get { return ... }
set { ... }
}
次に、このようBrowsableAttributesプロパティを設定します。
myPropertyGrid.BrowsableAttributes = new AttributeCollection(
new Attribute[] { new PropertyGridBrowsableAttribute(true) });
これはプロパティグリッドの属性付きプロパティのみを表示し、DataGridViewは引き続きすべてのプロパティにアクセスできますもう少し多くのコーディング努力が必要です。
私はまだTergiverに行って、この動作をバグと呼びます。Browsable属性のドキュメントでは、プロパティウィンドウのみの使用が明示されているためです。
(クレジットはhttp://www.mycsharp.de/wbb2/thread.php?postid=234565でユーザー「マロ」に行く)
さて、このプロジェクトに最後に触れてから3ヶ月ですが、これに関連する部分は完全にリファクタリングされていますので、これ以上テストすることはできませんが、この答えはどうにかして受け入れます。私が持っている唯一のもの、そしてそれは見通しです... –
私は数日前に同じ問題を抱えてこれを見つけました。間違いなくチャームのように機能します! しかしこれは非常に興味深いことですが、これはほんの数回しか触られておらず、1人だけが解決策を思いついたようです...今は英語でも利用できます。 – Sebastian
- 1. PropertyGridでインターフェイスプロパティを持つクラスを表示できません
- 2. Scrollviewは表示されますが、スクロールできませんPage
- 3. カスタムAcivityプロパティでPropertyGridのコレクションエディタが表示されない
- 4. RowDefinition MinSizeプロパティが表示されませんでしたか?
- 5. UITableCellのUIImageViewはIBでは表示されますが、Simulatorでは表示されませんか?
- 6. リストビューはエミュレータでは表示されませんが、Androidスタジオでは表示されますか?
- 7. C#コードではVisual Studio 2015でエラーが表示されますが、2013では表示されません
- 8. DataGridviewで表示インデックスを復元できません
- 9. Default.pngはシミュレータで表示されますが、実際のデバイスのiphoneでは表示されませんか?
- 10. jQueryオートコンプリートではコンソールに結果が表示されますが、ドロップダウンでは表示されません。
- 11. phpMyAdminではUTF-8改行が表示されますが、Webページでは表示されません
- 12. Chrome、FirefoxではPDFが表示されますが、IE8では表示されません。
- 13. FirefoxではPDFコンテンツが表示されますが、IEでは表示されません
- 14. NetBeansのデバッグではJPanelが表示されますが、実行モードでは表示されません
- 15. Androidタブーボックスは表示されませんか?なぜこのXMLでは表示されませんか?
- 16. asp.netで表示mvc3が表示されません
- 17. ExtJS 4ツリーパネルのアイテムはFirefoxでは表示されますが、Chromiumでは表示されません
- 18. マージンはOpera、Chrome、IEでは正しく表示されますが、FFでは表示されません
- 19. CSSパディングはFFとChromeでは表示されますが、IE 8では表示されません。
- 20. イメージはIEとChromeでは表示されますが、Firefoxでは表示されません。
- 21. CSS divエリアが表示されません(ファイヤーバグで表示されます)
- 22. C#WinFormsラベルが表示されますが、テキストは表示されません。
- 23. JavaScript - 結果はIEで表示されますが、ChromeやFFでは表示されません
- 24. 画像はエミュレータで表示されますが、実際のデバイスでは表示されません
- 25. ADBannerViewは風景モードで表示されますが、ポートレートモードでは表示されません
- 26. なぜFirefoxでは正しく表示されますが、Chromeでは正しく表示されません
- 27. ウィジェットはエミュレータで表示されますが、実際のデバイスでは表示されません
- 28. 画像はエミュレータで表示されますが、Androidタブレットでは表示されません
- 29. モバイルデバイスではマスターメニューは表示されませんが、タブレットで表示されます
- 30. Stringソースコードにコンストラクタが表示されますが、JavaDocsには表示されません。なぜですか?
彼らは実際に私の質問に答えるとき、私はそれを受け入れるだろう。私の質問の半分は、まったくの見解がありました。 –
私はこれをバグと呼んでいます。 'Browsable'は、それがプロパティウィンドウ内のメンバの可視性を決定すると具体的に述べている。これはDGVとは関係ありません。あなたは接続問題を開くことができますが、それを修正する可能性はまったくゼロです。修正は、間違いなく既存のコードを破ることになります。あなたはここで運が悪いと思う。 – Tergiver
Damn。もちろん、彼らはBrowsableを修正しようとするのではなく、新しいデコレータを追加することができますが、これを行う方法がないことはまだ残念です。あなたはそれがあまり一般的ではないと思うでしょう。 –