<
UserControl.Resources
>
<
t:ContainerBindingCollection
x:Name
=
"TreeListViewRowBindings"
>
<!--<t:ContainerBinding PropertyName="IsSelected" Binding="{Binding IsSelected, Mode=TwoWay}" />-->
<
t:ContainerBinding
PropertyName
=
"IsExpanded"
Binding
=
"{Binding Mode=OneWay, Path=isExpanded}"
/>
</
t:ContainerBindingCollection
>
I have tried with "Path" and not. isExpanded is a property on my Model (which I hate because it's GUI), will change to a converter if I can get it working.
<
t:RadTreeListView
x:Name
=
"CommodityGridView"
ItemsSource
=
"{Binding Path=ParentLines, Mode=TwoWay, NotifyOnValidationError=True}"
ColumnWidth
=
"Auto"
HorizontalAlignment
=
"Stretch"
VerticalAlignment
=
"Stretch"
EnableColumnVirtualization
=
"True"
RowIndicatorVisibility
=
"Collapsed"
ShowGroupPanel
=
"False"
AutoGenerateColumns
=
"False"
CanUserFreezeColumns
=
"False"
CanUserInsertRows
=
"False"
CanUserDeleteRows
=
"False"
t:ContainerBinding.ContainerBindings
=
"{StaticResource TreeListViewRowBindings}"
KeyUp
=
"CommodityGridView_KeyUp"
IsBusy
=
"{Binding IsBusy}"
>
So what am I doing wrong?
14 Answers, 1 is accepted
<
t:RadTreeListView.RowStyle
>
<
Style
TargetType
=
"t:TreeListViewRow"
>
<
Setter
Property
=
"u:SetterValueBindingHelper.PropertyBinding"
>
<
Setter.Value
>
<
u:SetterValueBindingHelper
Property
=
"IsExpanded"
Binding
=
"{Binding isExpanded}"
/>
</
Setter.Value
>
</
Setter
>
</
Style
>
</
t:RadTreeListView.RowStyle
>
But if I change the property to IsEnabled, the binding works as expected and doesn't throw an exception. So the problem has to be in the IsExpanded.
Oh yeah, I also attempted to use the style selector but it too throws an exception... RowLoad event shouldn't be my only choice.
Binding to IsExpanded property is not supported and indeed you can use RowLoaded or RowStyleSelector to achieve this. Can you post more info about the exception? Stack trace?
Best wishes,
the Telerik team
Explore the entire Telerik portfolio by downloading the Ultimate Collection trial package. Get now >>
<
u:CommodityRowStyle
x:Key
=
"collapseStyle"
>
<
u:CommodityRowStyle.CollapseStyle
>
<
Style
TargetType
=
"t:TreeListViewRow"
>
<
Setter
Property
=
"IsExpanded"
Value
=
"False"
/>
<
Setter
Property
=
"Background"
Value
=
"Green"
/>
</
Style
>
</
u:CommodityRowStyle.CollapseStyle
>
<
u:CommodityRowStyle.ExpandedStyle
>
<
Style
TargetType
=
"t:TreeListViewRow"
>
<
Setter
Property
=
"IsExpanded"
Value
=
"True"
/>
<
Setter
Property
=
"Background"
Value
=
"Red"
/>
</
Style
>
</
u:CommodityRowStyle.ExpandedStyle
>
</
u:CommodityRowStyle
>
<
t:RadTreeListView
x:Name
=
"CommodityGridView"
ItemsSource
=
"{Binding Path=ParentLines, Mode=TwoWay, NotifyOnValidationError=True}"
ColumnWidth
=
"Auto"
HorizontalAlignment
=
"Stretch"
VerticalAlignment
=
"Stretch"
EnableColumnVirtualization
=
"True"
RowIndicatorVisibility
=
"Collapsed"
ShowGroupPanel
=
"False"
AutoGenerateColumns
=
"False"
CanUserFreezeColumns
=
"False"
CanUserInsertRows
=
"False"
CanUserDeleteRows
=
"False"
KeyUp
=
"CommodityGridView_KeyUp"
RowStyleSelector
=
"{StaticResource collapseStyle}"
IsBusy
=
"{Binding IsBusy}"
>
StyleSelector:
public class CommodityRowStyle : StyleSelector
{
public override Style SelectStyle(object item, DependencyObject container)
{
if (item is FreightParentLineModel)
{
FreightParentLineModel parent = item as FreightParentLineModel;
if (parent.children.Count > 1)
{
return ExpandedStyle;
}
else
{
return CollapseStyle;
}
}
return null;
}
public Style CollapseStyle { get; set; }
public Style ExpandedStyle { get; set; }
}
I get a Visual Studio Just-In-Time Debugger unhandled Error 4004, NULLReferenceException, object reference not set...
If I comment out the IsExpanded attribute, the colors are bound as expected.
Can you post the exception stack trace?
Best wishes,Vlad
the Telerik team
Explore the entire Telerik portfolio by downloading the Ultimate Collection trial package. Get now >>
Call Stack:
> System.ServiceModel.dll!System.ServiceModel.AsyncResult.Complete(bool completedSynchronously) + 0x11b bytes
System.ServiceModel.dll!System.ServiceModel.Channels.HttpOutput.WebRequestHttpOutput.GetOutputStreamAsyncResult.OnGetRequestStream(System.IAsyncResult result) + 0x97 bytes
System.Windows.dll!System.Net.Browser.BrowserHttpWebRequest.InvokeGetRequestStreamCallback.AnonymousMethod__7(object state2) + 0x14 bytes
mscorlib.dll!System.Threading.QueueUserWorkItemCallback.WaitCallback_Context(object state) + 0x3d bytes
mscorlib.dll!System.Threading.ExecutionContext.Run(System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, object state, bool ignoreSyncCtx) + 0x97 bytes
mscorlib.dll!System.Threading.QueueUserWorkItemCallback.System.Threading.IThreadPoolWorkItem.ExecuteWorkItem() + 0x5b bytes
mscorlib.dll!System.Threading.ThreadPoolWorkQueue.Dispatch() + 0x199 bytes
mscorlib.dll!System.Threading._ThreadPoolWaitCallback.PerformWaitCallback() + 0x5 bytes
[Native to Managed Transition]
[Appdomain Transition]
[Native to Managed Transition]
Disassembly:
00000000 push ebp
00000001 mov ebp,esp
00000003 push edi
00000004 push esi
00000005 push ebx
00000006 sub esp,28h
00000009 mov esi,ecx
0000000b lea edi,[ebp-2Ch]
0000000e mov ecx,7
00000013 xor eax,eax
00000015 rep stos dword ptr es:[edi]
00000017 mov ecx,esi
00000019 xor eax,eax
0000001b mov dword ptr [ebp-18h],eax
0000001e mov dword ptr [ebp-24h],ecx
00000021 mov ecx,edx
00000023 mov eax,dword ptr [ebp-24h]
00000026 cmp byte ptr [eax+1Ah],0
0000002a jne 0007847C
00000030 mov eax,dword ptr [ebp-24h]
00000033 mov byte ptr [eax+18h],cl
00000036 movzx eax,cl
00000039 test eax,eax
0000003b je 00000046
0000003d mov eax,dword ptr [ebp-24h]
00000040 mov byte ptr [eax+1Ah],1
00000044 jmp 00000090
00000046 mov eax,dword ptr [ebp-24h]
00000049 mov edx,dword ptr [eax+14h]
0000004c mov dword ptr [ebp-28h],edx
0000004f mov ecx,edx
00000051 call FFF63EF8
00000056 mov eax,dword ptr [ebp-24h]
00000059 mov byte ptr [eax+1Ah],1
0000005d cmp dword ptr [eax+10h],0
00000061 je 00000070
00000063 mov eax,dword ptr [ebp-24h]
00000066 mov ecx,dword ptr [eax+10h]
00000069 cmp dword ptr [ecx],ecx
0000006b call FFF64248
00000070 mov dword ptr [ebp-1Ch],0
00000077 mov dword ptr [ebp-18h],0FCh
0000007e push 9A03703h
00000083 jmp 00000085
00000085 mov ecx,dword ptr [ebp-28h]
00000088 call FFF63F00
0000008d pop eax
0000008e jmp eax
00000090 mov eax,dword ptr [ebp-24h]
00000093 cmp dword ptr [eax+4],0
00000097 je 0000011B
0000009d xor edx,edx
0000009f mov dword ptr [ebp-2Ch],edx
000000a2 mov eax,dword ptr [ebp-24h]
000000a5 mov ecx,dword ptr [eax+4]
000000a8 mov edx,eax
000000aa mov eax,dword ptr [ecx+0Ch]
000000ad mov ecx,dword ptr [ecx+4]
000000b0 call eax
000000b2 mov dword ptr [ebp-1Ch],0
000000b9 mov dword ptr [ebp-18h],0FCh
000000c0 push 9A036B8h
000000c5 jmp 000000C7
000000c7 cmp dword ptr [ebp-2Ch],0
000000cb je 000000D5
000000cd xor ecx,ecx
000000cf call dword ptr ds:[09938530h]
000000d5 pop eax
000000d6 jmp eax
000000d8 mov dword ptr [ebp-18h],0
000000df jmp 0000011B
000000e1 mov dword ptr [ebp-30h],eax
000000e4 mov ecx,eax
000000e6 call FFFFC380
000000eb test eax,eax
000000ed je 000000F4
000000ef call FFF651A0
000000f4 mov edx,9931000h
000000f9 mov ecx,7000067Ch
000000fe call FFF65150
00000103 mov ecx,eax
00000105 call FFFEC5E0
0000010a mov ecx,eax
0000010c mov edx,dword ptr [ebp-30h]
0000010f call FFFF5EF0
00000114 mov ecx,eax
00000116 call FFF65158
0000011b lea esp,[ebp-0Ch] <---------
0000011e pop ebx
0000011f pop esi
00000120 pop edi
00000121 pop ebp
00000122 ret
00000123 mov dword ptr [ebp-18h],0
0000012a jmp 00000090
0000012f mov ecx,9A5A560h
00000134 call FFEECD5B
00000139 mov dword ptr [ebp-34h],eax
0000013c mov ecx,eax
0000013e call FFEF2ABB
00000143 mov ecx,dword ptr [ebp-34h]
00000146 call FFEECE0B
0000014b int 3
{System.NullReferenceException: Object reference not set to an instance of an object.
at Telerik.Windows.Controls.GridView.GridViewItemContainerGenerator.MoveToPosition(GeneratorPosition position, GeneratorDirection direction, Boolean allowStartAtRealizedItem, GeneratorState& state)}
StackTrace:
at Telerik.Windows.Controls.GridView.GridViewItemContainerGenerator.MoveToPosition(GeneratorPosition position, GeneratorDirection direction, Boolean allowStartAtRealizedItem, GeneratorState& state)
Generally, setting the IsExpanded property of the TreeListViewRow in row style selector is not quite good way to go. You may try to set it in the style selector. I am sending you a sample project illustrating the suggested approach.
Maya
the Telerik team
Explore the entire Telerik portfolio by downloading the Ultimate Collection trial package. Get now >>
Currently I am using version 2011.2.920.1040 - with this version the demo project from Maya is not working! Any help? Thanks a lot in advance!!! Tim.
I am sending you an updated version of the sample that should work with the version you are using.
Let me know whether in case you need any further assistance.
Maya
the Telerik team
Explore the entire Telerik portfolio by downloading the Ultimate Collection trial package. Get it now >>
thanks a lot for the updated project! It helped me a lot! Unfortunately I've used
<
Style
x:Key
=
"EmptyStyle"
TargetType
=
"telerik:GridViewToggleButton"
telerik:StyleManager.BasedOn
=
"Windows7"
>
<
Setter
Property
=
"PresentationMode"
Value
=
"PlusMinus"
/>
</
Style
>
All the best and greetings,
Tim.
I have tested the case and once I set the style to HierachyExpandButtonStyle and everything works as expected. I am attaching the sample project so that you can use it for a reference.
Maya
the Telerik team
Explore the entire Telerik portfolio by downloading the Ultimate Collection trial package. Get it now >>
thanks a lot for your answer! Until now, I didn't succeed to change the HierarchyExpandButtonStyle although my project now is more or less equal with your sample project. I'll need to further investigate - only wanted to say thanks and let you know that I appreciate your input! I'll post an update when I got it running...
All the best,
Tim.