2011-07-20 18 views
7

(XAMLのみで)プロパティに結合する私はオブジェクトの束を表示するデータグリッドを持っています。それらのオブジェクトはプロパティーIsDetailsExpandedを持っていて、DataRowsのDetailsVisibilityプロパティーをそのプロパティーにバインドしたいとします。WPFのDataGrid RowDetails可視性

私の最初のアプローチは動作しますが、いくつかのコードビハインドが必要です(私は取り除くしたいもの)

私はLoadingRowイベント

void LoadingRowHandler(object sender, DataGridRowEventArgs e) 
{ 
    Binding b = new Binding() 
    { 
     Source = e.Row.DataContext, 
     Path = new PropertyPath("IsExpanded"), 
     Converter = (IValueConverter)Resources["BoolToVisi"], 
     Mode = BindingMode.TwoWay 
    }; 
    e.Row.SetBinding(DataGridRow.DetailsVisibilityProperty, b); 
} 

を扱う私は達成する方法がなければならないと思います何かXAMLに似ていますが、私は残念ながら私は少しでも手掛かりがありません。何か案は?提案?

答えて

14

あなたはそうのように、DataGridRowタイプにStyleを使用することができます。まさに

<DataGrid Name="dataGrid1" Margin="12,12,0,0"> 
    <DataGrid.RowStyle> 
     <Style TargetType="DataGridRow"> 
      <Setter Property="DetailsVisibility" Value="{Binding IsExpanded, Converter={StaticResource BoolToVisi}}" /> 
     </Style> 
    </DataGrid.RowStyle> 
</DataGrid> 
+0

。それはxamlの方法です。 OnlyプロパティはDetailsVisibilityと等しい必要があります。 –

+0

@Yiğit - 私のコピーと貼り付けエラーを指摘してくれてありがとう:-) – CodeNaked

+0

時には私はこのコメント機能を悪用し、いくつかのランダムなスマイリーを落としたいと思うことがあります。 :))))) –