or
public
void
LoadData(
int
startIndex,
int
itemCount)
{
var baseQuery = (EntityQuery<T>) Query
.Where(FilterDescriptors);
baseQuery = (EntityQuery<T>) Query.GroupBy(GroupDescriptors);
// Skip needs an order
// if (SortDescriptors.Count == 0)// SortDescriptions.Add(new SortDescription(InitialOrderBy.ToString(), InitialOrderByDirection));
//SortDescriptions.Add(new SortDescription("Sid", ListSortDirection.Ascending));
var resultQuery = (EntityQuery<T>) QueryableExtensions.Take(baseQuery
.Sort(SortDescriptors)
.Skip(startIndex), itemCount);
resultQuery.QueryStrategy =
new
QueryStrategy(FetchStrategy.DataSourceAndCache,
MergeStrategy.PreserveChanges);
resultQuery.ExecuteAsync().Completed += (s, e) => { Load(startIndex, e.Results); };
}
public
class
MyVariable : ViewModelBase, INotifyPropertyChanged
{
public
string
Name {
get
;
set
; }
public
CellValue First {
get
;
set
; }
public
CellValue Second {
get
;
set
; }
public
CellValue Third {
get
;
set
; }
public
string
Remarks {
get
;
set
; }
public
ObservableCollection<MyVariable> ChildCollection {
get
;
set
; }
}
public
class
CellValue : INotifyPropertyChanged
{
public
string
Key {
get
;
set
; }
public
double
? Value {
get
;
set
; }
public
string
Unit {
get
;
set
; }
public
string
Location {
get
;
set
; }
public
bool
IsEditable {
get
;
set
; }
}
<telerik:RadTreeListView x:Name=
"radTreeListView1"
AutoGenerateColumns=
"False"
RowIndicatorVisibility=
"Collapsed"
RowLoaded=
"radTreeListView1_RowLoaded"
RowIsExpandedChanging=
"radTreeListView1_RowIsExpandedChanging"
>
<telerik:RadTreeListView.ChildTableDefinitions>
<telerik:TreeListViewTableDefinition ItemsSource=
"{Binding ChildCollection}"
/>
</telerik:RadTreeListView.ChildTableDefinitions>
<telerik:RadTreeListView.Columns>
<telerik:GridViewDataColumn Header=
"Parameters"
DataMemberBinding=
"{Binding Name}"
IsReadOnly=
"True"
Width=
"auto"
/>
<telerik:GridViewDataColumn Header=
"First Value"
DataMemberBinding=
"{Binding First.Value, Mode=TwoWay}"
DataFormatString=
"{Binding First.Unit, Converter={StaticResource numberConverter}}"
IsReadOnlyBinding=
"{Binding First.IsEditable}"
CellStyleSelector=
"{StaticResource cellStyle}"
Width=
"auto"
/>
<telerik:GridViewDataColumn Header=
"Second Value"
DataMemberBinding=
"{Binding Second.Value, Mode=TwoWay}"
DataFormatString=
"{Binding Second.Unit, Converter={StaticResource numberConverter}}"
IsReadOnlyBinding=
"{Binding Second.IsEditable}"
CellStyleSelector=
"{StaticResource cellStyle}"
Width=
"auto"
/>
<telerik:GridViewDataColumn Header=
"Third Value"
DataMemberBinding=
"{Binding Third.Value, Mode=TwoWay}"
DataFormatString=
"{Binding Third.Unit, Converter={StaticResource numberConverter}}"
IsReadOnlyBinding=
"{Binding Third.IsEditable}"
CellStyleSelector=
"{StaticResource cellStyle}"
Width=
"auto"
/>
<telerik:GridViewDataColumn Header=
"Remarks"
DataMemberBinding=
"{Binding Remarks}"
IsReadOnly=
"True"
Width=
"*"
/>
</telerik:RadTreeListView.Columns>
</telerik:RadTreeListView>public
class
NumberConverter : IValueConverter
{
public
object
Convert(
object
value, Type targetType,
object
parameter, System.Globalization.CultureInfo culture)
{
CellValue cellValue = value
as
CellValue;
if
(cellValue !=
null
&& cellValue.Unit ==
"%"
)
{
return
"{0:p2}"
;
}
else
return
"{0:n2}"
;
}
public
object
ConvertBack(
object
value, Type targetType,
object
parameter, System.Globalization.CultureInfo culture)
{
return
value;
}
}
<telerik:GridViewDataColumn Header=
"First Value"
DataMemberBinding=
"{Binding First.Value, Mode=TwoWay}"
DataFormatString=
"{Binding First, Converter={StaticResource numberConverter}}"
IsReadOnlyBinding=
"{Binding First.IsEditable}"
CellStyleSelector=
"{StaticResource cellStyle}"
Width=
"auto"
/>
<telerik:GridViewDataColumn Header=
"Second Value"
DataMemberBinding=
"{Binding Second.Value, Mode=TwoWay}"
DataFormatString=
"{Binding Second, Converter={StaticResource numberConverter}}"
IsReadOnlyBinding=
"{Binding Second.IsEditable}"
CellStyleSelector=
"{StaticResource cellStyle}"
Width=
"auto"
/>
<telerik:GridViewDataColumn Header=
"Third Value"
DataMemberBinding=
"{Binding Third.Value, Mode=TwoWay}"
DataFormatString=
"{Binding Third, Converter={StaticResource numberConverter}}"
IsReadOnlyBinding=
"{Binding Third.IsEditable}"
CellStyleSelector=
"{StaticResource cellStyle}"
Width=
"auto"
/>
CellValue cellValue = value
as
CellValue;
<
telerik:GridViewCheckBoxColumn MinWidth="60" Width=".5*" IsReadOnly="False" Header="Select" DataMemberBinding="{Binding CHARGEWAIVEDIND, UpdateSourceTrigger=PropertyChanged}" IsFilterable="False" />
The problem I am facing at the moment is that I'm unable to find the triggering event when user changes the value of the checkbox. Currently I am using GridView's CellEditEnded event which is not suitable for this as this event triggers only when user moves the cursor away from the checkbox column. Kindly help me out.