2016-08-23 22 views
0

WPFウィンドウでは、データグリッドビューがデータベースからロードされます。データベースからの値に基づいてエンベロープ/ディセーブル(Datagridビュー内)-WPF

このデータグリッドビューの設計コードである(これは、2列含まれている - 名前、アクション)。

<DataGrid x:Name="dgrid" HorizontalAlignment="Left" Margin="0,65,0,0" VerticalAlignment="Top" > 
     <DataGrid.Columns> 
      <DataGridTextColumn Header="Name" Binding="{Binding Name}" Width="160"></DataGridTextColumn> 
      <DataGridTemplateColumn Header="Action" Width="*"> 
       <DataGridTemplateColumn.CellTemplate> 
        <DataTemplate> 
         <StackPanel Orientation="Horizontal"> 
          <Button Name="btnEdit" Content="Edit" /> 
          <Button Name="btnDelete" Content="Delete" /> 
          <Button Name="btnActivate" Content="Activate" /> 
          <Button Name="btnDeactivate" Content="Deactivate" /> 
         </StackPanel> 
        </DataTemplate> 
       </DataGridTemplateColumn.CellTemplate> 
      </DataGridTemplateColumn> 

     </DataGrid.Columns> 
    </DataGrid> 

Name]列には、データベース値から値を結合し、そしてカラムを、以下の4つのボタンが含まれています!私はこれを行うために必要なもの enter image description here

、(たとえば、活性化状態のための)データベースの別の列の値に基づいて、btnActivateは、btnDeactivateは彼らの プロパティを有効にしている設定する必要があります! これをどのように達成できますか?あなたのボタンから適切なプロパティへの結合を開始する必要が

答えて

1

事前に

ありがとう:

<Button Name="btnEdit" 
      Content="Edit" 
      IsEnabled="{Binding DataContext.ActivationStatus, Converter={StaticResource MyStatusToBooleanConverter}, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type DataGridRow}}}" /> 
1

あなたがすべきである(DBにあなたの価値を提供し、ブールである)は、使用バインディングは状態を設定します。例えば

<Button Name="btnActivate" Content="Activate" IsEnabled="{Binding ClassPropertyType}" /> 

そして、あなたはあなたのクラスのリストを使用してItemSourceを設定するときに、それがセットブールにバインドします。

関連する問題