【发布时间】:2019-11-18 00:22:19
【问题描述】:
我的应用程序显示来自数据库的DataGrid 的功能权限。为了实现这一点,我使用了MyToolkit.Controls.DataGrid。现在我想要输出是否用户检查了管理员或更新/删除/创建复选框,然后查看和列表复选框检查反之亦然,并且我想从数据库中设置复选框检查值。
提前致谢。
图片
如果用户检查了创建/更新/删除,那么应该检查相同的行列表和视图
如果用户选中了视图复选框,那么应该选中选中的行列列表
数据网格 xaml
<Toolkit:DataGrid.Columns >
<!--Feature Column-->
<Toolkit:DataGridTemplatedColumn CanSort="False" >
<Toolkit:DataGridTemplatedColumn.Header>
<TextBlock FontSize="16" Foreground="#000000" Width="280" Text="Feature" />
</Toolkit:DataGridTemplatedColumn.Header>
<Toolkit:DataGridTemplatedColumn.CellTemplate>
<DataTemplate >
<TextBlock FontSize="14" Padding="6 0 0 0" Foreground="#333333" Width="280" Text="{Binding featureName}"/>
</DataTemplate>
</Toolkit:DataGridTemplatedColumn.CellTemplate>
</Toolkit:DataGridTemplatedColumn>
<!--Create-->
<Toolkit:DataGridTemplatedColumn Width="180" CanSort="False" >
<Toolkit:DataGridTemplatedColumn.Header>
<Border BorderBrush="Black" BorderThickness="1 0 0 0" >
<TextBlock FontSize="16" Padding="0" Foreground="#000000" Text=" Create" />
</Border>
</Toolkit:DataGridTemplatedColumn.Header>
<Toolkit:DataGridTemplatedColumn.CellTemplate>
<DataTemplate >
<CheckBox Margin="30,0,0,0" Style="{StaticResource CheckBoxStyle1}" x:Name="CBCreate" DataContext="create" Tag ="{Binding featureId}" VerticalAlignment="Center" VerticalContentAlignment="Center" HorizontalAlignment="Left" HorizontalContentAlignment="Left" Checked="CBCreate_Checked" />
</DataTemplate>
</Toolkit:DataGridTemplatedColumn.CellTemplate>
</Toolkit:DataGridTemplatedColumn>
<!--Update-->
<Toolkit:DataGridTemplatedColumn Width="180" CanSort="False" >
<Toolkit:DataGridTemplatedColumn.Header>
<Border BorderBrush="Black" BorderThickness="1 0 0 0" >
<TextBlock FontSize="16" Foreground="#000000" Text=" Update" />
</Border>
</Toolkit:DataGridTemplatedColumn.Header>
<Toolkit:DataGridTemplatedColumn.CellTemplate>
<DataTemplate >
<CheckBox Margin="30 0 0 0" Style="{StaticResource CheckBoxStyle1}" IsChecked="{Binding Update}" x:Name="CBUpdate" DataContext="update" Tag ="{Binding featureId}" VerticalAlignment="Center" VerticalContentAlignment="Center" HorizontalAlignment="Left" HorizontalContentAlignment="Left" />
</DataTemplate>
</Toolkit:DataGridTemplatedColumn.CellTemplate>
</Toolkit:DataGridTemplatedColumn>
<!--Delete-->
<Toolkit:DataGridTemplatedColumn Width="180" CanSort="False" >
<Toolkit:DataGridTemplatedColumn.Header>
<Border BorderBrush="Black" BorderThickness="1 0 0 0" >
<TextBlock FontSize="16" Foreground="#000000" Text=" Delete" />
</Border>
</Toolkit:DataGridTemplatedColumn.Header>
<Toolkit:DataGridTemplatedColumn.CellTemplate>
<DataTemplate >
<CheckBox Margin="30,0,0,0" Style="{StaticResource CheckBoxStyle1}" IsChecked="{Binding Delete}" x:Name="CBDelete" DataContext="delete" Tag ="{Binding featureId}" VerticalAlignment="Center" VerticalContentAlignment="Center" HorizontalAlignment="Left" HorizontalContentAlignment="Left" />
</DataTemplate>
</Toolkit:DataGridTemplatedColumn.CellTemplate>
</Toolkit:DataGridTemplatedColumn>
<!--View-->
<Toolkit:DataGridTemplatedColumn Width="180" CanSort="False" >
<Toolkit:DataGridTemplatedColumn.Header>
<Border BorderBrush="Black" BorderThickness="1 0 0 0" >
<TextBlock FontSize="16" Foreground="#000000" Text=" View" />
</Border>
</Toolkit:DataGridTemplatedColumn.Header>
<Toolkit:DataGridTemplatedColumn.CellTemplate>
<DataTemplate >
<CheckBox Checked="CBView_Checked" Unchecked="CBView_Unchecked" IsChecked="{Binding View}" Indeterminate="CBView_Indeterminate" Margin="30,0,0,0" Style="{StaticResource CheckBoxStyle1}" x:Name="view" DataContext="{Binding featureName}" Tag ="view" AccessKey="{Binding index}" VerticalAlignment="Center" VerticalContentAlignment="Center" HorizontalAlignment="Left" HorizontalContentAlignment="Left" />
</DataTemplate>
</Toolkit:DataGridTemplatedColumn.CellTemplate>
</Toolkit:DataGridTemplatedColumn>
<!--List-->
<Toolkit:DataGridTemplatedColumn Width="180" CanSort="False" x:Name="CLMList" >
<Toolkit:DataGridTemplatedColumn.Header>
<Border BorderBrush="Black" BorderThickness="1 0 0 0" >
<TextBlock FontSize="16" Foreground="#000000" Text=" List" />
</Border>
</Toolkit:DataGridTemplatedColumn.Header>
<Toolkit:DataGridTemplatedColumn.CellTemplate>
<DataTemplate >
<CheckBox x:FieldModifier="public" IsChecked="{Binding List}" Margin="30,0,0,0" Style="{StaticResource CheckBoxStyle1}" x:Name="CBList" DataContext="list" Tag ="{Binding featureId}" VerticalAlignment="Center" VerticalContentAlignment="Center" HorizontalAlignment="Left" HorizontalContentAlignment="Left" Unchecked="CBList_Unchecked" Checked="CBList_Checked" />
</DataTemplate>
</Toolkit:DataGridTemplatedColumn.CellTemplate>
</Toolkit:DataGridTemplatedColumn>
</Toolkit:DataGrid.Columns>
</Toolkit:DataGrid>
【问题讨论】:
-
我想
IsChecked的绑定值不正确。可以用 github 为我分享一个迷你样本。我将根据您的演示进行编辑。 -
是的,我正在尝试从后面的代码中绑定真假值 :( 好的,我将上传 Datagrid 代码。
-
github 链接 := github.com/patilketan888/Scan-Image-in-UWP.git 下载 DataGrid Checkbox 演示
-
我测试了你的代码,但我没有发现问题如果用户选中了管理员读取复选框然后自动选中更新和删除复选框。
-
对不起 :( 其实我想要这个输出
标签: win-universal-app uwp-xaml xamarin.uwp