Hi, I have a RadGridView with a column having a checkbox inside that I should use to activate or deactivate the user. I retrieve the rows of my radgridview from a query in sqlserver. The problem is with the checkbox column: I can't get the checkbox checked based on the value in my sql column (bit). This is how I retrive the rows:
Dim dt As New DataTable Using sqlCon = New SqlConnection(ConnectionStringRemote) sqlCon.Open() Dim cmd = New SqlCommand("", sqlCon) cmd.CommandText = "SELECT MA_Carriers.Carrier, MA_Carriers.CompanyName, ISNULL(STRT_CarriersManager.Activated,0) AS AttivoFROM STRT_CarriersManager RIGHT OUTER JOIN MA_Carriers ON STRT_CarriersManager.Carrier = MA_Carriers.Carrier WHERE MA_Carriers.Disabled=0" Dim sda = New SqlDataAdapter(cmd) sda.Fill(dt) gridCarriers.ItemsSource = dt End Using
And this is the XAML:
<UserControl x:Class="CarriersManager" xmlns:local="clr-namespace:Dalessio_Logistics" xmlns:telerik="http://schemas.telerik.com/2008/xaml/presentation" xmlns:sys="clr-namespace:System;assembly=mscorlib" mc:Ignorable="d" d:DesignHeight="500" d:DesignWidth="1100" Background="White"> <UserControl.Resources> <local:BoolConverter x:Key="BoolConverter" /> </UserControl.Resources> <StackPanel Margin="0,0,0,0" Height="auto" HorizontalAlignment="Stretch"> <StackPanel x:Name="panelTitle" Height="50" VerticalAlignment="Top" DockPanel.Dock="Top" Orientation="Horizontal" HorizontalAlignment="Stretch"> <telerik:Label Content="Gestione operatori:"/> </StackPanel> <StackPanel x:Name="spContent"> <telerik:RadGridView x:Name="gridCarriers" AutoGenerateColumns="False" CanUserInsertRows="False" CanUserDeleteRows="False" RowIndicatorVisibility="Collapsed" ShowGroupPanel="False" IsReadOnly="False" Height="{Binding ActualHeight, RelativeSource={RelativeSource AncestorType={x:Type Window}}}" SelectionMode="Extended" SelectionUnit="FullRow" CanUserReorderColumns="False" FontFamily="Source Sans Pro Semibold" FontSize="14" GridLinesVisibility="Horizontal" IsFilteringAllowed="True" ShowSearchPanel="True" RowHeight="45"> <telerik:RadGridView.Columns> <telerik:GridViewDataColumn x:Name="Carrier" UniqueName="Carrier" Header="Carrier" IsReadOnly="True" Width="150" DataMemberBinding="{Binding Carrier}"/> <telerik:GridViewDataColumn x:Name="CompanyName" Header="CompanyName" IsReadOnly="True" DataMemberBinding="{Binding CompanyName}" Width="*"/> <telerik:GridViewColumn Header="Attivo"> <telerik:GridViewColumn.CellTemplate> <DataTemplate> <CheckBox IsChecked="{Binding Path=Attivo, Converter={StaticResource BoolConverter}}" Checked="CheckBox_Checked" Unchecked="CheckBox_Unchecked"/> </DataTemplate> </telerik:GridViewColumn.CellTemplate> </telerik:GridViewColumn> </telerik:RadGridView.Columns> </telerik:RadGridView> </StackPanel> </StackPanel></UserControl>And this is the BoolConverter : IValueConverter
Public Class BoolConverter Implements IValueConverter#Region "IValueConverter Members" Public Function Convert(value As Object, targetType As Type, parameter As Object, culture As System.Globalization.CultureInfo) As Object Implements IValueConverter.Convert If targetType <> GetType(Boolean) Then Throw New InvalidOperationException("The target must be a boolean") End If Return CBool(value) End Function Public Function ConvertBack(value As Object, targetType As Type, parameter As Object, culture As System.Globalization.CultureInfo) As Object Implements IValueConverter.ConvertBack Throw New NotSupportedException() End Function#End RegionEnd Class
It doesn't work, my CheckBoxes are always unchecked. Can sameone help me please?
Thank you