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 Attivo
FROM 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 Region
End
Class
It doesn't work, my CheckBoxes are always unchecked. Can sameone help me please?
Thank you