2011-12-29 6 views
0

ビジネスオブジェクト(MyBusinessObject)内のプロパティに属性を適用できるかどうかは、グリッドのDataSource List(Of MyBusinessObject)に設定すると、列のvisibleプロパティは自動的にfalseになります。例:データオブジェクトの後に列が表示されないようなビジネスオブジェクトのプロパティに属性を適用する

myGrid.DataSource = New List(Of MyBusinessObject) 

Public Class MyBusinessObject 

    'I want these three columns to be visible after data binding 

    <DisplayName("Property 1")> _ 
    Public Property MyProperty1 As String 
    <DisplayName("Property 2")> _ 
    Public Property MyProperty2 As Integer 
    <DisplayName("Property 3")> _ 
    Public Property MyProperty3 As String 

    'I want this column to have Visible = False after data binding 

    Public Property MyProperty4 As Integer 

End Class 

これは意味があると思います。ありがとう!

EDIT:私はまだMyProperty4がデータバインドされることを望みますが、私は列を表示したくないと思います。

答えて

2

クラス内でBrowsableAttribute<Browsable(False)>)属性を使用すると、必要なものを達成することができますが、これは属性の「ラベル外使用」と考えられます。

これがあなたのニーズを満たしていない場合は、独自の属性を作成し、バインドされたタイプのリフレクションを使用して、非表示にする列を決定して非表示にする必要があります。

更新

また、このようなインフラジスティックスまたはTelerik(我々が使用するだけで2、彼らの選択の他に理由がない)などのサードパーティのグリッドコントロールを、検討する必要があります。これにより、このようなタスクを実行するのがはるかに簡単になります。

+0

ありがとうございます。私が実際に列をグリッドにバインドしないので、ブラウズ可能(False)は実際には私の状況では機能しません。カスタム属性を作成して結果を投稿するという2番目の提案を使用します。ありがとう。 – crunchy