2016-08-23 107 views
0

在WPF窗口中,將從數據庫加載數據網格視圖。基於來自數據庫的值的按鈕enbale/disable(在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> 

名稱列結合來自數據的基礎上的值的值,和下面的柱含有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,它會綁定到組布爾。