基于Database -WPF

时间:2016-08-23 12:08:34

标签: c# wpf button data-binding 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应该设置它们 是启用属性! 我怎么能做到这一点?

先谢谢

2 个答案:

答案 0 :(得分:1)

您需要从按钮启动绑定到适当的属性:

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

答案 1 :(得分:1)

你应该(在DB中提供你的值是一个布尔值),使用绑定来设置状态。

例如:

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

然后当您使用类的列表设置ItemSource时,它将绑定到set boolean。