Mini Kabibi Habibi

Current Path : C:/Users/Public/Documents/DXperience 13.1 Demos/WPF/Bin/
Upload File :
Current File : C:/Users/Public/Documents/DXperience 13.1 Demos/WPF/Bin/GridDemo.exe

MZ����@���	�!�L�!This program cannot be run in DOS mode.

$PEL�E�Q��!F"  "@ �"@��"S "�B�"�"  H.text�! �! `.rsrc�B "D�!@@.reloc�"*"@B�"H�x��(����~-
�rp�rCp�rep�r�p�r�p�*0^r�p�
{
o.
�{o/
(0
-+��{o.
�{o.
�(1
*0{o2
(3

/**{*0`r�p}r�p}	(4
({�s5
o6
{�s5
o7
{�s8
o9
{
�s8
o9
{�s5
o:
{�s5
o:
{�s5
o:
((({
~o;
{{o<
{{o=
t(>
o?
{{o=
t(>
o?
{{o=
t(>
o?
(*(*0�{	(@
-*{oA
sB

{	oC
�&�oD
oE
r�p(F
9�oD
oG
�#;�oH
{
�o<
{�(I
�sJ
oK
{{o/

(0
�sJ
oK
{�o<
{�o<
(* .08(	(
1'{oA
{~�(L
o?
*0(

rp{o.
(M
*0Yr&p{
o.
(L

{o/
(0
-,rxp{
o.
{o.
{o.
(N

*(*0{o/
(0

(
*~{�oA
{�oA
*�{{o.
{(F
oA
*(*J{{o<
*"(*"(*r(
(-*s(*(*0I(
(-*{	(O
sP

r�p(oQ
�
,oR
��&�(S
* 3
0?0e(T

(U
(V
sW
oX
oY
�&~~(Z
&���(V
��
,oR
��**('.G8Q
0$	{,*}r�ps]

(^
*0k
YE,9FS`mz����������8tC}
*tD}*tE}*tF}
*tE}*tF}*tG}*tH}*tH}*tE}*tF}*tE}*tI}*tE}*tE}*tF}*t+}*t+}*t+}*t@}*}*0&
sv
oz(+�,oR
�&�*
V(a
} }!*0�{ (U
oV
{ o	sv}"({ ~ob
{!,@{"r6pж(c
od
rPp(M
�oe
&{"of
�&�(!*D=�0E{"og
-{"oh
(+{"oi
oX
( -((*�{"rlpж(c
od
(L
�oe
&*0Cr�	p(r�	p(r
p(r
p(r
p({"of
*�{"r/
pж(c
od
(j
�oe
&*0|{"oi
ry
pok

ol
om

+6	on
tPr�
poo
tж(c
od
(F
,� 	op
-��	u',oR
�**"Bd0�{ od[
-{ o
{+Z{"oz(�oq
]-<{"of
{ odZ{ o[lor
{ oos
X{ o/{dX2�}{ o2"{"of
{"ot
{ o*{ ou
�!sv
ow
&*J�@,+�A*J�A-+�@*(a
*(x
*
*0Jt�=(c
�=�=(y
(F
,2 �(z
s{
*(z
s{
*s|
z(x
*
*J�A-+�*J�,+�A*J�A-+�D*.r�
ps}
z(a
*08
-*tr�
pr�
po~

r�
prp(M
(
(�
*s|
z(a
*n,r%po�
rup(M
**s�
z(a
*0Su�
-*~#o�o�
,~#o�o�
*o�(�
~#o�o�
*.s�
�#*(�
*J�A-+�*s|
z(a
*�-*�,3r�p*�,-r�p**s|
z(a
*^(�
#��A*Z(�
-+ ^�*(a
*0D�
(�
-*(�
E+r�p*r�p*r�p**s|
z(a
*0:�
(�
-*(�
E+r�p*r�p**s|
z(a
*0N�
(�
-*(�
E+r�p*r�p*r�p*rp**s|
z(a
*
*2tLo=
*(a
*0Vo�
~$o�
+$(�

o�
,rprp(M
�(�
-���oR
�**1DF-*t(N*s|
z0Os�

rypo�
r�po�
r�po�
r�po�
r�po�
r�po�
�$*(a
*�-*r�ptr�
p~-
o~
rp(M
*s|
z(a
*{%*"}%*�-*t(V(F
-rA
p*rO
p*s|
z(a
*0�,uU-��*�U
(�
(�
(�
2	(�
+
(�
X(�
2	(�
+
(�
X
	(�
(�
27	03(�
(�
(�
.+(�
(�
(�
�-+��*s|
z(a
*~-*u�-u��+�A*s|
z(a
*{&*"}&*r��(aa-+��*s|
z(a
*2(�
�O*2(3
�*(a
*F(�
(�
�O*F(�
(�
�O*
*(x
*6(�
(n*0$	{',*}'rY
ps]

(^
*"}'*{(*"}(*0�(�

s�
(�
om
+Won
tP
r�
p(F
-	r�
poo
t(F
,%	r�
poo
�o�
3	suo�
op
-��u',oR
�*d~0�(�

s�
om
+Zon
tP

0Qr�
p(F
-	r�
poo
t(F
,#	r�
poo
�3	suo�
Xop
-��u',oR
�*g}0�(�

s�
om
8\on
tPr�
p(F
-r�
poo
t(F
9'r�
poo
�@s�

	r
poo
uo�
	rpoo
uo�
	r'poo
uo�
	r�
poo
uo�
	r7poo
�T(�
o�
	rIpoo
�[o�
	repoo
�[o�
	rupoo
�Uo�
	r�
poo
�o�
	r�poo
uo�
	r�poo
�o�
	r�poo
uo�
	r�poo
�Uo�
	r�poo
uo�
	r�poo
�Uo�
	rpoo
uo�
	rpoo
uo�
	r5poo
uo�
	rGpoo
u(�o�
	r_poo
uo�
	rqpoo
uo�
	r�poo
uo�
	r�poo
�[o�
	o�
op
:�����u',oR
�*Ao�0B(�
r�
poo
u(�
r�
poo
�(�
repoo
�[(�
rupoo
�U(�
r�
poo
�(�
r�poo
�U(�
rpoo
u(�
r5poo
u(�
rGpoo
u(�(�
r_poo
u(�
rqpoo
u(�
r�poo
u(�
r�poo
�(�
(�
(�
(t(q*{)*"})*0Aom
+on
tP
o�
,�op
-��u'
	,	oR
�**%,(a
*(a
*0\r�
poo
t{Hr�
poo
t(F
,.{G{Er�poo
�o�
{G{F�**0�sC}F(�

(�
(�
}Es�
om
+Non
tP
sD}G	}H�Es�
(x,	{Fs{o�
op
-��u',oR
�*5[�(a
*(a
*0Lr�
poo
t{Kr�
poo
t(F
,r�
poo
�{J{I�**0�sF}I(�

(�
s�
om
+Non
tP
sG}J	}K�Hs�
(x,	{Is{o�
op
-��u',oR
�*)[�0!(�
r
poo
u(�
rpoo
u(�
r�poo
u(�
r�poo
u(�
r	poo
u(�
r'poo
u(�(�
r�
poo
u(�
r#poo
u(�
r+poo
u(�
r�poo
u(�
r�poo
u(�
-(�
(s+(�
(r(w*J(�
(�(�
*J(�
(�(�
*�{*-(�
(z}*{**�{+-r�
p(�
(s}+{+*�{,-(�
(y},{,*�{--r�
p(�
(r}-{-*n{.-(�}.{.*o�
*0 s�
o�
o�(+o�*0(�~2-��s�
�2~2(+~3-��s�
�3~3(+(+
o�
8�o�
s�
o�o�
+Vo�

	opo�
+(o�
o�
(�
o�
(�
(�
op
-��,oR
�op
-��,oR
�(�
o�op
:]����,oR
�*(�5�yc�X�{/*"}/*0J(�

s�
o�

+(�
s�o�
(�
-���)oR
�(�*!4{0*"}0*(a
*>o�{L�*0Zo�
+7(�

sIo�
}L�Js
(+(+o�(
-���*oR
�*DK0M(

s�
om

+	on
tPs�o�
	op
-��	u',oR
�*$70g(
r
poo
u(
r7poo
�U(
rpoo
u(
r'poo
u(
r�
poo
�(	
rKpoo
u(

r_poo
u(
rspoo
�U(
r�poo
u(

r�poo
u(
r�poo
u(
r�poo
t,(
r�poo
t(
r�poo
u(
r�poo
u(
r�poo
u(
*0�(
o
(
o
(
o
(
o
(�(
o
(	
o
(
o
(
o
(

o
(
o
(
o
(
o
(
o 
(�o!
(
o"
(�*{1*"}1*{4*"}4*{5*"}5*{6*"}6*(a
*0/%
,(r�p(F
-r�p(F
-+r�p*rp**0> uT
-*{7o#
-r�
po
(r{7o$
*s|
zJs%
}7(a
*vr7prep(&
('
o(
*frep(&
('
o(
*frep()
('
o(
*�{8-r�p(+}8{8*�{9-r�p(	+}9{9*�{:-r�p(
+}:{:*�{;-r�p(+};{;*�{<-r�p(+}<{<*�{=-r
p(
+}={=*�{>-rp(+}>{>*�{?-r-p(+}?{?*�{@-r=p(+}@{@*�{A-rOp(+}A{A*�{B-rcp(+}B{B*6r�p(+
*6r�p(+
*6r�p(+
*6r�p(+
*6r�p(+
*6r
p(+
*6rp(+
*6r-p(+
*6r=p(+
*6rOp(+
*6rcp(+
*0!s�
o�o�*{C*�{C."r{po/
(0
}Cr{po1
*{D*�r�po/
(2
}Dr�po1
*{E*�r�po/
(2
}Er�po1
*2{F(3
*�r�po/
(4
}Fr�po1
*Zo5
r�prpo+*j,o5
r�prpo+*(8
*0"s�
o�o�*{G*�{G(>
,#r�
po/
(2
}Gr�
po1
*{H*�r�po/
(2
}Hr�po1
*{I*�r�po/
(2
}Ir�po1
*{J*�r	po/
(2
}Jr	po1
*{K*�r
po/
(2
}Kr
po1
*{L*�rpo/
(2
}Lrpo1
*{M*�r�po/
(2
}Mr�po1
*{N*�r�po/
(2
}Nr�po1
*{O*�r'po/
(2
}Or'po1
*{P*�r+po/
(2
}Pr+po1
*{Q*�r#po/
(2
}Qr#po1
*Zo5
rpr
po+*j,o5
rpr
po+*Zo5
repr�po+*j,o5
repr�po+*(8
*0#s�
o�*{R*�{R(>
,#r�po/
(2
}Rr�po1
*{S*�r�po/
(2
}Sr�po1
*Zo5
repr�po+*j,o5
repr�po+*(8
*0$s
o�o�o�*{T*�{T."r�
po/
(0
}Tr�
po1
*{U*�r�po/
(2
}Ur�po1
*{V*�r_po/
(2
}Vr_po1
*{W*�r�po/
(2
}Wr�po1
*{X*�r�po/
(2
}Xr�po1
*{Y*�r7po/
(?
}Yr7po1
*{Z*�rspo/
(?
}Zrspo1
*{[*�r
po/
(2
}[r
po1
*{\*�rpo/
(2
}\rpo1
*{]*�r�po/
(2
}]r�po1
*{^*�r�po/
(2
}^r�po1
*{_*�r'po/
(2
}_r'po1
*{`*�r�po/
(2
}`r�po1
*{a*�rKpo/
(2
}arKpo1
*2{b(3
*�r�po/
(4
}br�po1
*{c*�r�po/
(2
}cr�po1
*{d*�r�po/
(@
}dr�po1
*{e*�r�po/
(2
}er�po1
*Zo5
r
prYpo+*j,o5
r
prYpo+*no5
r
pr�po+oB
*ro5
r
pr�po+oC
*Zo5
r
pr�po+*j,o5
r
pr�po+*Zo5
ropr
po+*j,o5
ropr
po+*Zo5
r�prcpo+*j,o5
r�prcpo +*(8
*0%s@
o*{f*�{f."r�
po/
(0
}fr�
po1
*{g*�r�
po/
(2
}gr�
po1
*{h*�r�
po/
(@
}hr�
po1
*{i*�rupo/
(?
}irupo1
*{j*�r�po/
(?
}jr�po1
*{k*�r�po/
(?
}kr�po1
*{l*�r�po/
(@
}lr�po1
*{m*�repo/
(F
}mrepo1
*{n*�r_po/
(2
}nr_po1
*{o*�rpo/
(2
}orpo1
*{p*�r5po/
(2
}pr5po1
*{q*�r�po/
(2
}qr�po1
*{r*�rqpo/
(2
}rrqpo1
*{s*�rGpo/
(2
}srGpo1
*no5
rpr�po!+oG
*ro5
rpr�po!+oH
*Zo5
rpr�po!+*j,o5
rpr�po"+*no5
ropr�po+oB
*ro5
ropr�po+oC
*Zo5
ropr�po+*j,o5
ropr�po+*Zo5
rpr�po#+*j,o5
rpr�po$+*no5
rapr=po%+oI
*ro5
rapr=po%+oJ
*Zo5
rapr=po%+*j,o5
rapr=po&+*(8
*0,&sT
oCoEoGoIoK*{t*�{t."r�
po/
(0
}tr�
po1
*{u*�{u."r�po/
(0
}ur�po1
*{v*�r�po/
(K
}vr�po1
*{w*�r�po/
(L
}wr�po1
*{x*�r7po/
(M
}xr7po1
*no5
rpr
po'+oN
*ro5
rpr
po'+oO
*Zo5
rpr
po'+*j,o5
rpr
po(+*no5
r�prpo)+oP
*ro5
r�prpo)+oQ
*Zo5
r�prpo)+*j,o5
r�prpo*+*(8
*0'st
oWoYoi*{y*�{y."r�po/
(0
}yr�po1
*{z*�r�po/
(2
}zr�po1
*{{*�r�po/
(@
}{r�po1
*{|*�r{po/
(@
}|r{po1
*{}*�r
po/
(2
}}r
po1
*{~*�r�po/
(F
}~r�po1
*{*�r-po/
(R
}r-po1
*{�*�rGpo/
(R
}�rGpo1
*{�*�rapo/
(R
}�rapo1
*{�*�r{po/
(S
}�r{po1
*no5
r�pr�po++oT
*ro5
r�pr�po++oU
*Zo5
r�pr�po++*j,o5
r�pr�po,+*Zo5
r�pr�po#+*j,o5
r�pr�po$+*no5
r�prOpo-+oV
*ro5
r�prOpo-+oW
*Zo5
r�prOpo-+*j,o5
r�prOpo.+*(8
*0(s|
owoy*{�*�{�."r�po/
(0
}�r�po1
*{�*�r�po/
(2
}�r�po1
*Zo5
rprcpo+*j,o5
rprcpo +*(8
*0)s�
oo�*{�*�{�."r_po/
(0
}�r_po1
*{�*�r�po/
(2
}�r�po1
*{�*�r+po/
(2
}�r+po1
*Zo5
rapr
po+*j,o5
rapr
po+*(8
*0*s�
o�o�*{�*�{�."r�po/
(0
}�r�po1
*{�*�r�po/
(2
}�r�po1
*{�*�r�po/
(2
}�r�po1
*{�*�r	po/
(2
}�r	po1
*{�*�r
po/
(2
}�r
po1
*{�*�rpo/
(2
}�rpo1
*{�*�r�po/
(2
}�r�po1
*{�*�r�po/
(2
}�r�po1
*{�*�r'po/
(2
}�r'po1
*{�*�r+po/
(2
}�r+po1
*{�*�r#po/
(2
}�r#po1
*{�*�rspo/
(2
}�rspo1
*Zo5
r�prpo+*j,o5
r�prpo+*(8
*0+s�
o�o�o�*{�*�{�(>
,#r�po/
(2
}�r�po1
*{�*�r�po/
(2
}�r�po1
*{�*�r�po/
(0
}�r�po1
*no5
rpr�po/+oX
*ro5
rpr�po/+oY
*Zo5
rpr�po/+*j,o5
rpr�po0+*Zo5
r�pr�po+*j,o5
r�pr�po+*(8
*08t
r�p(F
-r�	p(F
-r�	p(F
-+��*s|
z(a
*(Z
*0),{�
([
t\|�(1+
3�*0),{�
(]
t\|�(1+
3�*0Cs�
}�(^
r�p�(�r_pr�
p(�r�pr�
p(�*2{�o_
*>s�o`
&*0-
s�oa
&*0ob
o�

{�oc
*�{�od
o�
oe
od
(�*n{�,{�sf
og
*&(h
*
*&(i
*
*Rt(j
��A*s|
z(a
*{�*N}�r�p(�*{�*N}�r�p(�*n{�,{�sf
og
*0),{�
([
t\|�(1+
3�*0),{�
(]
t\|�(1+
3�*:}�(a
*0.r�
psk

t(l
�*0�
(m
*(a
*0'/t(j
,*t(n
(o

�U*0/-*�U
(n
(p
*(a
*:(q
}�*0'0ti
or
os
rp(F
-*{�*{�*{�*"}�*0q1(�
}�(a
st

(�ou
ov
(�(�ow
r
psx
oy
(�oz
r
ps{
o|
(�o}
&*0),{�
([
t\|�(1+
3�*0),{�
(]
t\|�(1+
3�*n{�,{�sf
og
*Z,	�;.+��*s|
z(a
*0yrp�O(c
�>(c
#�?�Os~
(
��r?p�a(c
�>(c
 � � �(z
�as~
(
��*F~�(�
�O*J~��O(�
*F~�(�
�a*J~��a(�
*(�
*{�*"}�*{�*"}�*{�*"}�*{�*"}�*{�*"}�*{�*"}�*0[2s�
%o�X%o�o�o�o�o�o�o�o�o�o�o�o�*(a
*{�*"}�*{�*"}�*�(���s�
o�
(�~�s�
o�*(a
*{�*"}�*{�*"}�*{�*"}�*{�*"}�*{�*"}�*{�*"}�*0\(�s�
o�
(�
((�(�(�(o�(��io�(o�*(a
*�(a
(	((
((*{�*"}�*{�*"}�*{�*"}�*{�*"}�*{�*"}�*0�%
9�r_p(F
-(r�p(F
-r
p(F
-ErYp(F
-T*r_p(F
-(
+((,yrep(>
(*((,Wr�p(*((,r�p(*(r�p(>
,((-
rp(*�((,-(r�p(F
-((-
r/p(*R,o�
o�
�**�,&r�po�
2o�
r�po�
X�***>o�
o�
*{�*"}�*0N(a
 �(�(2+s�
((�(2+s�
(�s�
s�
(*{�*"}�*{�*"}�*2(o�
*2tDo"*F~�(�
�A*J~��A(�
*v( -r�p+r�p(�
&*�r�p�A(c
�D(c
�A�s�
s�
(
��*(�
*023ut
(�
,#�O*{�
uvo�
*^r�p�O(�
s�
*(a
*.(,ol
*.(-ol
*0k4(�

~�o�
,71~�Po�
(Yl(�

12~�o�
(�

+~�Zo�
ZYl(�

*V~�2o�

X(�
*0?5(�
o�

r�ps�
o�
r'p�(c
o�
&o�
rp�(c
o�
&o�
rup�U(c
o�
&o�
r�p�[(c
o�
&o�
r�p�(c
o�
&8�o�
~�o�
o�
Yo�
o�

o�
�	r'po�
�	rpo�
�(*�U�	r�po�
�	r�po�
�o�
&Xo�
o�
?g���*0(5(�
o�

r�ps�
o�
r�p�(c
o�
&o�
r�p�[(c
o�
&o�
rp�(c
o�
&o�
rup�U(c
o�
&o�
rp�[(c
r%po�
&+xo�
~�o�
o�
Yo�
o�

o�
�	r�po�
�	r�po�
�(+�[�(*�U�o�
&X �2�*.s�
��*(a
*{�*"}�*{�*"}�*07�
rQp�rap�*{�*R|�rsp(3+&*{�*j|�r�p(4+&(<*{�*R|�r�p(5+&*�(�
(
(1(
(3(<}�*v(7,(2+(0(6*V(q
}�}�*0H8tn
o�
o�
-2o�
(�
#��@4{�*#��@7{�**{�*j|�r�p(6+&(M*{�*j|�rp(6+&(M*{�*�|�r[p(5+&(M(N*{�*R|�r�p(5+&*{�*R|�r�p(6+&*{�*R|�r�p(4+&*{�*R|�r�p(4+&*v(C-(?+(A(H*^(C,(J(L*(�
*:(�
}�*�{�r�p�ko�
o(�
*6{�o	*6{�o
*6{�o*6{�o*:(�
}�*6{�o	*6{�o
*6{�o*6{�o*{�*"}�*{�*"}�*V(�
(\(^*z(�
(�
�bs�
o�
*z(�
�bs�
o�
(�
*zo�
o�
s�
(�
&o�
*(�
*0�9t|
-*o�
tPr�poo
~�
3r�
p+r#pr�poo
(L
r/p�
	�	r'poo
�	rpoo
�	r�poo
�	r
poo
�	r+poo
�	(1
*s|
z(a
*{�*"}�*{�*"}�*(a
*�(�
}�}�}�}�}�*
*b{��{�o~*f{��{�o}*{�*{�*.�R(c
*{�**
*{�*"}�*{�*"}�*0(:�Q
(v(v3(x(x�**:(v(xa*�s�
}�(a
 �}� �}�o�*0&:{��Q(y(wo�
*0;
{��Q(y(wo�
,*-	X�*Y]E ;Yn��8�~*~*�i(��o�*~*~*�i(��o�*(�

(�l(�
�U*(�,+�A* '(��*о(c
(�
o�
(���*~8~8�i(��*s|
z0�-rep*Y]
E)6CP+[r
p(�*rqp(�*r�	p(�*r�	p(�*r
p(�*rwp(�*r
p(�*s|
z0-<�
�r�p�X��r�p�(�
*0�-�(c
*Y]
E
#.9D+M�(c
*�(c
*�U(c
*�A(c
*�(c
*о(c
*�(c
*s|
zX]*{�*f/(�3*}�*{�*~/(�3*}�o�*0C=(��P
+((�sl�X(�2�s�
}�*{�*r�
p*(�*
*�A*
*
*
**s|
zs|
zs|
zs|
zs|
zs|
zs|
z�**0�r�p�O(c
�S(c
#�Os~
(�
��r�p�a(c
�S(c
 � � � �(z
�as~
(�
��r�p�O(c
�S(c
#�?�Os~
(�
��*F~�(�
�O*J~��O(�
*F~�(�
�a*J~��a(�
*F~�(�
�O*J~��O(�
*(�
*{�*�s�}�(a
}�}�}�}�}�*{�*"}�*{�*v(�3*}�r�p(�*{�*�(�(F
,*}�r�p(�*{�*v(�3*}�r�p(�*{�*v(�3*}�r�p(�*n{�,{�sf
og
*{�*"}�*0),{�
([
t\|�(1+
3�*0),{�
(]
t\|�(1+
3�*(�
*0r
p�O(c
�V(c
#i@�O��s�
s�
(�
��r+p�O(c
�V(c
#@�@�O��s�
s�
(�
��rWp�(c
�V(c
�s�
(�
��rwp�(c
�V(c

�s�
(�
��r�p�W(c
�V(c
�Ws�
(�
��*0$>uV
o�(�
�O(�
o�
*0$>uV
{�(�
�O(�
o�
*07�
r�p�r�p�r�p�r�p�r�p�r�p�r�p�rp�rp�	r-p�
rAp�r[p�}�s�
}�s�
}�(�
s�}�s�
}�{�#i@(�
o�
{���s�
o�
s�
}�{�#@�@(�
o�
{���s�
o�
}�*{�*{�*�(u
��sv
�o�
&*0A?(�o�
+o�

o�t\o�lo�op
-��
,oR
�**6
(�*�(�,"(�,
{�o�
*{�o�
**R(�,
(��**R(�,
(��**0)@#��@(�
&(�EG�*(�
9�{�{�o�
(0
9�rup(�~�(�*{�>�{�(�>�(�
%{�Y}�{�{�o�
(0
,Mo�r�p(�s�o�o�
	��s�
o�
~�(�*(�*{�1(�(�*�(�o�
&{�o�o�
&*6{�(*�(�
�s�
(�
(�(�
o�
*0jA(�
o�l{� 'o�
o�{�{�o�

(0
,*o�l2r�p+rp(�~�(�*0�B(�
{�<o�
o�{�{�o�
(0
,UrOp(�o�
o�
t�o�
o�
(�o�o�
o�
o�
o�lo�
+:s�
o�
s�

	~�
(�
o�
	o�ls�
o�
	o�
~�(�*0,C(�{�(�o�
o�
o�

o�-�*0�D
{�(�<�{�{�{��io�
�%{�X%}�{� 'o�
{�do�
s�
(�o�lo�(�{�(�o�
o�
o�
%{�X}�*03}�(�o�
}�
+(�&X
(�2�*^(�o�
{�o�
*^(�o�
{�o�
*01E
{�o�o�
-s�
{�o�o�
*F~�(�
�O*J~��O(�
*F~�(�
�O*J~��O(�
*F~�(�
�*J~��(�
*F~�(�
�*J~��(�
*F~�(�
�W*J~��W(�
*{*"}*{	*"}	*J(�(�o�*(a
*0ar�p�\(c
�[(c
��s�
s�
(
�r�p� (c
�[(c
s�
(
�*bt[(�
t\o�*F~(�
t\*6~(�
*F~(�
t *6~(�
*0F(�
(�,(�-*(�
#@Y#@[#�?X(�
i
(�o�
Y(�
8�Y
#3@(�o�
#Y@[Z(�
#@Y#@[#�?X(�
i+J	Zl(�
ZlY#@#@(�
(�o
t�o�
X2�X(�o�
?C���*�,��s�
o�
(�,(���s�
o�
(
*(
*(
*f(
(�
d1(
*(
*{*"}*0C(�
s|(�(�(�(�(�(�(�(�*{*R|r�p(5+&*{*R|r�p(5+&*{*R|r p(5+&*{*R|rE p(5+&*{*R|rs p(5+&*{*R|r� p(5+&*{*R|r� p(5+&*0UGti
o
tco
o
o
o	
r� po

u(j
-o
o
t^**(q
*0�H(

o
X��
r!ps
�+r!p�(
s
�X(

o
X2�(

o
X(

o
Xr1!ps
�(

o
X(

o
Xr� ps
�s�
(
*0~-(
o
o
*(

o
X3(
o
o
*(

o
X3(
o
o
*(

Yo
(
o
o
o�
*(
*
*01I(�

#4#Y@2(
+(
��*s|
z(x
*{*"}*{*"}*{*"}*(*0=J(�
o�
rG!po�
(>
o

(7+1�r�po�
*~-
*s|
z(a
*J(
s
(*{*"}*0MKo�
uTo

(o 
,
(o!
*(Ns]
s"
(o#
*{*"}*{*"}*(a
*{*{ *N} ra!po$
*�(�
}r+p} (�
� s�
s�
(*{!*"}!*
*6t(*(*(*(*(*(*0�s%
�"~&
�k(c
�k(c
s�
o'
r�!p�O(c
�k(c
#�Os~
((
�#~)
�k(c
�'s�
s*
o'
*�tk(�
t|(�
t|o/*J~#�Oo�
*F~#o�
�O*2(+
t|*F(*o,
()*J(*o,
((*N(-
s.
}$*0*L(/
r�!p(0
t�
{$o1
(1*�,�0s�
o2
,�0s�
o3
(1*(1*�(+#3$#�R@#T@~"o4
ZX(,*(+*"(,*�#�r@#4@(+X(5
(6
(,***~7
*0Z~&
�l(c
�l(c
s�
o'
r�!p�O(c
�l(c
#�?�Os~
((
�%*J~%�Oo�
*F~%o�
�O*(-
*�r�!p�g(c
�n(c
(9
�&*z(�
(:
�@s;
(<
*z(:
�@s;
(=
(�
*Z(A-*(Ao>
*F~&(�
tg*6~&(�
*(?
*(�
*{(*"}(*F~'(�
�*J~'�(�
*�rp�(c
�o(c
s@
(�
�'*(A
*:(a
})*
*2{)o�*"(X*"(X*6o�(Z*0_s�}+}0(�
{+�Ns�
o�{+�Os�
o�{+�PsB
o�*:(Q}0*0F(], {0-{+(]oGo�+{+o�{+sK(U*{**v{*3*}*r"po$
*2{+o�*{,*v{,3*},r"po$
*{-*N}-rC"po$
*{.*0Y{.3*}.r�"po$
([,-([oC
1([([oC
[oD
(^*(^*{/*�{/3*}/r�"po$
(S*:}0(S*0X(�
s|(b(d(f(j(h(l(n(p(r(t(v*{;*"};*{1*R|1r�"p(8+&*{2*R|2r�"p(8+&*{3*R|3r�"p(5+&*{4*R|4r1#p(5+&*{5*R|5r[#p(5+&*{6*R|6r�#p(5+&*{7*R|7r�#p(5+&*{8*R|8r�#p(5+&*{9*R|9r'$p(5+&*{:*R|:r_$p(5+&*{<*0*M
~A%(E
~@oF
i�
,(G
�*
0VN|C(H
-{D*|C(I

{?oJ
l(K
[(L
}D{?oM
{D*0�sN
}< �}=(a
�}>sO
}?{?oP
{<r�$ps�oQ
{<r�$ps�oQ
{<r�$ps�oQ
{<r�$ps�oQ
{<r�$ps�oQ
{<r�$ps�oQ
{<r�$ps�oQ
{<r�$ps�oQ
{<r�$ps�oQ
{<r�$ps�oQ
{<r�$ps�oQ
{<r�$ps�oQ
{<r�$ps�oQ
{<r�$ps�oQ
{<r�$ps�oQ
{<r%ps�oQ
{<r%ps�oQ
{<r%ps�oQ
{<r%ps�oQ
{<r!%ps�oQ
{<r)%ps�oQ
{<r1%ps�oQ
{<r7%ps�oQ
{<rA%ps�oQ
{<rE%ps�oQ
{<rO%ps�oQ
{<rY%ps�oQ
{<rc%ps�oQ
{<rk%ps�oQ
{<rs%ps�oQ
{<ry%ps�oQ
{<r�%ps�oQ
{<r�%ps�oQ
{<r�%ps�oQ
{<r�%ps�oQ
{<r�%ps�oQ
{<r�%ps�oQ
{<r�%ps�oQ
{<r�%ps�oQ
{<r�%ps�oQ
{<r�%ps�oQ
{<r�%ps�oQ
{<r�%ps�oQ
{<r�%ps�oQ
{<r�%ps�oQ
{<r�%ps�oQ
{<r�%ps�oQ
{<r&ps�oQ
{<r	&ps�oQ
{<r&ps�oQ
{<r&ps�oQ
{<r!&ps�oQ
{<r)&ps�oQ
{<r3&ps�oQ
{<r;&ps�oQ
{<rC&ps�oQ
{<rK&ps�oQ
{<rS&ps�oQ
{<r]&ps�oQ
{<rc&ps�oQ
{<rk&ps�oQ
{<rs&ps�oQ
{<r{&ps�oQ
{<r�&ps�oQ
{<r�&ps�oQ
{<r�&ps�oQ
{<r�&ps�oQ
{<r�&ps�oQ
{<r�&ps�oQ
{<r�&ps�oQ
{<r�&ps�oQ
{<r�&ps�oQ
{<r�&ps�oQ
{<r�&ps�oQ
{<r�&ps�oQ
{<r�&ps�oQ
{<r�&ps�oQ
{<r�&ps�oQ
{<r�&ps�oQ
{<r�&ps�oQ
{<r'ps�oQ
{<r
'ps�oQ
{<r'ps�oQ
{<r'ps�oQ
{<r#'ps�oQ
{<r+'ps�oQ
{<r3'ps�oQ
{<r;'ps�oQ
{<rE'ps�oQ
{<rM'ps�oQ
{<rU'ps�oQ
{<r]'ps�oQ
{<rg'ps�oQ
{<ro'ps�oQ
{<rw'ps�oQ
{<r'ps�oQ
{<r�'ps�oQ
{<r�'ps�oQ
{<r�'ps�oQ
{<r�'ps�oQ
{<r�'ps�oQ
{<r�'ps�oQ
{<r�'ps�oQ
{<r�'ps�oQ
*0�Os�

(R
{<oS
oT
{<oU
o�|C(V
&oW

{=j	Yj0+(X
~B-%(x0�+ �j1(X
+�(X
+�oY
�{>9k���**�}>*.~@oM
*nsO
�@sa
�A�B*{H*�}H{P,{Pr�'psf
og
*{I*�}I{P,{Pr�'psf
og
*F{J#Y@Z*�}J{P,{Pr�'psf
og
*{K*�}K{P,{Pr�'psf
og
*{L*�}L{P,{Pr�'psf
og
*{M*�}M{P,{Pr�'psf
og
*{N*�}N{P,{Pr(psf
og
*{O*�}O{P,{Pr
(psf
og
*0),{P
([
t\|P(1+
3�*0),{P
(]
t\|P(1+
3�*0E(a
(�(�#��@Z#�u@X(�{K(�(�(�*0_I{O#>@Y(�#��@Z#�������?ZX
#�u@5
#�u@
#��@7
#��@
(�*0�{O}I}O{O{IY{O[}J(�{O{I(5
(5
}L(�{O{I(6
(6
}M(�
}N{P,{Pr�
psf
og
*0/P#
+~Go4
X
X2�#@[*.s�
�G*0�Q(�
sz}QЧ(c
{Qr(p(Z
t�
s[
}R{Ro\
{Q�}>#�?(]

��s�
(^
s_
}SЃ(c
�t(c
r!(p(`
t�#$@(�
(^
s_
}T{Roa
*0)R{U
([
t�|U(9+
3�*0)R{U
(]
t�|U(9+
3�*2{Qoy*N{Q|=(I
&*{V*v{V3*}Vr/(po$
*2{Qow*�(��(�(�,�B*�B*�{Qo|{So�
{To�
*(�*j{U,{U~b
oc
*�rU(p�g(c
�w(c
sd
(�
�W*f(?
��s5
}X*Z(�
(�-*(�*�(:
(�{Xoe
(:
(�{Xof
*r(�-*(�s�o>
*{Y*^}Y(:
-*(�*F~W(�
tg*6~W(�
*{Z*"}Z*{[*"}[*V(a
(�(�*(x
*~g
*^(h
�z(c
(i
*~(a
(�oj
o�
(�*{\*"}\*{]*"}]*s�*00S~^-��sk
�^~^(:+sl

sm
*{a*R|are(p(;+&*{`*R|`ro(p(<+&*{_*R|_r(p(=+&*{b*"}b*{c*"}c*{d*"}d*
*0c(�
��sn
��so
sp
(���sq
sr
(���ss
st
(�su
(�*"��*6(�(�*�,(�ov
ow
�Ao>
*(�ov
ox
o>
*0<T(�oy
+oz

o�o{
o|
op
-��
,oR
�*%1
:(a
}e*{e*>(�}f*F(
{fo}
*>(�}g*{g*(~
*r-�A*�,���A*s|
z(a
*J�����A*J�A-+��*(a
*0AUui
,,o�
(
 �s�
(�
,	(���&�(�
**
)3�{h*"}h*(q
*�(
o�-
o�s�
*(�
*{i*"}i*(�
*Zr�(p(��[(
*Zr�(p(��[(
*6(�(�
*(�*Zr
)p(��[(
*Zre)p(��[(
*6(�(�
*(�*Zr�)p(��[(
*Zr�)p(��[(
*6(�(�
*(�*Zr�)p(��[(
*ZrG*p(��[(
*6(�(�
*(�*Zr{*p(��[(
*Zr�*p(��[(
*j�[(��[(�
�*(�*(�
*{j*v{j3*}jr�*po$
*{k*�}k(�, (�o�
1(�o�
(�*{l*v{l3*}lr�*po$
*{m*v{m3*}mr)+po$
*�(�
(�rC+ps�
s[(*{n*"}n*{o*"}o*{p*"}p*{q*"}q*{r*"}r*{s*"}s*{t*"}t*{u*"}u*{v*"}v*"(�
*2(�
(�
*�r�+pЎ(c
Ѝ(c
sd
(
�w*(�
*
*{x*"}x*F~w(�
t�*6~w(�
*(/
*0H(-%o((,(oo�
(,(s�*(*�Ў(c
(�
o�
(�
t�*�(�
(�
,(,(o�
o�
*n(-*(o�
o�
*v((#{�(�
o�
*0$	{�,*}�r�+ps]

(^
*&(Z
*0�
YE,9FS`mz��8�t�}y*t�}z*t�}{*t�}|*t�}}*t�}~*t�}*t�}�*t�}�*t�}�*t�}�*t�}�*}�*0Vs�

s�
*
*�o'-*o'o�
o�
t�o=
t�*0#W(>+
(o�
t�r6,p(�
*0{Xs�

o�
u�(&o�
soos�
o�
o?
o�

o�
	o�
&	o�
o�
o�
*0.Yo'o�
o�
o�
t�
oo�
o�
*0@(�
o'o�
o�
Y
+ o'o�
o�
t�(+Y
/�*()**(*{�*6(/(6*0Q(�
{�o�
{�o�
t�o�
{�{�o�
{�o�
o.*b{�{�rR,p(**o.*�o'o�
o�
o�
t�(+*0$	{�,*}�rb,ps]

(^
*0
YE
Cg�����8�t�}�*t�}�*t+}�{��4s5
o:
*t+}�{��-s5
o:
*t�}�{��5s�
o�
*t�}�*t�}�*t�}�*t�}�*t�}�*}�*J~��o�
*F~�o�
�*6((;*0$	{�,*}�r�,ps]

(^
*&(Z
*0G
YE+'t�}�*t�}�*t�}�*}�*�r.-p�(c
Б(c
�s~
((
��*6((@*0$	{�,*}�rP-ps]

(^
*0�
YE	)6CP]j+ut�}�*t�}�*t�}�*t�}�*t�}�*t�}�*t�}�*t�}�*t�}�*}�*6((C*0$	{�,*}�r�-ps]

(^
*&(Z
*0G
YE+'t�}�*t�}�*t�}�*}�*0OZ((G(�s�
{�o�o�
�$r.p(�
o�
(M
rCp(�
&�**$�0$	{�,*}�r`.ps]

(^
*&(Z
*0�
YE)6CP+[t�}�*t�}�*t�}�*t�}�*t�}�*t�}�*t�}�*}�*0�Ж(c
Е(c
r�.p(`
t�}�(s�}�{�(�
(U{��Ms�
o�(R{�o�(O}�{�{�o�
{�o��Ks5
(�
*2{�o�*
*0Z[{�,{�o�
.*{�o�l
(u

{�{�o�
��O�o�
}�*05\+o�
o�
0�(�

(�
(K
s�
o�
*0]s�
o�

*�{�,{�o�
{�o�
}�*(R*0HI{�o�
{�o�
Y#@X#@[
{�#@(�
io�*�{�o�(P{�o�
{�{�o�o�
(R*0N{�-*{�o�
{�o�(O}�{�{�o�
{�o�(R*0$	{�,*}�r�.ps]

(^
*0�
YE3bo+ztG}�*t�}�{��Qs�
o�
*t��Ts5
o6
t��Ss5
o7
*t�}�*t�}�*}�*�(�
�]s�
(�
�\s�
(�
*�rH/po�
,$(�
o�
rX/po�
(>
o�
**�o�
rX/po�
,r�/pod
(>
**�{�-r�/p(?+}�{�*6r�/p(�
*0^sv
ob*{�*N}�r�/pou*{�*N}�r�/pou*{�*N}�r
pou*{�*N}�r�/pou*{�*N}�r�/pou*{�*N}�r�pou*{�*N}�r�/pou*{�*N}�r0pou*{�*N}�r0pou*0),{�
([
t\|�(1+
3�*0),{�
(]
t\|�(1+
3�*n{�,{�sf
og
*(a
*{�*{�*F~�(�
�A*J~��A(�
*F~�(�
t_*6~�(�
*F~�(�
��*J~���(�
*F~�(�
��*J~���(�
*{�*"}�*{�*"}�*{�*"}�*{�*"}�*{�*"}�*{�*"}�*{�*"}�*{�*"}�*{�*"}�*0�_s�

o�
o�
}�s�
r
po�
r_po�
r�po�
r7po�
}�(�
(�{�o�
��s�
��s�
s�
(���s�
��s�
s�
(���s�
s�
(���s�
s�
(�*�(�2({ow
(�o�
*�(�23({ow
(�(�o�
&({oz
(�o�
*0U(�(�,*({ow
(�sx
oy
(�(�-({oz
(�s{
o|
*�(�(�,*({oz
(�(�s{
o|
*6(���*6(���*0I`({ow
o�
+o�
t�
o�
(F
,�op
-��
,oR
�***;
0ma({oz
(�o�

(�

({ow
o�
+o�
t�o�
(F
,�op
-��,oR
�**1,]0Eb({oz
o�
+o�

(�
(F
,�op
-��
,oR
�**&7
0$	{�,*}�r"0ps]

(^
*06
YE+t�}�*t�}�*}�*0�r�0p�A(c
Й(c
�As�
(�
��r�0p�_(c
Й(c
s�
(�
��r�0pФ(c
Й(c
��s�
(�
��rL1pФ(c
Й(c
��s�
(�
��*(�
*F~�(�
t*6~�(�
*F~�(�
t*6~�(�
*^(-
Л(c
(�
*0Sr�1p�(c
Л(c
sd
(
��r�1p�(c
Л(c
sd
(
��*^(�
М(c
(�
*VШ(c
(�
(@+*VЩ(c
(�
(A+*V�,(c
(�
(B+*(a
*0Gcs�

r�1po�
r{2po�
r�2pr�3p(�
(�
(�
(L
o�
o�
*vr�3pr4p(&
('
o(
*fr4p(&
('
o(
*fr4p()
('
o(
*�{�-rJ4p(C+}�{�*6rJ4p(+
*0ds�
o�*{�*�{�."rz4po/
(0
}�rz4po1
*{�*�r
po/
(2
}�r
po1
*{�*�r
po/
(2
}�r
po1
*{�*�r�	po/
(?
}�r�	po1
*{�*�r
po/
(�
}�r
po1
*{�*�r�	po/
(�
}�r�	po1
*(8
*(�
*2~�(�
*6~�(�
*{�*"}�*{�*J(�
s�
}�*�r�4p�(c
Т(c
sd
(
��*{�*"}�*{�*"}�*{�*"}�*{�*"}�*{�*"}�*{�*"}�*Z(a
#��(�*0re~�o�
-`(�

~�o�
o�
o�
+&on
tP~�r�poo
o�
o�
op
-��u'
	,	oR
�~�*)2[0�f~�o�
:�(�

~�o�
o�
o�

+I	on
tP~�s�r�poo
o�
o�r�4poo
t,o�o
	op
-��	u',oR
�~�*,U�0�g~�o
:�(

~�o�
o
s�
o�
+yon
tP~�s�
	r�poo
o�
(�o�	r�poo
o�
o�	o�
lco�
l#Y@[Xl(
o�	o
op
:{����u',oR
�~�*3��0@ho
+(

o�(F
,�(
-���`oR
�**'.0>is	

(�(�(�
~b
o�s�
d[8�		o
o�
o

o�
o�
o
s

Xo�
(�
 �o�
l(
(

o
o
 �o�
Xo
o�o
o�o
o�o

o�
�o�
		o
X]-X[(
s�o�X?	���~b
o�*Z{�,
{�oc
*Z{�,
{�oc
*Z{�,
{�o
*ns
}�(a
�}�*&�{�**�}�*0tj~�%(E
(�{�o
10{�(�{�o
Y{�o
X(�o
{�(�o

�
,(G
�*fh
(�*0)R{�
([
t�|�(9+
3�*0)R{�
(]
t�|�(9+
3�*0)R{�
([
t�|�(9+
3�*0)R{�
(]
t�|�(9+
3�*0)k{�
([
t|�(D+
3�*0)k{�
(]
t|�(D+
3�*�sa
��s�
��s
��s
��*:(
}�*{�*{�*"}�*{�*"}�*(�*^u�,
t�(�**^(
(�o�o
*(a
*{�*"}�*{�*"}�*{�*"}�*(�*(a
*{�*"}�*{�*"}�*{�*"}�*{�*"}�*{�*"}�*{�*"}�*{�*"}�*{�*"}�*(a
*�r(po�
-�(c
*�U(c
*0�ls�

r(po�
,r�4po�
(
o�
o�
o
+Hon
t�r_po�
tr�
pr�po�
t(M
o
-o�
op
-��u',oR
�s

o�
+-(�
	o�
s
(o
o
(�
-���oR
�s�

8�(�
( 
Y	8�-+		(!

8�	o"
r(p	s#
�Uo$

,r�4pr(po�
o$

X

+)o
 0u
[o�
�o$
Xo�
2�	o�
o%
X
>c���	X		>;���Y=���	ol
*5U��:�0Bmt�
t�o
o&
o'
r(p(F
-r�4p+r�4po
t^*(q
*0:ns�
o
o
t�o)

o*
&(+
t�o*{�*"}�*(-
*F~�(�
t�*6~�(�
*F~�(�
t*6~�(�
*2t�o*2t�o*6(�
(*0�o{�~,
r5ps-

(o.
s/
o0
o1
&{�~2
r65ps-
(o.
o1
&{�~3
rV5ps-
(o.
o4
o1
&*J{�(o;
*0$	{,*}rr5ps]

(^
*06
YE+t@}�*tC}�*}*0kr�5pБ(c
Ь(c
�s�
s�
(
��r6p�(c
Ь(c
�s�
s�
(
��*0^p~,~*Э(c
s6

��(c
o�
r6p(7
r:6p(>
o}
o8
t �~**(9
*{*"}*{*"}*(a
*07qrV6ps:

s;
 ���jo<
s=
s>
(?
(@
*B{(E+�*0/r�J
��(c
���(c
�}(B
*"(C
*2(D
o*F(,o�
tc*2(-t�*2(-t�*2(D
t�*2(D
t�*2(D
t�*2(D
t�*2(D
t�*2(D
t�*2(D
t�*2(D
t�*2(D
t*N(E
s+}*2{o,*2{o-*2{o.*2{o/*2{o0*2{o1*2{o2*2{o3*2{o4*2{o5*2{o6*2{o7*2{o8*f(F
�Hsv
(G
*�(X(N(K(Z(R(U(Q([oH
**u��*FoI
t o�
*0�s(J
�(:oK
r�
poL
oM
�oN
(J
�(:oO
�oN
(J
(:oP
oQ
(J
(:�oP
oQ
(J
(:�oP
oQ
(J
(F{0oR
oQ
(J
(:oK
r�6poL
oS
oQ
(J
(:oK
r�6poL
oS
oQ
(J
�(F{/oT
oU
�oN
(F{/�IsV
(W
t�
(J
r�6poX
oY
t�o=
oN
(J
r�6poX
oY
t�o=
oN
(J
r7poX
oY
t�o=
oN
(J
r�6poX
oY
t�oZ
oN
(J
r�6poX
oY
t�oZ
oN
(J
r27poX
oY
t�oZ
oN
(J
(;(:oK
r�6poL
o[
rH7p(\
o]
(J
(;(:oK
r�6poL
o[
rH7p(\
o^
(J
s�
�[(:(:oK
r�6poL
o_
oN
(J
 �s�
�[(:(:oK
r�6poL
o_
oN
(J
s`
�[(:(:oK
r27poL
o_
oN
(J
#�k@(:(:oK
r�6poL
o_
(�
Y(a
#����MbP?�oQ
(J
#�������@(:(:oK
r�6poL
o_
(�
Y(a
#����MbP?�oQ
(J
#��e�c]�?(:(:oK
r27poL
o_
(�
Y(a
#����MbP?�oQ
rT7p(L(F{/ob
(c
r�7p(L(F{/ob
(c
r8p(L(:oK
r�6poL
r�8pod
(c
(J
~e
(:(:oK
r�6poL
o_
oN
*��(c
(f
�]sv
(G
*6og
}*0�t�^sh

(;oi
(F{0(j
(c
(J
{ok
oQ
(J
{ol
oN
{(F+{m
(j
(c
(J
{ok
on
}�
(;oo
�*}�
*u��*09u(J
(D{�o�

(0
oQ
(J
�(D{�op
�oN
(J
(:(D{�oq
oN
(J
��(D{�or
��oN
(:#�#�(s
(J
(D{�ot
on
(:#@#@(s
(J
(D{�ot
oQ
(J
#�O(D{�ou
�OoN
(J
#�O(D{�ov
�OoN
(D{�(w
(J
(D{�ot
on
(D{�(w
(J
(D{�ot
oQ
(:(:oK
ox
(y
�#@#@(z
(:(:oK
ox
(y
�#9@#@(s
(J
(D{�ot
on
(:(:oK
ox
(y
�#@#@({
(J
(D{�ot
oQ
(<o|
(c
(J
(D{�ot
on
(<o�
(c
(J
(D{�ot
oQ
(J
�(D{�o�
o�
�oN
(J
r9p(Po�oN
(J
r&9p(Po�oN
(J
r@9p(Po�oN
(J
r�/p(Po�oN
(J
rN9p(Po�oN
(J
rb9p(Po�oN
(J
rp9p(Po�oN
(J
r�
p(Po�oN
(:r�9p(\
#�A@#@(s
(J
�(D{�o�
o�
�oN
(J
r�9p(Po�oN
(:r�9p(\
#�A@#@(s
(J
�(D{�o�
o�
�oN
(J
r�9p(Po�oN
(;(:oK
ox
o[
#�A@#@(s
(J
�(D{�o�
o�
�oN
(J
r�9p(Po�oN
(J
r:p(Po�oN
(O(:�MsV
(W
r":p(\
#@#@(s
(J
�(D{�o�
o�
�oN
(J
r�p(Po�oN
(J
r@:p(Po�oN
(D{�ob
(=o}
(c
(J
(=o^
(O*���(c
(f
�_sv
(G
*n~~
o�
trP:p(F
*n~~
o�
trd:p(F
*n~~
o�
trt:p(F
*0�(:oK
ox
o
(c
(;o�
(;o�
o�
#@[(;o�
o�
#@[(s
(J
�(D{�o�
o�
�oN
(J
r�:p(Po�oN
(J
(Po�oN
(;o�
~-�`sV
�~(W
#@#@(s
(J
�(D{�o�
o�
�oN
(J
r�:p(Po�oN
(J
r�:p(Po�oN
(;o�
~	-�asV
�	~	(W
#@#@(s
(J
�(D{�o�
o�
�oN
(J
r�:p(Po�oN
(J
rd:p(Po�oN
(:o�
(c
(;~
-�bsV
�
~
(W
#@#@(s
(J
�(D{�o�
o�
�oN
(J
r�:p(Po�oN
(J
rt:p(Po�oN
*�(D{�oX
oY
(+
t�*0�(J
(<o�
oQ
(J
(<o�
oQ
(J
(<o�
oQ
(J
(<o�
oQ
(J
(<o�
oQ
(J
(<o�
oQ
(J
(<o�
oQ
(J
(<o�
oQ
(>{(w
(c
(J
(<o�
on
(>{(w
(c
(J
(<o�
on
(J
(:oK
r�
poL
o�
on
(J
(:oK
r�
poL
o�
on
(>{(w
(>{(w
(c
(J
(<o�
on
(J
(:oK
r�
poL
o�
oQ
(J
(:oK
r�
poL
o�
on
(>{ (w
(c
(J
(<o�
on
(J
(:oK
r�
poL
o�
on
(>{!(w
(c
(J
(<o�
on
(J
(:oK
r�
poL
o�
on
(>{"(w
(c
(J
(<o�
on
(>{%(w
(c
(J
(<o�
on
(>{$(w
(c
(J
(<o�
on
(J
�,(>{&o�
oN
(J
�,(;o�
�,oN
(>{&�,o�
(c
(J
�,(;o�
�,oN
(>{&�,o�
(c
(J
�,(;o�
�,oN
*���(c
(f
�csv
(G
*0�(J
(:o�
(<oN
(J
�,(<o�
�,oN
(<(S(?{ob
(c
(J
(:o�
(=oN
(J
�,(=o�
�,oN
(:o�
(=(S*���(c
(f
�dsv
(G
*0�(T(?{(w
(c
(T(J
(?{oR
on
(J
(?{oR
on
(?{(w
(c
(T(J
(?{oR
oQ
(J
(?{oR
oQ
(J
M�(?{{o�
tQo�
�oN
(J
�o
o�
o�
�oN
(?{{ (j
(c
(J
'�o
o�
o�
�oN
(J
'�(?{(J�oN
(?{{!(j
(c
(J
�o
o�
o�
�oN
(J
�(?{(J�oN
(?{{"(j
(c
(J
&�o
o�
o�
�oN
(J
&�(?{(J�oN
o
o�
o
o�
(J
r;po�
o�
o�
o�
o�
o�
oN
(J
#33333��@(�
(�
o�
o�
o�
o�
o�
o�
oN
(:o�
(?{{o�
ugo�

(J
	��oN
+5(?{{o�
(?{{ (j
(c
X2�(J
(:o�
�o
o�
o�
�oN
(:o�
(:r�
po�
(c
(:o�
(:
o�
(J
r;po�
o�
o�
to�
o�
o�
o�
oN
(J
 ��o�
o�
o�
to�
o�
o�
(3
�oN
(J
 P�o�
o�
o�
to�
o�
o�
(3
�oN
(J
 ��o�
o�
o�
o�
o�
(3
�oN
(:o�
(:o�
*�(J
-+�@o�
o�
�@oN
*0�(J
(@{�o�
��oQ
(J
(@{�o�
��oQ
(@{�(w
(c
(J
(@{�o�
�oQ
(J
(@{�o�
�oQ
(@{�(w
(c
(W(J

�(@{�o�
�oN
(J
�(@{�o�
�oN
(J
�(@{�o�
�oN
(@{�(V(@{�o�
(c
(W(J
�(@{�op
�oN
(@{�(j
(c
(@{�(V(c
(W(@{�(j
*2(�
o�
*0�(J
�(@{�o�
�oN
(@{�(V(c
(W(@{�(j
(c
(J
�(@{�o�
�oN
(@{�o�
(c
(@{�o�
&(c
(W(@{�(j
(c
(J
r@;p(@{�o.
(o�
oN
(@{�o�
(c
(@{�o�
&(c
(W(@{�(j
(c
(J
r�;p(@{�o.
 o�
oN
(@{�o�
&(c
(@{�o�
(@{�(j
(c
(J
r@;p(@{�o.
(o�
oN
(@{�o�
(c
(@{�o�
&(c
(@{�(j
(c
(@{�o�
&(c
(@{�(j
(c
(J
r�
p(@{�o.
oN
(@{�o�
&(c
(@{�(j
(c
(J
r@;p(@{�o.
(o�
oN
(@{�o�
(c
(@{�o�
(@{�o�
(c
(@{�o�
tco
o�
o
t?r�;po�(@{�(V(c
(@{�(j
(c
(J
�(@{�o�
�oN
(@{�o�
o�
(@{�(V(c
(@{�(j
*2(�
o�
*0s(J
�(@{�o�
�oN
(J
r�;p(@{�o�
t?o�oN
(@{�ob
(@{�(j
*2(�
o�
*0R(J
�(@{�o�
�oN
(J
r�;p(@{�o�
t?o�oN
*0���(c
(f
�esv
(G
~��fs�
(�
�gsv
(G
~��hs�
(�
�isv
(G
~��js�
(�
�ksv
(G
*�o�
#@#@(z
o�
#@#@({
*0�(J
�=(@o��=oN
(J
�A(@{�oR
�AoN
(J
�A(@{�oR
�AoN
(J
�A(@{�oR
�AoN
(J
�A(@{�oR
�AoN
*0�v(J
(;o�
oQ
r�
p (s�

(J
(C{�o�
oN
(J
(:o�
oN
(J
�A(C{�o�
�oN
(J
�A(C{�o�
�oN
(J
�A(C{�o�
�oN
(J
(C{�o�
on
(J
(C{�o�
on
(J
(C{�o�
oQ
(C{�(w
(c
(J
(C{�o�
oQ
(C{�(w
(c
(J
(C{�o�
oQ
(C{�(w
(c
(J
(C{�o�
on
r�
p 	(s�

(C{�o�
(c
(C{�(j
(J
(:o�
oN
r�
p 
(s�

(:o�
(c
(J
(C{�o�
oN
(;�Ys�
o�
(;o�
(c
(J
{o^
(J
{o�
oQ
(J
{o�
oQ
(J
{o�
on
{(F+(J
o^
{m
(j
*���(c
(f
�lsv
(G
*6o�
}*0'w(J
(E{�o�
(0
oQ
(J
(E{�o�

(0
oQ
(J
�(E{�op
�oN
(J
�(E{�op
�oN
(J
�(;o�
�oN
(E{�ob
(c
(J
�(;o�
�oN
(E{�
(J
�o�
�oN
(J
�o�
�oN
(E{�(J
�Ao�
�oN
(J
�Ao�
�AoN
(w
(J
�Ao�
�AoN
(w
(J
�Ao�
�AoN
(E{�ob
(c
(J
�(;o�
�oN
(E{�ob
(c
(J
Ь(c
(=o�
oN
*���(c
(f
�msv
(G
*F��(c
(f
*(9*f(F
�osv
(G
*>(poH
*2r�;p(q*2rwp(q*2rwp(q*0g��(c
(f
�ssv
(G
��(c
(f
�tsv
(G
��(c
(f
�usv
(G
*0x(:o�

+b(J
��(:o

����oN
(J
��(:(:o�
YYo

����oN
X

2�*(9*6~(�
*6~(�
*&(�
*&(�
*(G+*.s�
�*(a
*{
*�{
.o�}
rz4po�*{*�{(>
,o�}r
po�*{*�{(>
,o�}r
po�*{*0Vx{
(�
(�
3!(�
,(�
(�
(�
++,o�}r�	po�*{*0Jy{
(�
(�
3(�
(�
��+,o�}r
po�*{*0Jz{
(�
(�
3(�
(�
��+,o�}r�	po�*0){{
([
t�|(H+
3�*0){{
(]
t�|(H+
3�*0),{
([
t\|(1+
3�*0),{
(]
t\|(1+
3�*j{,{~o�
*n{,{sf
og
*B~-
s�
�*�re(p�c(c
з(c
sd
(
�*^(-
з(c
(�
*F~(�
tc*6~(�
*{*"}*v(/
r�;p(0
t�(�*:(a
}******2{o�*
*{*v{3*}r�+p(�*:(a
(�*0),{
([
t\|(1+
3�*0),{
(]
t\|(1+
3�*n{,{sf
og
*0^|( o�
+2on
t�
o#t(F
,o%(�
�op
-��u'
	,	oR
�**>I(�
*(*�r.<p�"(c
м(c
��s�
s�
(�
�*2t�o�*6(�
(�*F~(�
t"*6~(�
*b%{([
t�}*b%{(]
t�}*b%{([
t�}*b%{(]
t�}*b%{([
t�}*b%{(]
t�}*J{(�o�
*0}s

,oc
*F{o�
(�
*6{o�
*2{o�
*6{o�
*2{o�
*6{o�
*{*6{(�*6{(�*6{(�*0$	{#,*}#rV<ps]

(^
*0�
YECg8�t�}*t�}*t+} { ��s5
o:
*t+}!{!��s5
o:
*t+}"{"��s5
o:
*}#*~**0~��
����*097�
r�p�r�p�r7p�rIp�rep�r�6p�*(�
*{+*0B{+
(�
(�
3(�
(�
�+,*}+rz4p(�*{,*�{,(F
,*},r
p(�*{-*�{-(F
,*}-r
p(�*{.*0Qx{.
(�
(�
3!(�
,(�
(�
(�
++,*}.r�	p(�*{/*0Bz{/
(�
(�
3(�
(�
�+,*}/r�	p(�*{0*0By{0
(�
(�
3(�
(�
�+,*}0r
p(�*{1*0D�{1
(�
l(�
l3(�
(�
�+,*}1r�<p(�*{2*0B�{2
(�
(�
3(�
(�
�+,*}2rwp(�*{3*0B{3
(�
(�
3(�
(�
�+,*}3r�<p(�*0),{4
([
t\|4(1+
3�*0),{4
(]
t\|4(1+
3�*n{4,{4sf
og
*00�(�
o�

-o�
(�
,*o�
(�*(�*0B���s�
o�r�<po��s�o�r=po��s�o�r,=po��s�
	o�	rJ=po�	�s�o�rb=po��s�o�r~=po��s�o�r�=po��s�o�r�=po��s�o�r�=po��	s�			o�	r�=po�	�
s�


o�
r>po�
�s�o�r>po��s�o�r4>po��
s�


o�
rL>po�
�s�o�rd>po��s�o�r|>po��s�o�r�>po���**(a
*{5*"}5*{6*"}6*(�*(a
*j~8~7~8�iYo�
�*F~*(��o�*0/4(�

~7o�
1~72o�
el(�

*� �(0
-~7do�
Z+~7 'o�
ZXs�
*B~7
o�
�*2~7o�
*r~7o4
#@�@Z(�
i*J~7~*�io�
*0��s�
(�o�(�o�(�s�
o�(�sJ
o�o�(�(�
-�l+
(�
js�
o�(�s�
o�(�s�
o�(�ls�
o�*0{�s�
s�
o�(�o�(�s�
o�(�s�
o�(�sJ
o�(�s�
o�(�ls�
o�(�o�*0t�s

o�
rz4p�(c
o�
&o�
r
p�(c
o�
&o�
r�p�(c
o�
&o�
r�	p�U(c
o�
&o�
r�	p�A(c
o�
&o�
rwp�(c
o�
&o�
r�<p�(c
o�
&8�o"
rz4p�o$
r
p(�o$
r�p(��o$
r�	p(��Uo$
r�	p(��Ao$
rwp(��o$
r�<p(��o$
o�
o%
X?X���*0"�s�

+(�o�
&X2�*0~�s|
(�o�(�o�(�s�
o�(�sJ
o�o�(0
sJ
(�(�
-�l	+
(�
js�
o�*0)�s�

+(�o~o�
X2�*0�7s�
�7�
r�>p�rI?p�r�?p�r2@p�r�@p�r3Ap�r�Ap�r�Ap�r]Bp�	r�Bp�
rCp�ruCp�r�Cp�
rKDp�r�Dp�rSEp�r�Ep�r	Fp�r�Fp�rYGp�r�Gp��8**
*
*
*
*b%{9([
t�}9*b%{9(]
t�}9*Z{9,
{9o�
*:s�
(�*:s�
(�*s�
zs�
zs�
z
*s�
zs�
zs�
zs�
z
*
*
*(�
*�(a
}@}:};}<}=}>r�
p}?*{:*{;*:};(*{<*:}<(*{>*0L}>{>,{=d.d({>-{=d3(rgHp((*{=*0K}={=/}={=d1d}={=d�(ryHp((*{?*:}?(*J{@t�(*0��r�
p
+T{Ko2o;,;r�Hpr�
p(F
-r�Hp+r�
p{Ko2o(j
(>

X{KoU
2�r�
p(F
,r�Hp
*6{@o�*0),{A
([
t\|A(1+
3�*0),{A
(]
t\|A(1+
3�*n{A,{Asf
og
*V(a
}B}C*{B*{C*"}C*F~D(�
�A*J~D�A(�
*F~E(�
�*J~E�(�
*0k�(
}F}GrgHps-

{Fo.
o4
~D(1
&ryHps-
{Fo.
o4
~E(1
&*2{Fo*6{Fo*2{Fo
*6{Fo*2{Go*2{Fo*6{Fo*0SrgHp�A(c
��(c
sd
(�
�DryHp�(c
��(c
sd
(�
�E*0��s/
s�
+ho�
Xr�HpX
(m
(>
(�
o�
l(�
s	o�
&3o-2o3o-doX~H2�*J(�
o
t�*:(�
o	
*�H*(*0�s4
	�
	r�Hp�	r�Hp�	r�Hp�	rIp�	r
Ip�	rIp�	r)Ip�	r5Ip�	rQIp�	+o�
X�so�
&X�i2�*J(�
o
t�*:(�
o	
*�I*(*~((,}J(1}K*0��s6
s�
+o
+W{K{KoU
o�
o2{Jo-o;-o�
{Jo-s#o�
&	X
	~Io�
X2�X~H2�*J(�
o
t�*:(�
o	
*07-*
+%(8{Fo�
,
s�
(�X
(U
2�*08
+)(8{G3(8{Fo�
,*X
(U
2�*0)R{N
([
t�|N(9+
3�*0)R{N
(]
t�|N(9+
3�*�(a
}L(7}M�?s5
o
(B*�(B{N,{N~b
oc
*Z{LoK
r�poL
*Z(@-*(@o
*�(A,{L{Mo�
*{L{M{Jo�
*0C�((D{O �(�o�
s
o

(I+{Qo
*0$	{T,*}TrcIps]

(^
*&(Z
*0i
YE)6+At�}O*t�}P*t�}Q*t�}R*t�}S*}T*0�r�Ip��(c
s
�Ur.-p�(c
��(c
��Hs
s
((
�Vr�Ip�A(c
��(c
�As~
((
�W*^�3(J�**J~V�o�
*F~Vo�
�*J~W�Ao�
*F~Wo�
�A*�((R(	
~U�Ns

s
o
&*0!r�Ipo

o�
(>
(
&�&�*0y{\-*{Xop
-{^~
o
{Xop
3{^rJp(
t^o
{Xop
3{^r1Jp(
t^o
*0�{\-*{[op
-{]o
{[op
3{]roJp(
t^o
{^o
{[op
3 {^roJp(
t^s�o
*0�{\-*{Yop
--{^~
o
{^~
o
{[oA
*{^#�r@o
{Yop
3'{^r�Jp(
t^o
{[oA
{Yop
3'{^r�Jp(
t^o
{[oA
*0$	{_,*}_r�Jps]

(^
*0�
YE)MZ~��8�t�}X{X�Os8
o9
*t�}Y{Y�Qs8
o9
*t�}Z*t�}[{[�Ps8
o9
*t�}\*t�}]*t�}^*}_*v((Y{d(
o�
*0:u{e-*{ao/

(0
,{e{bo
(�
o
*�{e-*{boA
{e ���o
*�{e-*{boA
{e{bo
(�
o
*0��s
o
#@@o
#�r@o
o 
o!

o"
������(�
,#�r@o#
{doK
r�poL
o
*0$	{f,*}fr+Kps]

(^
*0�
YEAe���8�t��Xs8
o9
*tH}`{`�Vs5
o6
*tH}a{a�Ws5
o6
*t�}b{b�Us8
o9
*t�}c*t�}d*t�}e*}f*f((e(](\*	
	


0h�{io$
2s%
%�M(&

+/{j('
{jo�
('
o�
o(
Xo)
2�{io*
*0��{i(
o�
{ioK
r(poL
o+
{ioK
r(poL
o,
{jo�
o-

+r	o.

{io/
s0
os
o1
o2
rKpo3
o4
s5
o6
o7
r�Kpo8
r�Kpsk
o9
o
	op
-��
	,	oR
�*X~�
0�uo:
�!�!(�
,}go:
@�{io�
,u{ho�

(0
,3{jo;
{ioK
o<
t1o=
oL
o>
,-o?
~�
. o?
,%{go?
�X}go:
3{g�o@
*2{ioA
*2{ioA
*"(c*"(c*(a
*:{N(d*0#�sK}NsB

+c+H{jo�
o�
sC
{i{jo�
o�
o_
�sD
oE
X{jo�
oF
2�X{io�
2��LsG
oH
{io$
{jo�
o�

+K{joI
	YYoJ
(K
oL
oI
	YYoJ
(K
oM
o(
	X
	oI
(N
2�{io*
*�,(O
(P
(P
oQ
*(O
(P
(P
oQ
*0$	{k,*}kr�Kps]

(^
*0�
YE)AY�8�t�}h{h�`s8
o9
*t+�as5
o:
*t+�bs5
o:
*t�}i{i�^sR
oS
{i�_sT
oU
*t�}j*}k*bt�(�
�;om*F~l(�
�;*J~l�;(�
*N((s(o*�( (�
-(u
{r�|
sv
o�
&*"o�
*0]-"{po�{qo�
~V
o
*{p{ro�{qo�
{ps�oW
{ro|
*(o*0-u{m{mo/

(0
-r�Kp+r%Lpo?
*&(&*F{or%Lpo�
*F{or�Kpo�
*0$	{s,*}srMLps]

(^
*&(Z
*0�
YE@M���8�t�}m{m�ns5
o6
{m�ns5
o7
*t�}n*t�}o{o�qs5
oX
{o�rs5
oY
*t�}p*t�}q*t�}r*}s*�r�Lp�;(c
��(c
�;�gs�
s�
(
�l*0F�((x��(c
o�
&(Z

sB
o[
{tr�Lpo\
o�
*0$	{u,*}ur�Lps]

(^
*0
3
t�}t*}u*0��s�}y((�{zs�o�

+ms�r�p�o�r_p~v~x~v�ioT
�o�r�p~w~x~w�ioT
�o�{yo]
X
22�{�{yo�
*^(|{{r�
po<
*0x�{{o.

+{yo^
(}o�X{yo_
2�s`
rSMp(>
s-

	o4
	oa
ob
{�oK
oc
*0j{|od

E$5+D{}o
(�
�*{~o.
*{oe
�U*{�o�
�**0.{|od

E+*****0+-of

, o�
(�-rmMpog
oh
*0h�{�-*{�oK
oi

+3	o.

oj
t�ok
ol
o�
(F
,�	op
-��
	,	oR
�**?Z
0$	{�,*}�r�Mps]

(^
*0�
YE
6CP]jw��8�t�}z*tF}{{{�sm
on
*t�}|*t�}}*tF}~*t�}*t�}�*t+}�{��{s5
o:
*t�}�*t�}�*}�*0��
�
rfNp�rpNp�rxNp�r�Np�r�Np�r�Np�r�Np�r�Np�r�Np�	r�Np�
r�Np�r�Np�r�Np��v
�r�Np�r
Op�rOp�r$Op�r2Op�r>Op�rJOp�rZOp�rdOp�	rvOp�
r�Op�r�Op�r�Op��ws�
�x*6((�*0$	{�,*}�r�Ops]

(^
*&(Z
*0X
YE)+4t�}�*t�}�*t�}�*t�}�*}�*2(+
tG*0D((�{�oo
,(�{�op
&{���sq
or
*0B�{�oo
t#o

os
8�on
to'
r(po�
:�{�oK
s`
o'
ot
s5

	o6
	r�Kpo8
	r�Kpsk
o9
	o7
	rKpou
	o
oc
{�o/
s0
o'
o1
o2
rKpo3
o4
{�ov
s0
o'
o1
o2
rKpo3
o4
op
:�����u',oR
�*A
,0��{�ov
ow
-(�(�o7�
{�oK
r�4poL
o+
,{�oK
r�4poL
o
+{�r�4pox
{�op
&*0$	{�,*}�rPps]

(^
*0G
YE+'t�}�*t�}�*t�}�*}�*~((���s5
(y
*F{�oT
oz
*0$	{�,*}�r~Pps]

(^
*&(Z
*0
3
t�}�*}�*{�*"}�*0�r�Pp�A(c
��(c
�As~
(
��r�Pp�=(c
��(c
�=s~
(
��rQpЄ(c
��(c
({
��*6~�(f
*6~�(e
*F~�(�
�A*J~��A(�
*F~�(�
�=*J~��=(�
*0+�s|
}�s}
}�s}
}�s~
}�}�s
}�((�(�{�o�

(�
o�
+{��t�(�o�
X�i2�{�{�o�
{�{�o�
{�sJ
o�
{�sJ
o�
{���s�
o�
{���s�
o�
{�{�o�
{�{�o�
*"(�*"(�*:1*/**
*&(&*�( (�
,{�,{�o�
o�
*0W�,Ho
o�
o�
,o
o�
*o�
 �.(o
�
o�
�o�
*{�o�
*jo
o�
(�o�
*0��9�o
o�
o�
,lo
o�
o
o�
s�

��s�
o�
o�
+(�
(�(�
-����oR
�o
o�
*o�
 �.o�
(�*{�o�
*MjF(�(�*{�*�o
o�
(�o
o�
*0��o�
 ��
8��t?%(�X%(�o�{�Y32s
	o�	o	o	Jo�	o�	}�(�,)o�
,!-Jo�
{�Jo�
%JXT+o�
{�o�
Yo�
X?I���*0��9�
(�й(c
o�
9�o�
9�{�o�
}�}�(�o�
u�
o�

o�
 �.o
o�
o�
X+{�	�i1		�i(�+	{�(�(u
��sv
�o�
&*{�o�
*b(U
(V
}�(�
*b(�
(V
}�(�
*0i
+O{�o�
Y3({�o�
{�(�{�-(�+{�o�
(�X
{�o�
2�}�*0��rup(�
r0Qp(�,o�s�
o�
{�{�o�
Yo�
3(s�
	o�	o�	��s�
o�
~�(�~�(�*"(�
*�o�
�s�
(�
(�o�
*J(
tbo�
*0\(�,	o�*(�-{�o�
t�{�o�*(�3{�o�
t�{�o�*f{�,
{�o�
-**�o
o�
o�
-o�
 �3**0G(�,{�o�
��*(�."{�(�o�
o�
t�(�**0f�{�,*(�,"(�

-+t/o�
(j
-*(�3*(�й(c
o�

,	o�
,**0B(�,{�o�
��*(�.{�(�o�
o�
3***0�(�

�&
�*N��s�(�*N��s�(�*N��s�(�*N��s�(�*�(�o�
o�
,(�o�
o�
*�(�o�
o�
,(�o�
o�
*R(�o�
o�
*R(�o�
o�
*0Ko�
-o�
os
r\Qp(F
,+o�
o�
{�o�
(�
(�o�
*F(��(�*�-{�o�
o�*{�o�
o�*:(�(�*0>�
{�o�
-*s�
{�o�
{�,#o�*�(�{�o�
,
{�o�
&*"(�*"(�*"(�*"(�*f{�o�
{�o�
*0$	{�,*}�r~Qps]

(^
*&(Z
*0�
YE&4c���7DQ^kx������;j�������:i������8t��s

o�
t��s;
o�
*t��s

o�
t��s;
o�
*t��s

o�
t��s;
o�
*t��s

o�
t��s;
o�
*t�}�{���s5
o�
{���s5
o�
*t�}�{���s5
o�
{���s5
o�
*t�}�*t+}�*t+}�*t+}�*t+}�*t�}�*t�}�*t�}�*t�}�*tD}�*t�}�{���s�
o�
*t��s

o�
t��s;
o�
*t��s

o�
t��s;
o�
*t��s

o�
t��s;
o�
*t��s

o�
t��s;
o�
*t�}�*t�}�*t�}�*t�}�*t�}�*t�}�*t�}�{���s�
o�
*t��s

o�
t��s;
o�
*t��s

o�
t��s;
o�
*t��s

o�
t��s;
o�
*t��s

o�
t��s;
o�
*t�}�*t�}�*t�}�*t�}�*t�}�*tF}�*}�*6((�*
*0$	{�,*}�r�Qps]

(^
*0�
YE)6CP+[t�}�*t�}�*t+}�*t�}�*t�}�*t�}�*t�}�*}�*�((�{�r�
p (s�
o�
*
*2{�o�
*0Co�
{�o�
o�
o�
{�o�
o�
o�
{�o�
o�
*0$	{�,*}�r(Rps]

(^
*&(Z
*0
YE,P]jw����8�t�}�*t�}�*t�}�*t+}�{���s5
o:
*t�}�*t�}�*t�}�*t�}�*t�}�*t�}�*t�}�*t���s�
o�
*}�*6((�*6(�
(�*J{�o�
(�
*0F�{�{�oK
r�
poL
o�
{�o�
{�o�
u�
,o�
*0$	{�,*}�r�Rps]

(^
*0i
YE)6+At�}�*t�}�*t�}�*t�}�*t�}�*}�*~((���s5
(�
*0K�{�,*s�

~o�
r�Rpo�
r{2po�
o�
s�%}�(�
*0f(�
,F{�ж(c
o�
{� 0u(�(J+o�
{�{�o�
o�
*~(j
,(�(�*(�*Jr�Sp(�(�*2r�Sp(�*0:�%}�(�
s
(�
o�
o�
o�
&o	�*0]u~-
{�o�
*(�{�o�

(0
,{�{�o�
o�
*{�{�o�
o�
*0ko"
o�
r�Sp(F
,-{�o�
{�(
r
Tpo
u6o�
*{�~�
o
{�o"
�Do�
*0$	{�,*}�r?Tps]

(^
*0P
YE
@d����������8t�}�{���s5
o�
{���s5
o�
*t+}�{���s5
o:
*t�}�{���s8
o9
*t�}�*t�}�*t�}�*t�}�*t�}�*t�}�*t�}�*t�}�*t�}�*t�}�*}�*{�*"}�*r�Tp*F(�o�
tQ*F{�o+
tQ*:(�o�
X*0o�(�(
o�
s�

r�Tp��(c
o�
(�
(�(j
s]
o�
o�
(�(
r�Tpo
u�(�*0��{�o�
(0
-*s�

	(
rUpo
t�o)
	o�
	}�(�o�
(�o�

r�po�
o�
{�o�
u%��s�
{�(�
s�
rGUpo�
o�
o�
o�
o�
(�
&o�
o�
*0<�{�o+
tP
(�
,	(0
-o�
(�o�
}�*{�*0$	{�,*}�reUps]

(^
*0o
YE)+KtF}�*tF}�*t�}�*t�}�{���s�
o�
*}�*F{�o�
t�*F~�(�
�A*J~��A(�
*
*0is�
}�(({��s8
o9
�s�
(�
{��s5
o�
{�{�o�
*01�s�

o�
s�
o4
r�Upo�
r�Ups�
o�
o�
o�
s�
o4
r�Upo�
r�Ups�
o�
s�
o0
o�
o�
s�
o4
r	Vpo�
r3Vps�
o�

o�
	o�
s�
o4
(�
s�
o�
rGVps�
o�
o�
o�
s�
o�
{�~�
o1
&*�{�{�op
,riVp+r{Vp(
tco�
*0�{�o�

(
|�(
Y(
3e{�o
{�(
|�(
Yo
({�o
r9p(�
r9po�
o�
o�
(r@9po
-r�Vp+o
oj
u(rN9po
((rp9po
-+{�o
o
o
((o	
*�o

o
,%{�X}�+%{�Y}�{��(�*�{�o�
u�,sP*sV*0J{�o�
u�,(�o
uo

*{�o�
t�o
uo
*0U �3rb9p* �3r�9p* ý�3r�9p*r�Vp�{�o
-r�Vp+r�Vp(j
*N{�s_o
*(a
*Jo[{O(F
*0;�sM}O{��Ns
(K+(L+
,
{�o
&*Jr�Vpo
(*brp9p(r�:p(*�r�:pr�Vpor
os
o�
(j
(*Jr�:po
(*J{�(
}�*0$	{�,*}�r	Wps]

(^
*&(Z
*0�
YE
CPt����8�t�}�*t�}�*t�}�{��
s�
o
*t�}�*t�}�{��s
o
*t�}�*t�}�*t�}�*t�}�*t�}�*}�*�rGVp�A(c
��(c
�As�
(
��*�((�
�s�
s�
((((*0*�s}�s�
{�o
os
8�on
ts`

	o'
ot
	os
r!p(F
,o
o
os
r� p(F
,o+
o,
os
r1!p(F
,o
o
#i@o
os
r!p(>
,os
r1!p(>
,o
{�oK
oc
op
:(����u',oR
�{�{�o�
*$�(a
*0Ru
(�
,	(�
+,:{Q{�o�
o�
{Q{�o�
o�
{Po2
o
*0��sO
	}Q	s
~ 
o!
o"
}P	{P{�{�o�
o�
{�o#
t�o_
o
	�Ps�

	{P{�o�
o�
#y@#�r@s$
s�
o�
r[Wpo�
o�
(�
&*0��o%
(&
-	('
+9�o(
s)

ryWpo*
o+
o(
s)
r�Wpo*
o+
o(
s)
r�Wpo*
o+
o(
s)

	r�Wpo*
	o+
o(
s)
r�Wpo*
o+
*(*0��{�-*{�o,
o-

{�o�
o�
 �3*{�o
{�o�
o�
o
o
r�p(>
{�(F
,*}�s�
(
o
u�o)
o*
&(+
uU
o.
	o/
o0
*�{�o
{�o�
o�
o
o
rXp(F
o1
*{�*"}�*0$	{�,*}�r?Xps]

(^
*0�
YE+lt�}�*t�}�*t�}�{��s2
o3
{��s4
o5
{��s6
o7
*}�*F{o�
tc*0�((5{� s8
o9
(�s2
o3
("{�(s�
o�{�)s�
o�{�*s�
o�{�+s�
o�{�,s�
o�{�-s�
o�*0:�o%
(&
-	('
+,o(
s)

r�Xpo*
o+
*�{{op
,riVp+r{Vp(
tco�
*�{�-{oo
tQo�
}�{�*0��s8

+L�ar�Xp(9
r�XpX(9
(:
((	X(o;
X �1�{o�o�
{o�o�
{o�o�
*0��{o$
(!o�

o�
+7on
t�o9,"{(!o�
o<
o=
o=op
-��u'
	,	oR
��{o*
�*Catt�r�po�
{o�o2
��(�
*0N�{o�o�
�a
r�po�
(3
(2r�po�
(3
(
��**6{o�
*6{o>
*~�$s8�&s<(#*~�$s8�'s<(#*�{o�
�$s8�&s<(#*~�%s8�&s<(#*~�%s8�'s<(#*�{o�
�%s8�&s<(#*0�o:
�!�!(�
,s�
}�o:
3I{,A{o�
,4{o�
o;
o?
,%{�o?
�[(�
}�o:
3{��[o@
*~{,{oA
{o@
*(/*"(3*"(3*�{-+oA
{oA
{oA
*0$u{,{o�

(0
,(/*0$	{,*}r�Xps]

(^
*&(Z
*0V
YE@MZgt�����8t�}{�1s5
o�
{�2s5
o�
*t�}*t�}*t�}*t�}*t�}{�.sR
oS
{�0sT
oU
{�4sB
oC
*t�}*t�}*t�}*t�}	*t�}
*t�}*}*0*�((A(
r-Ypo
tr
o_*0$	{,*}rqYps]

(^
*&(Z
*0�
YE,9FS`mz�8�t�}
*t�}*t�}*t�}*t�}*t�}*t�}*t�}*t�}*t�}*t�}*}*6((F*0S{'op
-#{(o�
oD
{(o�
oE
*{(o�
oD
{(o�
oE
*0$	{0,*}0r�Yps]

(^
*&(Z
*0�
YE,9FS`mz�������� -:8Bt�}*t�}*t�}*t�}*t�}*t�}*t�}*t�} *t�}!*t�}"*t�}#*t�}$*t�}%*t�}&*t�}'{'�Es5
oF
*t�}(*t�})*t�}**t�}+*t�},*t�}-*t�}.*t�}/*}0*{J*"}J*{K*"}K*{L*"}L*F~1(�
t�*6~1(�
*0c(�Ss�
s�
(J�Ts�
s�
(L�Us�
s�
(N(]{?{@oG
*0��o%
%(&
	('
9�	E��8�{6o�


(0
, o(
s)
ryWpo*
o+
{7o�
(0
:8o(
s)

r3Zpo*
o+
o(
s)
rUZpo*
o+
8�{8o�
(0
, o(
s)
ryZpo*
o+
{9o�


(0
:�o(
s)
r�Zpo*
o+
o(
s)

	r�Zpo*
	o+
+n{:o�
(0
, o(
s)
r�Zpo*
o+
oH
oI
{A(�
- o(
s)
r[po*
o+
o%
(&
3	('
+-+oH
t�(P*ju,{B(3
o�
*07�u�
,,oJ
,$oJ
o
o	
oI
(\([*0=�u,4{?o�
{?�
(3
�o�
{?o�
*0��o:
�!�!(�
, �s`
}3o:
3]o?
�[
{3 �s`
(K
,%}2}3+${2(L
}2{3(M
}3o:
3'{3{2(�
s�
(N
�[o@
*n{4-(X}4{4*0U�{?o/
oO
+*oP

oQ
,oQ
o�
r7[p(F
,�op
-��
,oR
�**6G
0Eu{?,<oR
(W(�
,){BoS
oT
u�oU

(0
oV
*0-u{?,$(Wu�oU

(0
-+o2
*0(W
�&�*b{?t�o_
(�
*0$	{I,*}IrM[ps]

(^
*0�
YE,9FS`mz����
'4A8`t�}5*t�}6*t�}7*t�}8*t�}9*t�}:*t�};*t�}<*t�}=*t�}>*t�}?{?�VsR
oS
{?�YsX
oY
*t�}@*t�}A*t�}B{B�Rs2
o3
*t�}C*t�}D*t�}E*t�}F*t�}G*t�}H{H�ZsZ
o[
*}I*�r�[p��(c
��(c
s*
(�
�1*�((d{Os>}M{M�cs�
o<(a*�{N{MoA-r�[p+r�[po?
*0Z{Mo@-
{NoA
*{Mo@o
-{O{Mo@oG
*{O{Mo@o\
*(a*0$	{Q,*}Qr\ps]

(^
*0^
YE&3+>t+}N{N�bs5
o:
*t�}O*t�}P*}Q*� '}R((j{S(
r�Tpo
t�o]
o�
*v(�
{Y{Yo�
o^
*0�{So_
{W�o`
{So_
{Vd�o`
{So_
{X�o`
{So_
{T%{R%
X}R�o`
*�{Yoa
,&{Y �o�
{Y{Yo�
o^
*0$	{Z,*}Zr{\ps]

(^
*0�
YE*7DQ^k8�t��is5
oF
*t�}S*t�}T*t�}U*t�}V*t�}W*t�}X*t�}Y{Y�hsb
oc
*}Z*�(�msd
se
(p(�
(q*bo�o�tA(n*03�t(f
u%
,og
u�,og
u�oh
*{^*"}^*0$	{],*}]r�\ps]

(^
*&(Z
*06
YE+t�}[*t�}\*}]*0��((�s
o

(I+{io
{g �(�o�
{a�ws8
o9
{`�xs8
o9
{b�vs8
o9
{esJ
o�
{fsJ
o�
{_�us8
o9
*(z*0^{bop
-{gr/]p(
tco�
{bop
3{griVp(
tco�
(y(z*0j�{aod
-{lo
{aod
3{lsi
o
{aod
3${ls

�A�oj
o
*(y*0|{`od
-{go�
ok
{`od
3{go�
ok
{`od
3{go�
ok
{`od
3{go�
ok
*0|{_od
-{go�
ol
{_od
3{go�
ol
{_od
3{go�
ol
{_od
3{go�
ol
*07Iof
om
(n

#1#@�@4rE]poo
*�{k(
r�]po
t�op
*6{kop
*�{k(
r2^po
t�oq
*6{koq
*0P�or

UYE3 �YE*os
,os
�+ot
*0�(�
,
ou
ov
*0`�or

UYEB. �YE*+(os
,(w
*(x
*os
,(y
*(z
**0$	{m,*}mrx^ps]

(^
*&(Z
*0�
YE,9FS������!P8Xt�}_*t�}`*t�}a*t�}b*t�}c*t�}d*t�}e{e�|s5
o�
{e�}s5
o�
*t�}f{f�~s5
o�
{f�s5
o�
*t�}g*t�}h*t�}i*t�}j*t�}k{k�{s{
o|
*t��s}
o~
t��s
o�
*t�}l*}m*6((�*
*0$	{p,*}pr�^ps]

(^
*06
YE+t�}n*t�}o*}p*6((�*0$	{t,*}tr8_ps]

(^
*0G
YE+'t�}q*t�}r*t�}s*}t*0�((�s�

r�_pr�
pr�_pr�_pr�pso�
r�_pr`pr`prL`prj`pso�
r�`pr�`pr�`pr�`pr�pso�
r�`praprapr�
pr�pso�
r,apr<aprFapr�apr�pso�
r�apr�apr�
pr�apr�pso�
r�apr�apr�apr:bpr�pso�
{uo�
*0$	{w,*}wrXbps]

(^
*06
YE+t�}u*t�}v*}w*f((�{xob
*J{xop
(�*0��{yo�
o�
{yo�
{yoK
oi
+o.

o�
o�
op
-��
,oR
�E(5*r'p(�*rup(�*rup(�*rup(�*r�p(�*-!N
�{yoK
oL
o�
{yo�
*�{yoK
oL
o�
{yo�
*0l�o�
(�
#$@[(�

o�
(�
#$@[(�
(�
o�
#3@6#3@6o�
o�
*0��o�
o�
3~o�
(�
#$@[(�

r�bp#$@Z�O#�?X#$@Z�O(j
#3@6r�bp#$@Z�O(L
o�
*0��o%
(&
-	('
+,}oH
oI
os
rup(F
,ao(
s)

rcpo*
o+
o(
s)
r
cpo*
o+
rcp(�rcp(�r(cp(�*(a
*^{R{x{Sob
*0A�sQ}S}RoH
o�
o�

,�Rs�
s�
o�
*0$	{~,*}~r4cps]

(^
*0�
YE)dq~�8�t�}x{x��s8
o9
*t�}y{y��s�
o�
{y��s�
o�
*t�}z*t�}{*t�}|*t�}}{}��s2
o3
*}~*zs|}((�(�*0�{�(U
oV
{{�o�
tOogo�{{�o�
tOogo�{�o�
{�oK
o�
{�oK
o�
{o

os
8on
ts`
o'
ot
os
r
po�
,7s
#�r@o
o
o 
o!
o
os
rwpo�
,o�
os
r
po�
,o�
o'
rep(F
-+o
o'
rep(F
-+repob
o'
rep(F
-+o�
o'
(�
	,	o
{�oK
oc
op
:����u',oR
�{�oK
o�
{�{o�
(u
��sv
ow
&*A�-�F{�~�
o
*0��rep(F
,si
r�cpou
o�
*r
po�
,(si
r�cpo8
o6
o7
o�
*rwpo�
,$s

о(c
(�
oj
o
**(�*0d�o�
os
rep(>
,*s

{o�Y+*{�o=
 �.o�
o�
d/Y/�o�
*0$	{�,*}�r�cps]

(^
*&(Z
*0�
YE@M+ot�}�*t�}�*t+}�{���s5
o:
*t�}�*t�}�{���s�
o�
*}�*0y((�s�}�{�o�{�sJ
o�
{�{�o�o�
{�{�o�
{�ob
{�sJ
o�
*2{�o�*2{�o�*�{�,{�{�o�Y(�
o�*0Go�
-o�
os
r\Qp(F
,'{�{�o�o�
o�
o�o�
*J(�
{�o�*^{�{�op
o�*0$	{�,*}�rdps]

(^
*0
YE	@d|�����8�t�}�{���s5
o�
{���s5
o�
*t�}�{���s8
o9
*t���s�
o�
*t�}�*t�}�*t�}�*t�}�*t�}�{���s�
o�
*t�}�*}�*{�*�(/(�{�ob
o.{�ob
o.*0{�-*{�op
-P{�~�
o
{�~�
o
{�~�
o
{�~�
o
{�~�
o
{�op
@�{�(
rZdpo
t6o�
{�(
r�dpo
t6o�
{�(
r�dpo
t6o�
{�(
r�dpo
t6o�
{�(
r epo
t6o�
*�{�{�rdep{�o�
(L
(**o.*�o'o�
o�
o�
t�(+*0$	{�,*}�r�eps]

(^
*0
YE	)Mq�����8�t�}�{���s8
o9
*t+}�{���s5
o:
*t+}�{��-s5
o:
*t�}�{���s�
o�
*t�}�*t�}�*t�}�*t�}�*t�}�*}�*{�*0C(/(�{�ob
o.{�ob
o.{�ob
o.*0{�-*{�op
-`{�(
r�epo
t^o�
{�(
rfpo
t^o�
{�(
rFfpo
t6o�
{�op
3L{�o�
{�(
rzfpo
t^o�
{�(
rFfpo
t6o�
{�op
30{�~�
o
{�~�
o
{�~�
o
*�{�{�r�fp{�o�
(L
(**o.*�o'o�
o�
o�
t�(+*0$	{�,*}�r�fps]

(^
*0�
YE)Mq��8�t�}�{���s8
o9
*t+}�{���s5
o:
*t+}�{��-s5
o:
*t�}�{���s�
o�
*t�}�*t�}�*}�*6((�*0V{�-*{�op
,{�op
.{�op
3*{�o�
~�
o
{�o�
~�
o
{�op
.{�op
.{�op
3,{�r&gp(�o�
{�rHgp(�o�
{�op
.{�op
3 {�(
rngpo
t�o�
{�op
.{�op
3 {�(
r�gpo
t�o�
{�op
,{�op
3{�~�
o
*J(
o
tb*0$	{�,*}�r�gps]

(^
*0^
YE&3+>t�}�{���s8
o9
*t�}�*t�}�*}�*~((���s5
(�
*0�~sv%
}�(�
*0Q(�
,1{� 0u(�(J+o�
{�{�o�
o�
*~(j
,(�(�*(�*Jr�Sp(�(�*2r�Sp(�*0:�%}�(�
s
(�
o�
o�
o�
&o	�*0]u~-
{�o�
*(�{�o�

(0
,{�{�o�
o�
*{�{�o�
o�
*0ko"
o�
r�Sp(F
,-{�o�
{�(
r
Tpo
u6o�
*{�~�
o
{�o"
�Do�
*0$	{�,*}�rhps]

(^
*0a
YE@d����������
8t�}�{���s5
o�
{���s5
o�
*t+}�{���s5
o:
*t�}�{���s8
o9
*t�}�*t�}�*t�}�*t�}�*t�}�*t�}�*t�}�*t�}�*t�}�*t�}�*t�}�*}�*0x((�{�rprvhps�
o�
{�rup �s#
s�
o�
{���s8
o9
{���s8
o9
*0X{�op
-{�r/]p(
tco�
{�op
3{�riVp(
tco�
(�*(�*0]{�op
-{�o�
o�
{�op
3{�o�
o�
{�op
3{�o�
o�
*0$	{�,*}�r�hps]

(^
*0�
YE,9FS`mz�8�t�}�*t�}�*t�}�*t�}�*t�}�*t�}�*t�}�*t�}�*t�}�*t�}�*t�}�*}�*�((�{�sJ
o�
{���s�
s�
o�
*0r�Ipo�
(>

(
&�&�*	�{�, {�(
r�hpo
t^o
*V{�,{�o
*0�{�-*{�op
- {�(
r�hpo
t^o�
{�op
3 {�(
r0ipo
t^o�
{�op
3 {�(
rTipo
t^o�
{�op
3{�~�
o
*J{�op
��*0$	{�,*}�rzips]

(^
*0�
YE@dq~8�t�}�{���s5
o�
{���s5
o�
*t�}�{���s8
o9
*t�}�*t�}�*t�}�*}�*6((�*0{�-*{�op
-+{�r�ip(
t^o�
{�~�
o
{�op
3@{�r"jp(
t^rHjp(
t^s=o�
{�~�
o
{�op
3+{�rnjp(
t^o�
{�~�
o
{�op
3*{�o�
~�
o
{�o�
~�
o
*0$	{�,*}�r�jps]

(^
*0�
YE3@M+Xt�}�*t�}�{���s8
o9
*t�}�*t�}�*t�}�*}�*~((���s5
(�
*0��s�

r�jp(�s�o�
��(c
o�
r�jprkp(7
rJkp(>
s�o�
rfkprkp(7
rzkp(>
s�o�
{�o�
{�o�
*0�s�

{�o�
*f-*jo�
{�o�
*f(�}�{�oA
*6{�(�*r{�o�
t}o�(�*0$	{�,*}�r�kps]

(^
*&(Z
*0(
YE)MZ~�������8�t+}�{���s5
o:
*t+}�{���s5
o:
*t�}�*t+}�{���s5
o:
*t�}�*t�}�*t�}�*t�}�*t�}�*t�}�*t�}�*t�}�*}�*�r�kp�A(c
�(c
�As~
((
��*J~��Ao�
*F~�o�
�*�((�{�rupo�
{�ob
*N{�op
],**:{�op
[*0x�{�o�
o�

+P{�ov
o�
(�3*(�{�o�
rup(�s�
o�
+(�X
{�ov
ow
2�*0$	{�,*}�rlps]

(^
*0�
YE&3@MZg+rt�}�{���s8
o9
*t�}�*t�}�*t�}�*t�}�*t�}�*t�}�*}�*6((�*�{�o�
{�oK
ox
o�
*F{�o�
o�
*0$	{�,*}�rflps]

(^
*0�
YE)Mq+|t�}�*t�}�*t�}�*t+}�{���s5
o:
*t+}�{���s5
o:
*t�}�*}�*�((�{���s8
o9
(�*0I{�{�op
,riVp+r{Vp(
tco�
{�{�op
�oA
*�{�o�
{�r'po�
{�rpo�
*�{�o�
{�r'po�
{�rpo�
{�rupo�
*�{�o�
{�rpo�
{�rupo�
*2{�o�
*0H{�-*{�op

E*(�*(�*(�*(�*0$	{�,*}�r�lps]

(^
*0o
YE3@+Kt�}�*t�}�{���s8
o9
*t�}�*t�}�*}�*b(({�o�
*�{�o�
{�o�
{�o�
*�{�o�
{�o�
{�o�
*0$	{�,*}�rmps]

(^
*&(Z
*03
YE,9FS`mz����8�t�}�*t�}�*t�}�*t�}�*t�}�*t�}�*t�}�*t�}�*t�}�*t�}�*t�}�{��s5
o�
{��s5
o�
*t�}�*t�}�*t�}�*}�*0t(((�
}�{{�o�
{�
s8
o9
{�
s8
o9
{�
s8
o9
(*0a�r�poo

r�poo
r7poo
,3,0,-(
(3
(�
(�
s�
(
(�
(�
*s�
*0C�o�
tP((o�
tP(
s�
(�
,rrmpo�
*b{o�
t-(*b{o�
t-(*b{o�
t-(*0(�of
om
o�

o�
-o�
o�
*(*0l�{o�
{�o�
o�
o
+on
t�
o�
(o�
op
-��u',oR
��{o�
�*!+LT_0Ur�p{o�
t-(r�p{o�
t-(r7p{o�
t-(*0=�o�

(�
o�
o�
,
~-
o�
*o�
o�
o�
*bo�
tP((*bo�
tP((*o�
*0$	{,*}r�mps]

(^
*&(Z
*0)
YE,9]��8�t�}*t�}*t�}*t�}*t�}{�	s{
o|
*t�}{�
s{
o|
*t�}{�s{
o|
*t�}{�s�
o�
{�s�
o�
{�s�
o�
*}*6((*0$	{,*}r8nps]

(^
*&(Z
*0�
YE)6CP+[t�}	*t�}
*t�}*t�}*t�}
*t�}*t�}*}*0,�((s
(�
�s�
o�
*�u�o�-{o
{o�
*0$	{,*}r�nps]

(^
*&(Z
*0�
YE,9FS`mz��8�t�}*t�}*t�}*t�}*t�}*t�}*t�}*t�}*t�}*t�}*t�}*t�}*}*0�(((Ќ(c
s�
}{�#s�
o�
{�"s�
o�
{ropo�
(%{"{o�
{ �$s8
o9
*J(�
{o�
*0�o�
u'
,oR
*0�s�

o�
*0ko"
o�
r�Sp(F
,-{+o�
{+(
r
Tpo
u6o�
*{+~�
o
{+o"
�Do�
*0$	{,,*},r2ops]

(^
*&(Z
*0�
YE
,9FS`mz���8�t�}*t�} *t�}!*t�}"*t�}#*t�}$*t�}%*t�}&*t�}'*t�}(*t�})*t�}**t�}+*},*"(M+&*(a
*VЁ(c
o�
(�
*
*
*(�
*(a
*03�~-(�
, r�op�(c
o�
s�

�-~-*~.*�.*b((4{1o�
*�{1o�
{1oK
{/o�
t�oZ
toL
o�
*0$	{:,*}:r�ops]

(^
*0�
YE6CP]jw���8�t�}/*t+}0{0�3s5
o:
*t�}1*t�}2*t�}3*t�}4*t�}5*t�}6*t�}7*t�}8*t�}9*}:*0@��(c

rNpp�g(c
(�
�;r�!p�g(c
(�
�<*0X((�
�:s�
s�
(>�<s�
s�
(@(A{?(
o�
(9*B{?-*(9*0R{>op
-{?r�pp(
tco�
{>op
3{?riVp(
tco�
*�}=(u
�;sv
ow
&*0R�{={=o�
#@[{=o�
#@[s�
o

(
i(
i(<&*�o
(
.'o
(
.o
(
.
o
(
3o
*F~;(�
tg*6~;(�
*F~<(�
tg*6~<(�
*0$	{D,*}Dr�pps]

(^
*0�
YE&3@MZ+et�}>{>�8s8
o9
*t�}?*t�}@*t�}A*t�}B*t�}C*}D*�����lSystem.Resources.ResourceReader, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089#System.Resources.RuntimeResourceSetjPADPADPQ�F�V����^�]m�M�DŽ3˄s<�{/���Q���E��O�-'�\n����7��Ű��U�kF-��D�<�N�+�Z��5 �������C��L�/6$��?���Vđ]���%��
2�`?T�:^`���ē�ȓo֐��B���$|���җs1֗PD�������z!��&l^�|�l��4��L��U�x�О�b���1�-������5񞠽5��~��Y���@
��mǦ����ճ���<��Fd��݇���_4�I>��d,D�>KP�f��FJ@��xN��Q�&<d�|kr�浤�#��y��^��E��5I�
�δɏ��B<�5�A��9F�7nûёľ���'��'����������$���4�����<���
���m��wu�1�zʆ������LT��ak���̜.+�"+�����!�Х�;��B��0���SԲVW��؁��"+�J8AՐ�F�oTeֵ�j�/��u��L���X��كw��/�#�u
%��4�*���n_ݟ�i݊�_�а`��WN"�
��w��U�σ��������ު���d��̭
�K���S���
��9)�i[�,Z���SF�Y�T�Ɩ�������P:�y�~��iv�3�ܫ.��9���e��M����f�뫕�™���o���
��K��'�PD4|E�c(�)#�yվ`K�:j�XY�mQ�	mvr/0*
�
%G`�fld�
Xu��^��˽���j�5�����,��f�hv(j����XeW�ӻ@��t��U>����BF}�t�T\	W��<ѯ��	�S���M 8�W x?� ]$!�da"ӑ�#��%���%�"M)d	/��!0��e1�]�1��1@��38�3��3�\
4'�7}Ъ7lЀ8��9)�9m��:7O;���;ݺ�;hTu<:Y&>�(�>V��>��A�:A��lA�xAz!}A��B�KHB�JB�MB\}TB~�bB)"�B��B�+�C���Fأ�F)H�qH
y'HLt�H>.I�`IT�aI�=J�=AJ�]GJԉHJO�J�-�J�I�J�h	K9`�K�KTG�K
?cMPkdM> 5N���O0EQ'ESYVSSS*�S
F�S���TG�5Vl\�W6��W�?CY�rCY9�QY�q�Z�ޕZ�0f[���\؍�\*�\�*]0V]1��]o��]�&�]s�^_n�`�ٿ`n�?a��@a�Lba�;b�n�b�d�&0d���fL�i��i"OJjx~Xj���j���k���kE,mU�1m��$os
(o�.toJuQp��Vp�c�p@`kr�{r��r�3Ts_�ds�_�t�M�t-�"vLV�x�xR>�y���zf��z���z�Q{k��{ǽ|���}뺽1'��]�Gx��O�O����)B)$}	&:pT��bEK��Jd��&"%�e-&JS,p�b�%s%mO�^-�-�3�R�R��E�p�DhD�9���U�Q$Y�X];1D�`�b c�

[VLLM_�S'�$\$�
Q4�3�F�`a+{a�aIsG2Gn067�7��4�>P'�'G#�#T[�[N5�4�:�:;UoR�X,s��569@hW*^c^{eE��HI�2
=8�8�6K6���J�7d+�+�2W=��=�=�\�\�H-N�=W!� 0�/wP�PjN�NM*�*D�CBXuX^WJ J�8B2beb�Z�Z� �SSS`FlM�	�^_�fZf;/�B�G�S1T�T�T�d�dCk�5be�^�LM�V�(�I�Iu\�>5><]�%`\`�X[�_�A�A�.�;q.*	��KD9�9�S-]Q"Q� �D�`X��F�FG�8>a�6�_�_�)�L�L:\�[HI���Y�Y21�1S�;�@x@=ocFA�!As�M��Me$R�Q�AG(�'�E'F�"�a�U�U��1A2�JK�N2O��GBHbEE��N�2gY�e��"O>Z*C_C8��0@�?�n

�]�]\3B �${�I&.�Q�?S?J
�
��<=�cd�<<�[�K�K0P/VnV�L"�"i,�,�5�ByB�@�P�V-W�(��C�?�W�W�rJcontrols/collectionviewnavigator.bamlJcontrols/collectionviewnavigator.xaml$Pcontrols/collectionviewnavigator.xaml.cs�'hcontrols/controlstyles/democolumnchoosercontrol.bamlG@hcontrols/controlstyles/democolumnchoosercontrol.xaml�GNcontrols/controlstyles/hintcontrol.baml.MNcontrols/controlstyles/hintcontrol.xaml�S\controls/controlstyles/inplaceprogressbar.baml�Z\controls/controlstyles/inplaceprogressbar.xaml�_bcontrols/controlstyles/masterdetailtemplates.bamlWdbcontrols/controlstyles/masterdetailtemplates.xaml�wVcontrols/controlstyles/nametextcontrol.bamlh�Vcontrols/controlstyles/nametextcontrol.xaml��Bcontrols/controlstyles/panel.bamlݣBcontrols/controlstyles/panel.xaml٩Vcontrols/controlstyles/sharedtemplates.baml	�Vcontrols/controlstyles/sharedtemplates.xaml��Vcontrols/controlstyles/summarycombobox.bamlB�Vcontrols/controlstyles/summarycombobox.xaml��,controls/converters.cs"�2controls/customclasses.cs�
Pcontrols/datagridtestclasses.designer.csGHcontrols/democolumnchoosercontrol.cs`*:controls/demomodulecontrol.cs22<controls/demovaluesprovider.cs�INcontrols/efservermodemodel1.designer.cs
PBcontrols/gridcontroldefinition.csIlNcontrols/internetconnectioncontrol.baml�qNcontrols/internetconnectioncontrol.xamltuTcontrols/internetconnectioncontrol.xaml.csty:controls/masterdetailitems.cs�{Tcontrols/miltiselectionoptionscontrol.bamlôTcontrols/miltiselectionoptionscontrol.xaml`�Zcontrols/miltiselectionoptionscontrol.xaml.csԾ@controls/nwindmodel1.designer.cs�<controls/orderdatagenerator.cs\f@controls/outlookdatagenerator.cs��6controls/salesbyyeardata.cs�Bcontrols/sqlconnectionwindow.baml �Bcontrols/sqlconnectionwindow.xaml��Hcontrols/sqlconnectionwindow.xaml.cs.�>controls/storyboardcontainer.cs�
Ncontrols/tabheaderprintinfocontrol.baml�Ncontrols/tabheaderprintinfocontrol.xaml@Tcontrols/tabheaderprintinfocontrol.xaml.cs�"controls/tasks.csT$*data/countriesdata.csUU0data/xposervicehelper.cssYdemoicon.ico`\.demotesting/fixtures.csS�Rdescriptions/multieditordescriptions.baml�6Rdescriptions/multieditordescriptions.xaml�Sgeneric.baml3|"images/dxgrid.png�8images/filtercontrol/add.pngM�>images/filtercontrol/delete.png�@images/filtercontrol/produce.png�<images/multiview/birthdate.png�:images/multiview/contacts.png��8images/multiview/country.png��:images/multiview/fullname.pngT�Zimages/multiview/groupname/administration.png��Pimages/multiview/groupname/inventory.png�Ximages/multiview/groupname/manufacturing.png��Limages/multiview/groupname/quality.png~�Nimages/multiview/groupname/research.png-�Himages/multiview/groupname/sales.png��:images/multiview/jobtitle.png��6images/multiview/orders.png�,images/warningicon.pngg�Nmoduleresources/autofilterrowclasses.cs��Vmoduleresources/autofilterrowtemplates.baml@�Vmoduleresources/autofilterrowtemplates.xaml��`moduleresources/bindingtodynamicobjectclasses.cs�Lmoduleresources/bindingtoxmlclasses.cs�Nmoduleresources/cardtemplatesclasses.csIVmoduleresources/cardtemplatesresources.baml�Vmoduleresources/cardtemplatesresources.xaml�,Lmoduleresources/cardviewtemplates.baml�NLmoduleresources/cardviewtemplates.xamlRSTmoduleresources/collectionviewviewmodel.csfVNmoduleresources/columnchooserclasses.cs�ZFmoduleresources/copypasteclasses.cs�]Nmoduleresources/copypastetemplates.baml9jNmoduleresources/copypastetemplates.xaml�qXmoduleresources/currentdatarowtemplates.bamlWxXmoduleresources/currentdatarowtemplates.xamlH�`moduleresources/customedittemplateresources.baml��`moduleresources/customedittemplateresources.xaml|�Nmoduleresources/dataerrorinfoclasses.csԮLmoduleresources/dragdroptemplates.bamlҸLmoduleresources/dragdroptemplates.xaml$�Hmoduleresources/dragdropviewmodel.cs��^moduleresources/embeddedtableviewtemplates.baml^�^moduleresources/embeddedtableviewtemplates.xaml�\moduleresources/expandcollapsegroupsclasses.cs�dmoduleresources/expandcollapsegroupstemplates.baml��dmoduleresources/expandcollapsegroupstemplates.xamlFmoduleresources/filteringclasses.cs7Nmoduleresources/filteringtemplates.baml�Nmoduleresources/filteringtemplates.xaml�(Tmoduleresources/fixedcolumnstemplates.baml�/Tmoduleresources/fixedcolumnstemplates.xamli<Pmoduleresources/groupintervalsclasses.cs�Hfmoduleresources/groupsummariesalignmentviewmodel.csSLmoduleresources/groupsummaryclasses.cskYTmoduleresources/groupsummarytemplates.baml�]Tmoduleresources/groupsummarytemplates.xaml�hPmoduleresources/groupsummaryviewmodel.cs�tBmoduleresources/hittestclasses.cs�~Jmoduleresources/hittesttemplates.baml�Jmoduleresources/hittesttemplates.xamlӒXmoduleresources/hyperlinkattachedbehavior.cs�Xmoduleresources/inplaceeditorstemplates.baml՛Xmoduleresources/inplaceeditorstemplates.xaml��Vmoduleresources/inplacelookupeditclasses.cs
�^moduleresources/inplacelookupeditresources.baml��^moduleresources/inplacelookupeditresources.xaml�Lmoduleresources/largedatasetclasses.cs��Xmoduleresources/linqservermodetemplates.baml
Xmoduleresources/linqservermodetemplates.xaml�hmoduleresources/linqtoentityservermodetemplates.baml]hmoduleresources/linqtoentityservermodetemplates.xamlN#Dmoduleresources/livedataclasses.cs�+Lmoduleresources/livedatatemplates.bamlRtLmoduleresources/livedatatemplates.xamla�Pmoduleresources/lookupedittemplates.bamll�Pmoduleresources/lookupedittemplates.xaml��Pmoduleresources/masterdetailviewmodel.cs��Lmoduleresources/multieditorsclasses.csU�Tmoduleresources/multieditorstemplates.bamlE�Tmoduleresources/multieditorstemplates.xaml�	Tmoduleresources/multiplegroupingclasses.csh+	\moduleresources/multiplegroupingtemplates.baml-0	\moduleresources/multiplegroupingtemplates.xaml�9	Pmoduleresources/multiselectionclasses.cs�F	Xmoduleresources/multiselectiontemplates.bamlYL	Xmoduleresources/multiselectiontemplates.xamlP	Fmoduleresources/multiviewclasses.cs�R	Nmoduleresources/multiviewtemplates.baml�V	Nmoduleresources/multiviewtemplates.xaml�v	Jmoduleresources/multiviewviewmodel.cs��	Vmoduleresources/multiviewviewtemplates.baml��	Vmoduleresources/multiviewviewtemplates.xaml��	Xmoduleresources/persistentrowstateclasses.cs�
`moduleresources/persistentrowstatetemplates.baml�-
`moduleresources/persistentrowstatetemplates.xaml	G
\moduleresources/plinqinstantfeedbackclasses.cs�o
dmoduleresources/plinqinstantfeedbacktemplates.baml�t
dmoduleresources/plinqinstantfeedbacktemplates.xamlS~
`moduleresources/plinqinstantfeedbackviewmodel.csۉ
Zmoduleresources/printmasterdetailviewmodel.cs2�
Tmoduleresources/printoptionstemplates.baml¦
Tmoduleresources/printoptionstemplates.xaml_�
Xmoduleresources/printtemplatesresources.baml&�
Xmoduleresources/printtemplatesresources.xaml��
Xmoduleresources/realtimedatasourceclasses.cs~\moduleresources/realtimedatasourceviewmodel.cs_2Jmoduleresources/routedeventshelper.cs�<Jmoduleresources/rowtemplateclasses.cs�ERmoduleresources/rowtemplatetemplates.bamlGRmoduleresources/rowtemplatetemplates.xaml�XJmoduleresources/searchpanelclasses.csuRmoduleresources/searchpaneltemplates.bamlxRmoduleresources/searchpaneltemplates.xaml]~Nmoduleresources/searchpanelviewmodel.cs�Nmoduleresources/serializationclasses.cs��Hmoduleresources/sharedresources.baml{�Hmoduleresources/sharedresources.xaml>�Lmoduleresources/treelistviewclasses.cs�Tmoduleresources/treelistviewtemplates.baml�Tmoduleresources/treelistviewtemplates.xaml�Pmoduleresources/unboundcolumnsclasses.cs��Xmoduleresources/unboundcolumnstemplates.baml��Xmoduleresources/unboundcolumnstemplates.xaml��Hmoduleresources/validationclasses.cs��lmoduleresources/verticalscrollingoptionstemplates.baml��lmoduleresources/verticalscrollingoptionstemplates.xaml��hmoduleresources/verticalscrollingoptionsviewmodel.cs6�`moduleresources/wcfinstantfeedbacktemplates.baml+�`moduleresources/wcfinstantfeedbacktemplates.xaml��\moduleresources/wcfinstantfeedbackviewmodel.cs|�Xmoduleresources/xpoinstantfeedbackclasses.cs>�`moduleresources/xpoinstantfeedbacktemplates.baml#`moduleresources/xpoinstantfeedbacktemplates.xaml
4modules/autofilterrow.baml34modules/autofilterrow.xaml":modules/autofilterrow.xaml.csz0.modules/bandedview.baml�3.modules/bandedview.xaml�H4modules/bandedview.xaml.cs�aFmodules/bindingtodynamicobject.baml�cFmodules/bindingtodynamicobject.xaml&xLmodules/bindingtodynamicobject.xaml.cs��2modules/bindingtoxml.bamle�2modules/bindingtoxml.xamlq�8modules/bindingtoxml.xaml.cs*�4modules/cardtemplates.baml�4modules/cardtemplates.xaml,�:modules/cardtemplates.xaml.cse�*modules/cardview.baml�
*modules/cardview.xaml�
0modules/cardview.xaml.cs�1
6modules/cellsselection.baml�9
6modules/cellsselection.xaml�F
<modules/cellsselection.xaml.cs�Q
6modules/collectionview.bamld
6modules/collectionview.xamllr
<modules/collectionview.xaml.cs}}
4modules/columnchooser.baml
4modules/columnchooser.xamlݒ
:modules/columnchooser.xaml.csb�
0modules/contextmenu.bamlF�
0modules/contextmenu.xamlc�
6modules/contextmenu.xaml.csf�
,modules/copypaste.baml�,modules/copypaste.xamlj12modules/copypaste.xaml.csoe6modules/currentdatarow.baml��6modules/currentdatarow.xaml9�<modules/currentdatarow.xaml.cs	�>modules/customedittemplate.baml~�>modules/customedittemplate.xamlt�Dmodules/customedittemplate.xaml.cs��4modules/dataerrorinfo.baml��4modules/dataerrorinfo.xamle�:modules/dataerrorinfo.xaml.cs9�*modules/dragdrop.baml��*modules/dragdrop.xaml�0modules/dragdrop.xaml.cs�-<modules/embeddedtableview.baml!/<modules/embeddedtableview.xaml�@Bmodules/embeddedtableview.xaml.csOBmodules/expandcollapsegroups.baml-SBmodules/expandcollapsegroups.xaml�cHmodules/expandcollapsegroups.xaml.csUs4modules/filtercontrol.bamlj{4modules/filtercontrol.xaml��:modules/filtercontrol.xaml.cs�,modules/filtering.bamlª,modules/filtering.xamla�2modules/filtering.xaml.cs��2modules/fixedcolumns.bamlP�2modules/fixedcolumns.xaml��8modules/fixedcolumns.xaml.csw�8modules/gridsearchpanel.baml�8modules/gridsearchpanel.xamlo#>modules/gridsearchpanel.xaml.csyL*modules/grouping.bamlzN*modules/grouping.xaml�e0modules/grouping.xaml.csY�6modules/groupintervals.baml	�6modules/groupintervals.xamlݘ<modules/groupintervals.xaml.csݩHmodules/groupsummariesalignment.baml��Hmodules/groupsummariesalignment.xaml��Nmodules/groupsummariesalignment.xaml.cs��2modules/groupsummary.baml��2modules/groupsummary.xamlg�8modules/groupsummary.xaml.cs(modules/hittest.baml.(modules/hittest.xaml�3.modules/hittest.xaml.cs�J6modules/inplaceeditors.baml�e6modules/inplaceeditors.xamlK�<modules/inplaceeditors.xaml.csR�<modules/inplacelookupedit.baml�<modules/inplacelookupedit.xamlU�Bmodules/inplacelookupedit.xaml.cs3�2modules/largedataset.baml]�2modules/largedataset.xaml��8modules/largedataset.xaml.cs�6modules/linqservermode.baml�"6modules/linqservermode.xaml`=<modules/linqservermode.xaml.cs~UFmodules/linqtoentityservermode.baml�aFmodules/linqtoentityservermode.xaml�yLmodules/linqtoentityservermode.xaml.cs/�*modules/livedata.bamlz�*modules/livedata.xamlڴ0modules/livedata.xaml.cs��.modules/lookupedit.baml(�.modules/lookupedit.xaml�4modules/lookupedit.xaml.cs�:modules/masterdetailview.baml	:modules/masterdetailview.xaml�*@modules/masterdetailview.xaml.cs\`>modules/masterdetailwithef.baml$b>modules/masterdetailwithef.xaml�uDmodules/masterdetailwithef.xaml.csH�2modules/multieditors.bamlے2modules/multieditors.xamlu�8modules/multieditors.xaml.cs��:modules/multiplegrouping.bamlY�:modules/multiplegrouping.xaml\�@modules/multiplegrouping.xaml.cs@�6modules/multiselection.bamli�6modules/multiselection.xaml�<modules/multiselection.xaml.csm,modules/multiview.baml�1,modules/multiview.xaml0@2modules/multiview.xaml.cs=U.modules/newitemrow.bamlBY.modules/newitemrow.xamlRi4modules/newitemrow.xaml.cs�x>modules/persistentrowstate.baml�}>modules/persistentrowstate.xamlN�Dmodules/persistentrowstate.xaml.cs]�Bmodules/plinqinstantfeedback.baml��Bmodules/plinqinstantfeedback.xaml��Hmodules/plinqinstantfeedback.xaml.cs��<modules/printmasterdetail.baml1�<modules/printmasterdetail.xaml�Bmodules/printmasterdetail.xaml.cs�.2modules/printoptions.baml�42modules/printoptions.xamlM8modules/printoptions.xaml.cs�h6modules/printtemplates.bamlzr6modules/printtemplates.xaml`�<modules/printtemplates.xaml.cs��>modules/realtimedatasource.bamlT�>modules/realtimedatasource.xaml^�Dmodules/realtimedatasource.xaml.cs��0modules/rowtemplate.baml��0modules/rowtemplate.xaml��6modules/rowtemplate.xaml.csW4modules/serialization.baml�4modules/serialization.xamlR:modules/serialization.xaml.cs�'4modules/sortbysummary.baml304modules/sortbysummary.xaml�A:modules/sortbysummary.xaml.cs'U,modules/tableview.baml�\,modules/tableview.xamlk2modules/tableview.xaml.cs��2modules/totalsummary.bamly�2modules/totalsummary.xaml;�8modules/totalsummary.xaml.cs�2modules/treelistview.baml��2modules/treelistview.xaml��8modules/treelistview.xaml.cs6modules/unboundcolumns.baml�6modules/unboundcolumns.xaml,<modules/unboundcolumns.xaml.cs�5.modules/validation.baml38.modules/validation.xaml�K4modules/validation.xaml.cs�fJmodules/verticalscrollingoptions.baml�wJmodules/verticalscrollingoptions.xaml�Pmodules/verticalscrollingoptions.xaml.cs�>modules/wcfinstantfeedback.bamlͿ>modules/wcfinstantfeedback.xaml�Dmodules/wcfinstantfeedback.xaml.cs3�>modules/xpoinstantfeedback.bamlr�>modules/xpoinstantfeedback.xaml�Dmodules/xpoinstantfeedback.xaml.cs&-program.cs'64properties/assemblyinfo.csB9@properties/resources.designer.cs�<\service%20references/wcfscservice/reference.csLC&themes/generic.baml�k&themes/generic.xamln!MSBAML```����GridDemo-'DXDemo.Controls.CollectionViewNavigator\XPresentationFramework, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35RNWindowsBase, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35WSPresentationCore, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35D9http://schemas.microsoft.com/winfx/2006/xaml/presentationRNSystem.Xaml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089:x,http://schemas.microsoft.com/winfx/2006/xamlJmc;http://schemas.openxmlformats.org/markup-compatibility/2006@d2http://schemas.microsoft.com/expression/blend/2008a]DevExpress.Xpf.Core.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a;dx2http://schemas.devexpress.com/winfx/2008/xaml/core?dxe5http://schemas.devexpress.com/winfx/2008/xaml/editors->�Name$source��.���-��Name$
root����Orientation$Vertical=�.+�$DevExpress.Xpf.Core.GroupFrame$��Group Descriptions��.���$Vertical=�.+�("DevExpress.Xpf.Editors.ListBoxEdit$�70��ItemsSource�*" CollectionView.GroupDescriptions+
SelectedIndex�*CurrentGroupDescription+�Mode$TwoWay=�ItemTemplate��.R������*PropertyName+��$��New Item Property Name��$
�0,5,0,0q�)#DevExpress.Xpf.Editors.ComboBoxEdit'!DevExpress.Xpf.Editors.ButtonEditIsTextEditable.$
�0,5,0,0q�+%DevExpress.Xpf.Editors.LookUpEditBaseItemsSource�*Fields+	SelectedItem	�*CurrentGroupFieldName+$TwoWay=���$
Horizontal=�$
�0,5,0,0q�.+��$
�Add New��$
�0,0,5,0q����*
AddGroup+�$�Delete Current�����*
DeleteGroup+$��Sort Descriptions��$
�0,5,0,0q�.���$Vertical=�.+�$�70���*!CollectionView.SortDescriptions+�*CurrentSortDescription+$TwoWay=���.R���$
Horizontal=�.+������*PropertyName+��$��, �������*	Direction+��$��New Item��$
�0,5,0,0q��
�ColumnDefinitions
��$�*���$�*�.+�.$
�0,5,0,0q��*Fields+	�*CurrentSortFieldName+$TwoWay=�.$
�5,5,0,0q�$�1��*
Directions+	�*CurrentSortDirection+$TwoWay=���$
Horizontal=�$
�0,5,0,0q�.+��$
�Add New��$
�0,0,5,0q����*	AddSort+�$�Delete Current�����*
DeleteSort+$
��Editing��$
�0,5,0,0q�y���Path$& EditableCollectionViewVisibility��ElementName$source��.���$Vertical=�.+�& DevExpress.Xpf.Editors.CheckEdit
Content)#DevExpress.Xpf.Core.ObjectConverter$

Is Adding New%DevExpress.Xpf.Editors.BaseEdit
IsReadOnly.{�.	IsChecked�*CollectionView.IsAddingNew+$OneWay=�$
Is Editing Item.$
�0,5,0,0q�{�.�*CollectionView.IsEditingItem+$OneWay=�$��Current Item��y��$3-IsSynchronizedWithCurrentItemEditorVisibility�$source��.���$Vertical=�.+�$'
!Is Synchronized With Current Item�*IsSynchronizedWithCurrentItem+$TwoWay=�$
�0,5,0,0q�.$IsSynchronizedWithCurrentItem.
DisplayMember$LastName��AllowCollectionView.
����*CollectionView+)	#DevExpress.Xpf.Editors.TextEditBase	EditNonEditableTemplate��.R���$
Horizontal=�$
�4,3,4,3q�.+������$SelectedItem.FirstName���$�� �������$SelectedItem.LastName�ItemTemplate��.R���$
Horizontal=�.+������*	FirstName+��$�� �������*
LastName+!�<UserControl x:Class="DXDemo.Controls.CollectionViewNavigator"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
             xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
             xmlns:dx="http://schemas.devexpress.com/winfx/2008/xaml/core"
             xmlns:dxe="http://schemas.devexpress.com/winfx/2008/xaml/editors"
             mc:Ignorable="d"
             d:DesignHeight="300" d:DesignWidth="300"
             x:Name="source">
        <StackPanel Orientation="Vertical" x:Name="root">
            <dx:GroupFrame Header="Group Descriptions">
                <StackPanel Orientation="Vertical">
                    <dxe:ListBoxEdit ItemsSource="{Binding CollectionView.GroupDescriptions}" SelectedIndex="{Binding CurrentGroupDescription, Mode=TwoWay}" Height="70">
                        <dxe:ListBoxEdit.ItemTemplate>
                            <DataTemplate>
                                <TextBlock Text="{Binding PropertyName}"/>
                            </DataTemplate>
                        </dxe:ListBoxEdit.ItemTemplate>
                    </dxe:ListBoxEdit>
                    <TextBlock Text="New Item Property Name" Margin="0,5,0,0"/>
                    <dxe:ComboBoxEdit IsTextEditable="False" ItemsSource="{Binding Fields}" SelectedItem="{Binding CurrentGroupFieldName, Mode=TwoWay}" Margin="0,5,0,0"/>
                    <StackPanel Orientation="Horizontal" Margin="0,5,0,0">
                        <Button Content="Add New" Margin="0,0,5,0" Command="{Binding AddGroup}"/>
                        <Button Content="Delete Current" Command="{Binding DeleteGroup}"/>
                    </StackPanel>
                </StackPanel>
            </dx:GroupFrame>
            <dx:GroupFrame Header="Sort Descriptions" Margin="0,5,0,0">
                <StackPanel Orientation="Vertical">
                    <dxe:ListBoxEdit ItemsSource="{Binding CollectionView.SortDescriptions}" SelectedIndex="{Binding CurrentSortDescription, Mode=TwoWay}" Height="70">
                        <dxe:ListBoxEdit.ItemTemplate>
                            <DataTemplate>
                                <StackPanel Orientation="Horizontal">
                                    <TextBlock Text="{Binding PropertyName}"/>
                                    <TextBlock Text=", "/>
                                    <TextBlock Text="{Binding Direction}"/>
                                </StackPanel>
                            </DataTemplate>
                        </dxe:ListBoxEdit.ItemTemplate>
                    </dxe:ListBoxEdit>
                    <TextBlock Text="New Item" Margin="0,5,0,0"/>
                    <Grid>
                        <Grid.ColumnDefinitions>
                            <ColumnDefinition Width="*"/>
                            <ColumnDefinition Width="*"/>
                        </Grid.ColumnDefinitions>
                        <dxe:ComboBoxEdit IsTextEditable="False" ItemsSource="{Binding Fields}" SelectedItem="{Binding CurrentSortFieldName, Mode=TwoWay}" Margin="0,5,0,0"/>
                        <dxe:ComboBoxEdit IsTextEditable="False" ItemsSource="{Binding Directions}" SelectedItem="{Binding CurrentSortDirection, Mode=TwoWay}" Margin="5,5,0,0" Grid.Column="1"/>
                    </Grid>
                    <StackPanel Orientation="Horizontal" Margin="0,5,0,0">
                        <Button Content="Add New" Margin="0,0,5,0" Command="{Binding AddSort}"/>
                        <Button Content="Delete Current" Command="{Binding DeleteSort}"/>
                    </StackPanel>
                </StackPanel>
            </dx:GroupFrame>
            <dx:GroupFrame Header="Editing" Margin="0,5,0,0" Visibility="{Binding Path=EditableCollectionViewVisibility, ElementName=source}">
                <StackPanel Orientation="Vertical">
                    <dxe:CheckEdit IsChecked="{Binding CollectionView.IsAddingNew, Mode=OneWay}" Content="Is Adding New" IsReadOnly="True" IsEnabled="False"/>
                    <dxe:CheckEdit IsChecked="{Binding CollectionView.IsEditingItem, Mode=OneWay}" Content="Is Editing Item" IsReadOnly="True" Margin="0,5,0,0" IsEnabled="False"/>
                </StackPanel>
            </dx:GroupFrame>
            <dx:GroupFrame Header="Current Item" Visibility="{Binding Path=IsSynchronizedWithCurrentItemEditorVisibility, ElementName=source}">
                <StackPanel Orientation="Vertical">
                    <dxe:CheckEdit IsChecked="{Binding IsSynchronizedWithCurrentItem, Mode=TwoWay}" Content="Is Synchronized With Current Item"/>
                <dxe:ComboBoxEdit Margin="0,5,0,0" IsTextEditable="False" IsSynchronizedWithCurrentItem="True" ItemsSource="{Binding CollectionView}" DisplayMember="LastName" AllowCollectionView="True" Foreground="Black">
                <dxe:ComboBoxEdit.EditNonEditableTemplate>
                        <ControlTemplate>
                            <StackPanel Orientation="Horizontal" Margin="4,3,4,3">
                                <TextBlock Text="{Binding Path=SelectedItem.FirstName}"/>
                                <TextBlock Text=" "/>
                                <TextBlock Text="{Binding Path=SelectedItem.LastName}"/>
                            </StackPanel>
                        </ControlTemplate>
                    </dxe:ComboBoxEdit.EditNonEditableTemplate>
                        <dxe:ComboBoxEdit.ItemTemplate>
                            <DataTemplate>
                                <StackPanel Orientation="Horizontal">
                                    <TextBlock Text="{Binding FirstName}"/>
                                    <TextBlock Text=" "/>
                                    <TextBlock Text="{Binding LastName}"/>
                                </StackPanel>
                            </DataTemplate>
                        </dxe:ComboBoxEdit.ItemTemplate>
                    </dxe:ComboBoxEdit>
                </StackPanel>
            </dx:GroupFrame>
        </StackPanel>
</UserControl>!�using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using System.ComponentModel;
using System.Collections;
using DevExpress.Xpf.DemoBase.DataClasses;
using DevExpress.Xpf.Core.Commands;
using DevExpress.Xpf.Utils;

namespace DXDemo.Controls {
    public partial class CollectionViewNavigator : UserControl {
        public static readonly DependencyProperty IsSynchronizedWithCurrentItemProperty =
            DependencyPropertyManager.Register("IsSynchronizedWithCurrentItem", typeof(bool), typeof(CollectionViewNavigator), new UIPropertyMetadata(true));
        public static readonly DependencyProperty CollectionViewProperty =
            DependencyPropertyManager.Register("CollectionView", typeof(ICollectionView), typeof(CollectionViewNavigator), new UIPropertyMetadata(null));
        public static readonly DependencyProperty IsSynchronizedWithCurrentItemEditorVisibilityProperty =
            DependencyPropertyManager.Register("IsSynchronizedWithCurrentItemEditorVisibility", typeof(Visibility), typeof(CollectionViewNavigator), new UIPropertyMetadata(Visibility.Visible));
        public static readonly DependencyProperty EditableCollectionViewVisibilityProperty =
            DependencyPropertyManager.Register("EditableCollectionViewVisibility", typeof(Visibility), typeof(CollectionViewNavigator), new UIPropertyMetadata(Visibility.Visible));

        IList directions = new List<ListSortDirection>() { ListSortDirection.Ascending, ListSortDirection.Descending };
        IList fields = new List<string>() { "JobTitle", "FirstName", "LastName", "BirthDate" };
        public IList Directions { get { return directions; } }
        public IList Fields { get { return fields; } }

        public bool IsSynchronizedWithCurrentItem {
            get { return (bool)GetValue(IsSynchronizedWithCurrentItemProperty); }
            set { SetValue(IsSynchronizedWithCurrentItemProperty, value); }
        }
        public ICollectionView CollectionView {
            get { return (ICollectionView)GetValue(CollectionViewProperty); }
            set { SetValue(CollectionViewProperty, value); }
        }
        public Visibility IsSynchronizedWithCurrentItemEditorVisibility {
            get { return (Visibility)GetValue(IsSynchronizedWithCurrentItemEditorVisibilityProperty); }
            set { SetValue(IsSynchronizedWithCurrentItemEditorVisibilityProperty, value); }
        }
        public Visibility EditableCollectionViewVisibility {
            get { return (Visibility)GetValue(EditableCollectionViewVisibilityProperty); }
            set { SetValue(EditableCollectionViewVisibilityProperty, value); }
        }

        public int CurrentSortDescription { get; set; }
        public int CurrentGroupDescription { get; set; }
        public string CurrentGroupFieldName { get; set; }
        public string CurrentSortFieldName { get; set; }
        public ListSortDirection CurrentSortDirection { get; set; }

        public ICommand DeleteGroup { get; private set; }
        public ICommand DeleteSort { get; private set; }
        public ICommand AddGroup { get; private set; }
        public ICommand AddSort { get; private set; }

        public CollectionViewNavigator() {
            InitializeComponent();
            root.DataContext = this;
            DeleteGroup = new DelegateCommand<object>(OnDeleteGroup, CanDeleteGroup);
            DeleteSort = new DelegateCommand<object>(OnDeleteSort, CanDeleteSort);
            AddGroup = new DelegateCommand<object>(OnAddGroup);
            AddSort = new DelegateCommand<object>(OnAddSort);
        }
        void OnDeleteGroup(object parameter) {
            if(CurrentGroupDescription >= 0)
                CollectionView.GroupDescriptions.RemoveAt(CurrentGroupDescription);
        }
        void OnDeleteSort(object parameter) {
            if(CurrentSortDescription >= 0) {
                CollectionView.GroupDescriptions.Remove(FindGroupDescription(CurrentSortDescription));
                CollectionView.SortDescriptions.RemoveAt(CurrentSortDescription);
            }
        }
        void OnAddGroup(object parameter) {
            if(ContainsGroupDescription(CurrentGroupFieldName))
                return;
            CollectionView.GroupDescriptions.Add(new PropertyGroupDescription(CurrentGroupFieldName));
            if(!ContainsSortDescription(CurrentGroupFieldName))
                CollectionView.SortDescriptions.Add(new SortDescription(CurrentGroupFieldName, ListSortDirection.Ascending));
        }
        void OnAddSort(object parameter) {
            if(ContainsSortDescription(CurrentSortFieldName))
                return;
            CollectionView.SortDescriptions.Add(new SortDescription(CurrentSortFieldName, CurrentSortDirection));
        }
        public bool CanDeleteGroup(object parameter) {
            return CurrentGroupDescription >= 0;
        }
        public bool CanDeleteSort(object parameter) {
            return CurrentSortDescription >= 0;
        }
        bool ContainsGroupDescription(string fieldName) {
            foreach(PropertyGroupDescription desc in CollectionView.GroupDescriptions)
                if(desc.PropertyName == fieldName)
                    return true;
            return false;
        }
        PropertyGroupDescription FindGroupDescription(int index) {
            string name = CollectionView.SortDescriptions[CurrentSortDescription].PropertyName;
            foreach(PropertyGroupDescription desc in CollectionView.GroupDescriptions)
                if(desc.PropertyName == name)
                    return desc;
            return null;
        }
        bool ContainsSortDescription(string fieldName) {
            foreach(SortDescription desc in CollectionView.SortDescriptions)
                if(desc.PropertyName == fieldName)
                    return true;
            return false;
        }

    }
}!�MSBAML```����D@GridDemo, Version=13.1.4.0, Culture=neutral, PublicKeyToken=null#clr-namespace:GridDemoGridDemo\XPresentationFramework, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35RNWindowsBase, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35WSPresentationCore, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35RNSystem.Xaml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089a]DevExpress.Xpf.Core.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49afbDevExpress.Xpf.Grid.v13.1.Core, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49aa]DevExpress.Xpf.Grid.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49alhDevExpress.Xpf.Grid.v13.1.Extensions, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a'!GridDemo.DemoColumnChooserControl��
TargetType�Property�Value��
TargetType-'DevExpress.Xpf.Core.NonLogicalDecoratorChild.(DevExpress.Xpf.Grid.ColumnChooserControlNameView2,DevExpress.Xpf.Core.ColumnChooserControlBaseOwnerColumns	�Path
�RelativeSource��Triggers��Value
��Binding�ElementName�
TargetName�D9http://schemas.microsoft.com/winfx/2006/xaml/presentation:x,http://schemas.microsoft.com/winfx/2006/xaml;dx2http://schemas.devexpress.com/winfx/2008/xaml/core@dxg2http://schemas.devexpress.com/winfx/2008/xaml/grid localclr-namespace:GridDemo%='��".������".R�.$PART_ColumnChooserControl��#z�$ 	Owner.ColumnChooserColumns�
��*Self+��$false��
�$!	View.IsColumnChooserVisible�$PART_ColumnChooserControl��.a��$PART_ColumnChooserControl����$0��!K<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:dx="http://schemas.devexpress.com/winfx/2008/xaml/core"
    xmlns:dxg="http://schemas.devexpress.com/winfx/2008/xaml/grid"
    xmlns:local="clr-namespace:GridDemo">
    <Style TargetType="{x:Type local:DemoColumnChooserControl}">
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="{x:Type local:DemoColumnChooserControl}">
                    <dx:NonLogicalDecorator>
                        <dxg:ColumnChooserControl x:Name="PART_ColumnChooserControl" Owner="{TemplateBinding View}" Columns="{Binding Path=Owner.ColumnChooserColumns, RelativeSource={RelativeSource Self}}"/>
                    </dx:NonLogicalDecorator>
                    <ControlTemplate.Triggers>
                        <DataTrigger Binding="{Binding Path=View.IsColumnChooserVisible, ElementName=PART_ColumnChooserControl}" Value="false">
                            <Setter Property="Height" TargetName="PART_ColumnChooserControl" Value="0" />
                        </DataTrigger>
                    </ControlTemplate.Triggers>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style>
</ResourceDictionary>!\MSBAML```����D@GridDemo, Version=13.1.4.0, Culture=neutral, PublicKeyToken=null#clr-namespace:GridDemoGridDemo\XPresentationFramework, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35RNWindowsBase, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35WSPresentationCore, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35RNSystem.Xaml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089GridDemo.HintControl��
TargetType�Property�Value��
TargetType�Name�Name�CornerRadiusJ�Opacity��Triggers^Cclr-namespace:System.Windows.Interop;assembly=PresentationFrameworkSystem.Windows.Interop	��Value
��Binding1+System.Windows.Interop.BrowserInteropHelperIsBrowserHosted
�Source
�
TargetName�D9http://schemas.microsoft.com/winfx/2006/xaml/presentation localclr-namespace:GridDemo:x,http://schemas.microsoft.com/winfx/2006/xaml%>'��".������".R��$panel��$	�200��$	�300��.+��$shadow��$7��$
�3,3,0,0q�
����$
0.15Q��$
�border1��
�������$6��$
�0,0,3,3q�._��$
�border2��
�������$�1q�$5��._�����OinteropCclr-namespace:System.Windows.Interop;assembly=PresentationFramework$
	True��
�#Z.a��$
shadow���y�$	Collapsed=��$

border1���@�CornerRadius$
0,0,0,0���$

border1����$
0,0,0,0q��$

border2���@�CornerRadius$
0,0,0,0��!W<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                    xmlns:local="clr-namespace:GridDemo"

                    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
    <Style TargetType="{x:Type local:HintControl}">
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="{x:Type local:HintControl}">
                    <Grid x:Name="panel" MinWidth="200" MaxWidth="300">
                        <Border x:Name="shadow" CornerRadius="7" Margin="3,3,0,0" Background="Black" Opacity="0.15" />
                        <Border Name="border1" Background="Gray" CornerRadius="6" Margin="0,0,3,3">
                            <Border Name="border2" Background="White" Margin="1" CornerRadius="5">
                                <ContentPresenter />
                            </Border>
                        </Border>
                    </Grid>
                    <ControlTemplate.Triggers>
                        <DataTrigger xmlns:interop="clr-namespace:System.Windows.Interop;assembly=PresentationFramework"
                                     Binding="{Binding Source={x:Static interop:BrowserInteropHelper.IsBrowserHosted}}" Value="True">
                            <Setter Property="Visibility" TargetName="shadow" Value="Collapsed" />
                            <Setter Property="CornerRadius" TargetName="border1" Value="0,0,0,0" />
                            <Setter Property="Margin" TargetName="border1" Value="0,0,0,0" />
                            <Setter Property="CornerRadius" TargetName="border2" Value="0,0,0,0" />
                        </DataTrigger>
                    </ControlTemplate.Triggers>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style>
</ResourceDictionary>!MSBAML```����\XPresentationFramework, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35RNWindowsBase, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35WSPresentationCore, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35RNSystem.Xaml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089a]DevExpress.Xpf.Core.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a/)DevExpress.Xpf.Core.FormatStringConverter FormatStringConverterFormatString InplaceProgressBarTemplate��
TargetTypeJ�Opacity�CornerRadius��
TextAlignment�RelativeSource�	Converter�D9http://schemas.microsoft.com/winfx/2006/xaml/presentation:x,http://schemas.microsoft.com/winfx/2006/xaml;dx2http://schemas.devexpress.com/winfx/2008/xaml/core%v&	&	
7$0����"�.R��.+��$�
PART_Track��._��$�PART_Indicator��$
�Left=����	#FFBA4F8C$	0.5Q�����	#1F000000$��1q�$�Center=�$�Center=����	#FFFFFFFF$
2,2,2,2��._���$Center=�$��NoWrap=�$�	5,-2,5,-2q�
����$�Center=�$�Center=����*Value+��*TemplatedParent+8!W<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:dx="http://schemas.devexpress.com/winfx/2008/xaml/core">
    <dx:FormatStringConverter x:Key="FormatStringConverter" FormatString="0" />
 <ControlTemplate x:Key="InplaceProgressBarTemplate" TargetType="{x:Type ProgressBar}">
  <Grid>
            <Border Name="PART_Track">
                <Border Name="PART_Indicator" HorizontalAlignment="Left" Background="#FFBA4F8C" Opacity="0.5" />
            </Border>
            <Border BorderBrush="#1F000000" BorderThickness="1" HorizontalAlignment="Center" VerticalAlignment="Center" Background="#FFFFFFFF" CornerRadius="2,2,2,2">
                <TextBlock TextAlignment="Center" TextWrapping="NoWrap" Margin="5,-2,5,-2" Text="{Binding Value, RelativeSource={RelativeSource TemplatedParent}, Converter={StaticResource FormatStringConverter}}" Foreground="Black" VerticalAlignment="Center" HorizontalAlignment="Center" />
            </Border>
  </Grid>
    </ControlTemplate>
</ResourceDictionary>!iMSBAML```����D@GridDemo, Version=13.1.4.0, Culture=neutral, PublicKeyToken=null#clr-namespace:GridDemoGridDemo\XPresentationFramework, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35RNWindowsBase, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35WSPresentationCore, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35RNSystem.Xaml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089fbDevExpress.Xpf.Grid.v13.1.Core, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49aa]DevExpress.Xpf.Grid.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49alhDevExpress.Xpf.Grid.v13.1.Extensions, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49aa]DevExpress.Xpf.Core.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49ac	_DevExpress.Xpf.Charts.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a,&DevExpress.Xpf.Core.ImageDataConverter ImageDataConverter *&tabViewDetailDescriptorContentTemplate-'DevExpress.Xpf.Core.MeasurePixelSnapper�ColumnDefinitions�RowDefinitions& DevExpress.Xpf.Editors.ImageEditShowMenu
Source�Path�	Converter�StringFormat "embeddedDetailViewInfoTemplate employeeStatsTemplate�Padding(	"DevExpress.Xpf.Charts.ChartControlCrosshairEnabled	Diagram'	!DevExpress.Xpf.Charts.XYDiagram2D#	DevExpress.Xpf.Charts.Diagram
Series(	"DevExpress.Xpf.Charts.LineSeries2D"	DevExpress.Xpf.Charts.SeriesShowInLegendArgumentDataMember&	 DevExpress.Xpf.Charts.XYSeries2D
CrosshairEnabledValueDataMember
DataSource cardViewTemplate%	DevExpress.Xpf.Grid.GridControl)
#DevExpress.Xpf.Grid.DataControlBase

ShowBorder
ItemsSource	Columns$DevExpress.Xpf.Grid.GridColumn$DevExpress.Xpf.Grid.ColumnBase	FieldName	View"
DevExpress.Xpf.Grid.CardView& DevExpress.Xpf.Grid.GridViewBaseShowGroupPanel

CardLayout& DevExpress.Xpf.Grid.DataViewBaseShowColumnHeaders
CardTemplateStretch)#GridDemo.CountToVisibilityConverter
Invert�D9http://schemas.microsoft.com/winfx/2006/xaml/presentation:x,http://schemas.microsoft.com/winfx/2006/xaml localclr-namespace:GridDemo@dxg2http://schemas.devexpress.com/winfx/2008/xaml/grid;dx2http://schemas.devexpress.com/winfx/2008/xaml/core?dxe5http://schemas.devexpress.com/winfx/2008/xaml/editors>dxc4http://schemas.devexpress.com/winfx/2008/xaml/charts	%�&	&	7&	�7&	j7&	�7��.R�$�	5,5,10,10q�._����$
�Auto���$�12���$�*���.+�$
�Left=�$	�Top=�$�50��.�$Photo�8�$�2���$
�Auto���$�8���$
�Auto���$�24���$
�Auto���$�8������.+���$�0�$��0�$��First Name:����$�0�$��1�$��
Last Name:����$�0�$��2�$��Address:����$�4�$��0�$��	Position:����$�4�$��1�$��
Hire Date:����$�2�$��0����*	FirstName+��$�2�$��1����*
LastName+��$�6�$��0����*Title+��$�6�$��1����*
HireDate+$d����$�2�$��2����*	Address+��.R�$�	5,5,10,10q�._����$
�Auto���$�12���$�*���.+�$	�150��$
�Left=�$	�Top=�$�80��.�$Photo�8�$�2���$
�Auto���$�12��������.+���$�0�$��0�$��Name:����$�0�$��1�$��	Position:����$�0�$��2�$��
Hire Date:����$�0�$��3�$��About:����$�0�$��4�$��Address:����$�2�$��0����*	FirstName+��$�2�$��1����*Title+��$�2�$��2����*
HireDate+��$�2�$��3�$
�Left=�$
��Wrap=����*Notes+��$�2�$��4����*	Address+��.R��$
��1,0,1,1q�$5q�
�������$	�195��._����$
�Auto���.+�$	�120��.$
�5,5,0,0q�$
�Left=�$	�Top=��$Photo�8$�1�$�0q�$FalseX�	
.$ArgumentMember��$
FalseX�$ValueMember���*
ChartSource+��.R��$	�195��.+�	$	�300��.�*SubEmployees+$Photo��
.$
Columns=�.��.R���.+�$
UniformToFill=�.$	�100��$	�100���$DataContext.Photo�8�����$DataContext.FullName�y��$SubEmployees.Count���$-��'This Employee doesn't have Subordinates��$�3q�$�Center=�$�Center=�$��20(�y��$SubEmployees.Count�.!�"<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
 xmlns:local="clr-namespace:GridDemo"
 xmlns:dxg="http://schemas.devexpress.com/winfx/2008/xaml/grid"
    xmlns:dx="http://schemas.devexpress.com/winfx/2008/xaml/core"
    xmlns:dxe="http://schemas.devexpress.com/winfx/2008/xaml/editors"
    xmlns:dxc="http://schemas.devexpress.com/winfx/2008/xaml/charts">

    <dx:ImageDataConverter x:Key="ImageDataConverter" />
    <DataTemplate x:Key="tabViewDetailDescriptorContentTemplate">
        <dx:MeasurePixelSnapper Margin="5,5,10,10">
            <Grid>
                <Grid.ColumnDefinitions>
                    <ColumnDefinition Width="Auto" />
                    <ColumnDefinition Width="12" />
                    <ColumnDefinition Width="*"/>
                </Grid.ColumnDefinitions>
                <Grid.RowDefinitions>
                    <RowDefinition />
                    <RowDefinition />
                </Grid.RowDefinitions>
                <dxe:ImageEdit HorizontalAlignment="Left" VerticalAlignment="Top"
                               Source="{Binding Path=Photo, Converter={StaticResource ImageDataConverter}}"
                               Width="50" ShowMenu="False" />
                <Grid Grid.Column="2">
                    <Grid.ColumnDefinitions>
                        <ColumnDefinition Width="Auto" />
                        <ColumnDefinition Width="8" />
                        <ColumnDefinition Width="Auto" />
                        <ColumnDefinition Width="24" />
                        <ColumnDefinition Width="Auto" />
                        <ColumnDefinition Width="8" />
                        <ColumnDefinition />
                    </Grid.ColumnDefinitions>
                    <Grid.RowDefinitions>
                        <RowDefinition /> <RowDefinition /> <RowDefinition />
                    </Grid.RowDefinitions>
                    <TextBlock Grid.Column="0" Grid.Row="0" Text="First Name:" />
                    <TextBlock Grid.Column="0" Grid.Row="1" Text="Last Name:" />
                    <TextBlock Grid.Column="0" Grid.Row="2" Text="Address:" />
                    <TextBlock Grid.Column="4" Grid.Row="0" Text="Position:" />
                    <TextBlock Grid.Column="4" Grid.Row="1" Text="Hire Date:" />
                    <TextBlock Grid.Column="2" Grid.Row="0" Text="{Binding FirstName}" />
                    <TextBlock Grid.Column="2" Grid.Row="1" Text="{Binding LastName}" />
                    <TextBlock Grid.Column="6" Grid.Row="0" Text="{Binding Title}" />
                    <TextBlock Grid.Column="6" Grid.Row="1" Text="{Binding HireDate, StringFormat=d}" />
                    <TextBlock Grid.Column="2" Grid.Row="2" Text="{Binding Address}" />
                </Grid>
            </Grid>
        </dx:MeasurePixelSnapper>
    </DataTemplate>
    <DataTemplate x:Key="embeddedDetailViewInfoTemplate">
        <dx:MeasurePixelSnapper Margin="5,5,10,10">
            <Grid>
                <Grid.ColumnDefinitions>
                    <ColumnDefinition Width="Auto" />
                    <ColumnDefinition Width="12" />
                    <ColumnDefinition Width="*"/>
                </Grid.ColumnDefinitions>
                <Grid.RowDefinitions>
                    <RowDefinition />
                    <RowDefinition />
                </Grid.RowDefinitions>
                <dxe:ImageEdit MaxWidth="150" HorizontalAlignment="Left" VerticalAlignment="Top"
                               Source="{Binding Path=Photo, Converter={StaticResource ImageDataConverter}}"
                               Width="80" ShowMenu="False" />
                <Grid Grid.Column="2">
                    <Grid.ColumnDefinitions>
                        <ColumnDefinition Width="Auto" />
                        <ColumnDefinition Width="12" />
                        <ColumnDefinition />
                    </Grid.ColumnDefinitions>
                    <Grid.RowDefinitions>
                        <RowDefinition /> <RowDefinition />
                        <RowDefinition /> <RowDefinition />
                        <RowDefinition />
                    </Grid.RowDefinitions>
                    <TextBlock Grid.Column="0" Grid.Row="0" Text="Name:" />
                    <TextBlock Grid.Column="0" Grid.Row="1" Text="Position:" />
                    <TextBlock Grid.Column="0" Grid.Row="2" Text="Hire Date:" />
                    <TextBlock Grid.Column="0" Grid.Row="3" Text="About:" />
                    <TextBlock Grid.Column="0" Grid.Row="4" Text="Address:" />
                    <TextBlock Grid.Column="2" Grid.Row="0" Text="{Binding FirstName}" />
                    <TextBlock Grid.Column="2" Grid.Row="1" Text="{Binding Title}" />
                    <TextBlock Grid.Column="2" Grid.Row="2" Text="{Binding HireDate}" />
                    <TextBlock Grid.Column="2" Grid.Row="3" HorizontalAlignment="Left" Text="{Binding Notes}" TextWrapping="Wrap" />
                    <TextBlock Grid.Column="2" Grid.Row="4" Text="{Binding Address}" />
                </Grid>
            </Grid>
        </dx:MeasurePixelSnapper>
    </DataTemplate>
    <DataTemplate x:Key="employeeStatsTemplate">
        <Border BorderThickness="1,0,1,1" Padding="5" BorderBrush="DarkGray" Height="195">
            <Grid>
                <Grid.ColumnDefinitions>
                    <ColumnDefinition Width="Auto" />
                    <ColumnDefinition />
                </Grid.ColumnDefinitions>
                <dxe:ImageEdit Width="120" ShowMenu="False" Margin="5,5,0,0"  HorizontalAlignment="Left" VerticalAlignment="Top"
                               Source="{Binding Path=Photo, Converter={StaticResource ImageDataConverter}}" />
                <dxc:ChartControl Grid.Column="1" BorderThickness="0" CrosshairEnabled="False">
                    <dxc:ChartControl.Diagram>
                        <dxc:XYDiagram2D>
                            <dxc:XYDiagram2D.Series>
                                <dxc:LineSeries2D DataSource="{Binding ChartSource}" ShowInLegend="False"
                                                   ArgumentDataMember="ArgumentMember" CrosshairEnabled="False"
                                                   ValueDataMember="ValueMember"/>
                            </dxc:XYDiagram2D.Series>
                        </dxc:XYDiagram2D>
                    </dxc:ChartControl.Diagram>
                </dxc:ChartControl>
            </Grid>
        </Border>
    </DataTemplate>
    <DataTemplate x:Key="cardViewTemplate">
        <Grid Height="195">
            <dxg:GridControl ItemsSource="{Binding SubEmployees}" MaxHeight="300" ShowBorder="False">
                <dxg:GridControl.Columns>
                    <dxg:GridColumn FieldName="Photo" />
                </dxg:GridControl.Columns>
                <dxg:GridControl.View>
                    <dxg:CardView ShowGroupPanel="False" CardLayout="Columns" ShowColumnHeaders="False">
                        <dxg:CardView.CardTemplate>
                            <DataTemplate>
                                <StackPanel>
                                    <dxe:ImageEdit Stretch="UniformToFill" ShowMenu="False" MaxHeight="100" MaxWidth="100"
                                           Source="{Binding Path=DataContext.Photo, Converter={StaticResource ImageDataConverter}}" />
                                    <TextBlock Text="{Binding Path=DataContext.FullName}" />
                                </StackPanel>
                            </DataTemplate>
                        </dxg:CardView.CardTemplate>
                    </dxg:CardView>
                </dxg:GridControl.View>
                <dxg:GridControl.Visibility>
                    <Binding Path="SubEmployees.Count">
                        <Binding.Converter>
                            <local:CountToVisibilityConverter />
                        </Binding.Converter>
                    </Binding>
                </dxg:GridControl.Visibility>
            </dxg:GridControl>
            <TextBlock Text="This Employee doesn't have Subordinates"
                       Margin="3" HorizontalAlignment="Center" VerticalAlignment="Center" FontSize="20">
                <TextBlock.Visibility>
                    <Binding Path="SubEmployees.Count">
                        <Binding.Converter>
                            <local:CountToVisibilityConverter Invert="True" />
                        </Binding.Converter>
                    </Binding>
                </TextBlock.Visibility>
            </TextBlock>
        </Grid>
    </DataTemplate>
</ResourceDictionary>!MSBAML```����D@GridDemo, Version=13.1.4.0, Culture=neutral, PublicKeyToken=null#clr-namespace:GridDemoGridDemo\XPresentationFramework, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35RNWindowsBase, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35WSPresentationCore, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35RNSystem.Xaml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089GridDemo.NameTextControl��
TargetType�Property�Value��
TargetType�ColumnDefinitions	NameValue	TextValue�D9http://schemas.microsoft.com/winfx/2006/xaml/presentation localclr-namespace:GridDemo:x,http://schemas.microsoft.com/winfx/2006/xaml%�'��".���@J�IsHitTestVisible.�����".R��$�0q���$
�Auto���$�3���$�*�.+������	#FF949494#��z��
����$�2�#��z$��CharacterEllipsis=�!Q<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                    xmlns:local="clr-namespace:GridDemo"
                    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
    <Style TargetType="{x:Type local:NameTextControl}">
        <Setter Property="IsHitTestVisible" Value="false" />
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="{x:Type local:NameTextControl}">
                    <Grid Margin="0">
                        <Grid.ColumnDefinitions>
                            <ColumnDefinition Width="Auto" />
                            <ColumnDefinition Width="3" />
                            <ColumnDefinition Width="*" />
                        </Grid.ColumnDefinitions>
                        <TextBlock Foreground="#FF949494" Text="{TemplateBinding NameValue}" />

                        <TextBlock Foreground="Black" Grid.Column="2" Text="{TemplateBinding TextValue}">
                            <TextBlock.TextTrimming>
                                CharacterEllipsis
                            </TextBlock.TextTrimming>
                        </TextBlock>
                    </Grid>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style>
</ResourceDictionary>!�MSBAML```����D@GridDemo, Version=13.1.4.0, Culture=neutral, PublicKeyToken=null#clr-namespace:GridDemoGridDemo\XPresentationFramework, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35RNWindowsBase, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35WSPresentationCore, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35RNSystem.Xaml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089��
TargetType DeepBlueDemoPanelTemplate�Name�Name�CornerRadiusJ�Opacity�Padding��EndPoint��
StartPoint�SpreadMethod	�Color
�Offset DemoPanelStyle��
TargetType�Property
�Value�D9http://schemas.microsoft.com/winfx/2006/xaml/presentation:x,http://schemas.microsoft.com/winfx/2006/xaml localclr-namespace:GridDemo%W&	&	"��"��.R��$floating_panel��.+��$
border1�����	#FF021743$
5,5,5,5��$1Q�$
1,1,1,1q�$��0q�._��$
border3��$
�Auto��$
�Auto��$
4,4,4,4��$
1,1,1,1q�����$	0.5,0.992&�$	0.5,0.003&�$	Pad=�.��$		#FFE4F0FF��$
0Q��$		#FF88A6CC��$
1Q��$		#FFADD0FB��$
0.058Q�._��$content_container1��$
3,3,3,3��$
�Auto��$
�Auto��$12,12,12,12q�����$	0.5,0.992&�$	0.5,0.003&�$	Pad=�.��$		#FFB0D3FF��$
0Q��$		#FF88A6CC��$
1Q�._�����"��.����#
�!+<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
 xmlns:local="clr-namespace:GridDemo">

 <ControlTemplate TargetType="{x:Type ContentControl}" x:Key="DeepBlueDemoPanelTemplate">
  <Grid x:Name="floating_panel">
   <Border Background="#FF021743" CornerRadius="5,5,5,5" Opacity="1" x:Name="border1" Padding="1,1,1,1" BorderThickness="0">
    <Border Width="Auto" Height="Auto" CornerRadius="4,4,4,4" Padding="1,1,1,1" x:Name="border3">
     <Border.Background>
      <LinearGradientBrush EndPoint="0.5,0.992" StartPoint="0.5,0.003" SpreadMethod="Pad">
       <GradientStop Color="#FFE4F0FF" Offset="0" />
       <GradientStop Color="#FF88A6CC" Offset="1" />
       <GradientStop Color="#FFADD0FB" Offset="0.058" />
      </LinearGradientBrush>
     </Border.Background>
     <Border CornerRadius="3,3,3,3" Width="Auto" Height="Auto" x:Name="content_container1" Padding="12,12,12,12">
      <Border.Background>
       <LinearGradientBrush EndPoint="0.5,0.992" StartPoint="0.5,0.003" SpreadMethod="Pad">
        <GradientStop Color="#FFB0D3FF" Offset="0" />
        <GradientStop Color="#FF88A6CC" Offset="1" />
       </LinearGradientBrush>
      </Border.Background>
      <ContentPresenter />
     </Border>
    </Border>
   </Border>
  </Grid>
 </ControlTemplate>
 <Style x:Key="DemoPanelStyle" TargetType="{x:Type ContentControl}">
  <Setter Property="Template" Value="{DynamicResource DeepBlueDemoPanelTemplate}" />
 </Style>

</ResourceDictionary>!�	MSBAML```����D@GridDemo, Version=13.1.4.0, Culture=neutral, PublicKeyToken=null#clr-namespace:GridDemoGridDemo\XPresentationFramework, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35RNWindowsBase, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35WSPresentationCore, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35RNSystem.Xaml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089fbDevExpress.Xpf.Grid.v13.1.Core, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49aa]DevExpress.Xpf.Grid.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49alhDevExpress.Xpf.Grid.v13.1.Extensions, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49aa]DevExpress.Xpf.Core.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a eMailTemplateCards
�CursorGridDemo.CardTemplatesSendMail�	ClickMode��
TargetType�ColumnDefinitionsF�Name�Stretch��TriggersP�Property	P�Value
�
TargetName�Property�Value XBAPTextTemplate�D9http://schemas.microsoft.com/winfx/2006/xaml/presentation:x,http://schemas.microsoft.com/winfx/2006/xaml localclr-namespace:GridDemo@dxg2http://schemas.devexpress.com/winfx/2008/xaml/grid;dx2http://schemas.devexpress.com/winfx/2008/xaml/core?dxe5http://schemas.devexpress.com/winfx/2008/xaml/editors%�&	&	O��.R��$	�4,0q�$�Center=�$
Hand��#��Z$Press=���*Value+���*Value+���"�.R��
��������$
�Auto���$�19�.+���$
�text�����	#FF2A6DBD#��z�$�Center=�F�$
path��$
Fill=����	#FF3B6CA7�������&�����b&����fS&@V�р-�&����fS&��[��b&��L���&������&������&����o�&@V�р6�&����o�&��[���&��L���&���$�Center=�$
�0,3,0,0q�$�Center=�$�8��$�7��$�1�P��@J�IsMouseOver	..��$

text������	#FF5E9AE2�$

path������	#FF5E9AE2��.R���$�	15,15,0,0q�$
�Left=�$
��Wrap=�$��13(�$��Tahoma)���The DXGrid for WPF has no equal when it comes to Data Loading Speed and Memory Use in its Server Mode. To see this feature in action, please download and install it locally on your machine, or you can try Instant Feedback WCF demo.!�<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
 xmlns:local="clr-namespace:GridDemo"
 xmlns:dxg="http://schemas.devexpress.com/winfx/2008/xaml/grid"
    xmlns:dx="http://schemas.devexpress.com/winfx/2008/xaml/core"
    xmlns:dxe="http://schemas.devexpress.com/winfx/2008/xaml/editors">

    <DataTemplate x:Key="eMailTemplateCards">
        <Button Margin="4,0" VerticalAlignment="Center" Cursor="Hand" Content="{Binding Value}" Command="{x:Static local:CardTemplates.SendMail}" CommandParameter="{Binding Value}" ClickMode="Press">
   <Button.Template>
    <ControlTemplate TargetType="{x:Type Button}">
     <Grid Background="Transparent">
      <Grid.ColumnDefinitions>
       <ColumnDefinition Width="Auto" />
       <ColumnDefinition Width="19" />
      </Grid.ColumnDefinitions>
      <TextBlock Name="text" Foreground="#FF2A6DBD" Text="{TemplateBinding Content}" VerticalAlignment="Center" />
      <Path x:Name="path" Stretch="Fill" Fill="#FF3B6CA7" Data="F1 M 648,462L 644,466L 643,465L 646,462L 643,459L 644,458L 648,462 Z M 652,462L 648,466L 647,465L 650,462L 647,459L 648,458L 652,462 Z " HorizontalAlignment="Center" Margin="0,3,0,0" VerticalAlignment="Center" Width="8" Height="7" Grid.Column="1" />
     </Grid>
     <ControlTemplate.Triggers>
      <Trigger Property="IsMouseOver" Value="true">
       <Setter Property="Foreground" Value="#FF5E9AE2" TargetName="text" />
       <Setter Property="Fill" Value="#FF5E9AE2" TargetName="path" />
      </Trigger>
     </ControlTemplate.Triggers>
    </ControlTemplate>
   </Button.Template>
  </Button>
 </DataTemplate>
    <DataTemplate x:Key="XBAPTextTemplate">
        <TextBlock Margin="15,15,0,0" HorizontalAlignment="Left" TextWrapping="Wrap" FontSize="13" FontFamily="Tahoma">
            The DXGrid for WPF has no equal when it comes to Data Loading Speed and Memory Use in its Server Mode. 
            To see this feature in action, please download and install it locally on your machine, or you can try Instant Feedback WCF demo.
        </TextBlock>
    </DataTemplate>
</ResourceDictionary>!�MSBAML```����D@GridDemo, Version=13.1.4.0, Culture=neutral, PublicKeyToken=null#clr-namespace:GridDemoGridDemo\XPresentationFramework, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35RNWindowsBase, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35WSPresentationCore, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35RNSystem.Xaml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089a]DevExpress.Xpf.Core.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a GroupSummaryComboBoxEdit��
TargetType)#DevExpress.Xpf.Editors.ComboBoxEdit�Property�Value'!DevExpress.Xpf.Editors.ButtonEdit%DevExpress.Xpf.Editors.BaseEdit)#DevExpress.Xpf.Editors.TextEditBase%DevExpress.Xpf.Core.DXDockPanelF�Name�Stretch��Name�Path�RelativeSource��Triggers	P�Property
P�Value�
TargetName��Value
��Binding�D9http://schemas.microsoft.com/winfx/2006/xaml/presentation:x,http://schemas.microsoft.com/winfx/2006/xaml localclr-namespace:GridDemo?dxe5http://schemas.devexpress.com/winfx/2008/xaml/editors;dx2http://schemas.devexpress.com/winfx/2008/xaml/core%f&	��".����$
2,0,2,0q���@IsTextEditable.��@EditMode$
InplaceActive=���@AllowDefaultButton.��@EditNonEditableTemplate��.R�.+�F�$
Path_Copy1��$�Right=�$
Fill=�#��z�4����@�$���р��#����@��#@��р��#@���@�$���$�5��$�4��$
�3,2,3,0q���$PART_Editor�����$DisplayText���*TemplatedParent+P�	�@J�IsMouseOver
..��$
Path_Copy1������	#FF314E7A��$
True��
�*
IsPopupOpen+.a��$
Path_Copy1������	#FF314E7A!G<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
 xmlns:local="clr-namespace:GridDemo"
    xmlns:dxe="http://schemas.devexpress.com/winfx/2008/xaml/editors"
    xmlns:dx="http://schemas.devexpress.com/winfx/2008/xaml/core">


    <Style x:Key="GroupSummaryComboBoxEdit" TargetType="{x:Type dxe:ComboBoxEdit}">
        <Setter Property="Margin" Value="2,0,2,0" />
        <Setter Property="IsTextEditable" Value="False" />
        <Setter Property="EditMode" Value="InplaceActive" />
        <Setter Property="AllowDefaultButton" Value="False" />
        <Setter Property="EditNonEditableTemplate">
            <Setter.Value>
                <ControlTemplate>
                    <dx:DXDockPanel>
                        <Path dx:DXDockPanel.Dock="Right" x:Name="Path_Copy1" Stretch="Fill" Fill="{TemplateBinding Foreground}" Data="F1 M 605,479L 598,479L 601,485L 602,485L 605,479 Z " Width="5" Height="4" Margin="3,2,3,0" />
                        <TextBlock x:Name="PART_Editor" Text="{Binding Path=DisplayText, RelativeSource={RelativeSource TemplatedParent}}" />
                    </dx:DXDockPanel>
                    <ControlTemplate.Triggers>
                        <Trigger Property="IsMouseOver" Value="True">
                            <Setter Property="Fill" TargetName="Path_Copy1" Value="#FF314E7A" />
                        </Trigger>
                        <DataTrigger Binding="{Binding IsPopupOpen}" Value="True">
                            <Setter Property="Fill" TargetName="Path_Copy1" Value="#FF314E7A" />
                        </DataTrigger>
                    </ControlTemplate.Triggers>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style>
</ResourceDictionary>!m<using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Data;
using DevExpress.Xpf.Grid;
using System.Windows;
using DevExpress.Xpf.Editors;
using DevExpress.Data.Filtering;
using System.Collections.ObjectModel;
using System.Reflection;
using System.Windows.Media;
using System.Windows.Markup;

namespace GridDemo {
    public class MultiSelectModeConverter : IValueConverter {
        public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) {
            return (MultiSelectMode)value == MultiSelectMode.None ? false : true;
        }
        public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) {
            return (bool)value ? MultiSelectMode.Row : MultiSelectMode.None;
        }
    }
    public class FocusedToColorConverter : MarkupExtension, IValueConverter {
        public FocusedToColorConverter() { }
        public override object ProvideValue(IServiceProvider serviceProvider) {
            return this;
        }
        #region IValueConverter Members
        public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) {
            if(((string)parameter) == Enum.GetName(typeof(FocusedGrid), (FocusedGrid)value))
                return new SolidColorBrush(Color.FromArgb(50, 200, 0, 0));
            return new SolidColorBrush(Color.FromArgb(0, 0, 0, 0));
        }

        public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) {
            throw new NotImplementedException();
        }
        #endregion
    }
    public class PastUnderFocusedRowToSelectedIndexConverter : MarkupExtension, IValueConverter {
        public PastUnderFocusedRowToSelectedIndexConverter() { }
        public override object ProvideValue(IServiceProvider serviceProvider) {
            return this;
        }
        #region IValueConverter Members
        public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) {
            return ((bool)value) ? 0 : 1;
        }

        public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) {
            return ((int)value == 0) ? true : false;
        }
        #endregion
    }
    public class GeneratingDataToWaitIndicatorTypeConverter : IValueConverter {
        public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) {
            return (bool)value ? WaitIndicatorType.None : WaitIndicatorType.Panel;
        }
        public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) {
            throw new NotSupportedException("This method shouldn't be called");
        }
    }
    public class IssueStatusImageConverter : IValueConverter {
        public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) {
            if(value == null)
                return null;
            string name = ((string)value).Replace(" ", "");
            string path = "GridDemo.Images.IssueIcons." + name + ".png";
            return DevExpress.Xpf.Core.Native.ImageHelper.CreateImageFromEmbeddedResource(Assembly.GetExecutingAssembly(), path);
        }

        public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) {
            throw new NotImplementedException();
        }
    }

    public class IdToUriConverter : IValueConverter {
        public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) {
            if(value != null) {
                return "http://devexpress.com/Support/Center/p/" + value.ToString() + ".aspx";
            }
            return null;
        }
        public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) {
            throw new NotSupportedException();
        }
    }
    public class CategoryDataToImageSourceConverter : BytesToImageSourceConverter {
        static Dictionary<string, object> cachedImages = new Dictionary<string, object>();

        public override object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) {
            CategoryData categoryData = value as CategoryData;
            if(value == null) return null;
            if(cachedImages.ContainsKey(categoryData.Name)) {
                return cachedImages[categoryData.Name];
            } else {
                object image = base.Convert(categoryData.Picture, targetType, parameter, culture);
                cachedImages.Add(categoryData.Name, image);
                return image;
            }
        }
    }
    public class BooleanToDefaultBooleanConverter : IValueConverter {
        public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) {
            return (bool)value ? DevExpress.Utils.DefaultBoolean.True : DevExpress.Utils.DefaultBoolean.False;
        }

        public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) {
            throw new NotImplementedException();
        }
    }
    public class NavigationStyleToTextConverter : IValueConverter {
        #region IValueConverter Members
        public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) {
            if(value == null) return value;
            if((GridViewNavigationStyle)value == GridViewNavigationStyle.Cell)
                return "By Cell";
            if((GridViewNavigationStyle)value == GridViewNavigationStyle.Row)
                return "By Row";
            return value;
        }

        public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) {
            throw new NotImplementedException();
        }
        #endregion
    }
    public class ScrollingAnimationDurationToBooleanConverter : IValueConverter {
        #region IValueConverter Members
        public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) {
            return System.Convert.ToDouble(value) > 0;
        }

        public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) {
            return System.Convert.ToBoolean(value) ? 350 : 0;
        }
        #endregion
    }
    public class ShowSearchPanelModeToTextConverter : IValueConverter {
        public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) {
            ShowSearchPanelMode? showSearchPanelModeq = (ShowSearchPanelMode?)value;
            if(showSearchPanelModeq == null)
                return value;
            ShowSearchPanelMode showSearchPanelMode = showSearchPanelModeq.Value;
            switch(showSearchPanelMode) {
                case ShowSearchPanelMode.Default: return "Default";
                case ShowSearchPanelMode.Always: return "Always";
                case ShowSearchPanelMode.Never: return "Never";
            }
            return value;
        }
        public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) {
            throw new NotImplementedException();
        }
    }
    public class FindModeToTextConverter : IValueConverter {
        public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) {
            FindMode? findModeq = (FindMode?)value;
            if(findModeq == null)
                return value;
            FindMode findMode = findModeq.Value;
            switch(findMode) {
                case FindMode.Always: return "Always";
                case FindMode.FindClick: return "Find on Click";
            }
            return value;
        }
        public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) {
            throw new NotImplementedException();
        }
    }

    public class FilterConditionConverter : IValueConverter {
        public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) {
            FilterCondition? filterConditionq = (FilterCondition?)value;
            if(filterConditionq == null)
                return value;
            FilterCondition filterCondition = filterConditionq.Value;
            switch(filterCondition) {
                case FilterCondition.Default: return "Default";
                case FilterCondition.Contains: return "Contains";
                case FilterCondition.StartsWith: return "Starts With";
                case FilterCondition.Like: return "Like";
            }
            return value;
        }
        public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) {
            throw new NotImplementedException();
        }
    }

    public class SearchPanelModeConverter : IValueConverter {
        public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) {
            return value;
        }

        public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) {
            return ((ListBoxEditItem)value).Content;
        }
    }
    public class GroupNameToImageConverter : IValueConverter {
        public static List<string> images = new List<string> { "administration", "inventory", "manufacturing", "quality", "research", "sales" };
        public static string GetImagePathByGroupName(string groupName) {
            groupName = groupName.ToLower();
            foreach(string item in images) {
                if(groupName.Contains(item)) {
                    return "/GridDemo;component/Images/MultiView/GroupName/" + item + ".png";
                }
            }
            return groupName;
        }
        public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) {
            if(value == null)
                return null;
            return GetImagePathByGroupName((string)value);
        }
        public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) {
            throw new NotImplementedException();
        }
    }
    public class HeaderToImageConverter : IValueConverter {
        public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) {
            if(value == null)
                return null;
            return "/GridDemo;component/Images/MultiView/" + ((string)value).Replace(" ", String.Empty) + ".png";
        }
        public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) {
            throw new NotImplementedException();
        }
    }
    public class ColumnHeaderTextConverter : IValueConverter {
        public string ColumnName { get; set; }
        public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) {
            if(value == null)
                return null;
            return ((string)value) == ColumnName ? "Bold" : "Normal";
        }
        public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) {
            throw new NotImplementedException();
        }
    }
    public class BirthdayImageVisibilityConverter : IValueConverter {
        public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) {
            if(value == null || !(value is DateTime))
                return Visibility.Collapsed;
            DateTime birthDate = (DateTime)value;
            DateTime someDate = DateTime.Now.AddMonths(3);
            int someMonth = someDate.Month < 3 ? someDate.Month + 12 : someDate.Month;
            int birthMonth = birthDate.Month < 3 ? birthDate.Month + 12 : birthDate.Month;
            return (birthMonth >= DateTime.Now.Month && birthMonth <= someMonth && (birthDate.Month == DateTime.Now.Month ? birthDate.Day > DateTime.Now.Day : true)) ? Visibility.Visible : Visibility.Collapsed;
        }
        public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) {
            throw new NotImplementedException();
        }
    }
    public class ViewToBooleanConverter : IValueConverter {
        public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) {
            if(value == null)
                return null;
            return value is TableView || value is TreeListView;
        }
        public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) {
            throw new NotImplementedException();
        }
    }

    public class CountToVisibilityConverter : IValueConverter {
        public bool Invert { get; set; }
        #region IValueConverter Members
        public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) {
            return ((int)value > 0) ^ Invert ? Visibility.Visible : Visibility.Collapsed;
        }
        public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) {
            throw new NotImplementedException();
        }
        #endregion
    }
    public class IntToDoubleConverter : IValueConverter {
        #region IValueConverter Members
        object IValueConverter.Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) {
            return Convert.ToDouble(value);
        }
        object IValueConverter.ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) {
            return Convert.ToInt32(value);
        }
        #endregion
    }
    public class RoundValueConverter : MarkupExtension, IValueConverter {
        #region IValueConverter Members
        object IValueConverter.Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) {
            return Math.Round(Convert.ToDouble(value));
        }
        object IValueConverter.ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) {
            return Math.Round(Convert.ToDouble(value));
        }
        #endregion
        public override object ProvideValue(IServiceProvider serviceProvider) {
            return this;
        }
    }
}!�using System;
using System.Collections.Generic;
using System.Reflection;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using DevExpress.Xpf.Editors;
using DevExpress.Xpf.Grid;
using DevExpress.Xpf.Utils;
using DevExpress.Data.Filtering;
using System.Collections.ObjectModel;

namespace GridDemo {
    public class GridSummaryList : List<GridSummaryItem> { }
    public class NameTextControl : Control {
        public static readonly DependencyProperty NameValueProperty =
            DependencyProperty.Register("NameValue", typeof(string), typeof(NameTextControl), new PropertyMetadata(null));
        public static readonly DependencyProperty TextValueProperty =
            DependencyProperty.Register("TextValue", typeof(string), typeof(NameTextControl), new PropertyMetadata(null));
        public string NameValue {
            get { return (string)GetValue(NameValueProperty); }
            set { SetValue(NameValueProperty, value); }
        }
        public string TextValue {
            get { return (string)GetValue(TextValueProperty); }
            set { SetValue(TextValueProperty, value); }
        }
        public NameTextControl() {
            this.SetDefaultStyleKey(typeof(NameTextControl));
        }
    }
    public class HintControl : ContentControl {
        public HintControl() {
            this.SetDefaultStyleKey(typeof(HintControl));
        }
    }
}!

namespace GridDemo.Controls
{
 using System.Data.Linq;
 using System.Data.Linq.Mapping;
 using System.Data;
 using System.Collections.Generic;
 using System.Reflection;
 using System.Linq;
 using System.Linq.Expressions;
 using System.ComponentModel;
 using System;


 [System.Data.Linq.Mapping.DatabaseAttribute(Name="DXGridServerModeDB")]
 public partial class DataGridTestClassesDataContext : System.Data.Linq.DataContext
 {

  private static System.Data.Linq.Mapping.MappingSource mappingSource = new AttributeMappingSource();

    #region Extensibility Method Definitions
    partial void OnCreated();
    partial void InsertWpfServerSideGridTest(WpfServerSideGridTest instance);
    partial void UpdateWpfServerSideGridTest(WpfServerSideGridTest instance);
    partial void DeleteWpfServerSideGridTest(WpfServerSideGridTest instance);
    #endregion

  public DataGridTestClassesDataContext(string connection) :
    base(connection, mappingSource)
  {
   OnCreated();
  }

  public DataGridTestClassesDataContext(System.Data.IDbConnection connection) :
    base(connection, mappingSource)
  {
   OnCreated();
  }

  public DataGridTestClassesDataContext(string connection, System.Data.Linq.Mapping.MappingSource mappingSource) :
    base(connection, mappingSource)
  {
   OnCreated();
  }

  public DataGridTestClassesDataContext(System.Data.IDbConnection connection, System.Data.Linq.Mapping.MappingSource mappingSource) :
    base(connection, mappingSource)
  {
   OnCreated();
  }

  public System.Data.Linq.Table<WpfServerSideGridTest> WpfServerSideGridTests
  {
   get
   {
    return this.GetTable<WpfServerSideGridTest>();
   }
  }
 }

 [Table(Name="dbo.WpfServerSideGridTest")]
 public partial class WpfServerSideGridTest : INotifyPropertyChanging, INotifyPropertyChanged
 {

  private static PropertyChangingEventArgs emptyChangingEventArgs = new PropertyChangingEventArgs(String.Empty);

  private int _OID;

  private string _Subject;

  private string _From;

  private System.Nullable<System.DateTime> _Sent;

  private System.Nullable<long> _Size;

  private System.Nullable<bool> _HasAttachment;

    #region Extensibility Method Definitions
    partial void OnLoaded();
    partial void OnValidate(System.Data.Linq.ChangeAction action);
    partial void OnCreated();
    partial void OnOIDChanging(int value);
    partial void OnOIDChanged();
    partial void OnSubjectChanging(string value);
    partial void OnSubjectChanged();
    partial void OnFromChanging(string value);
    partial void OnFromChanged();
    partial void OnSentChanging(System.Nullable<System.DateTime> value);
    partial void OnSentChanged();
    partial void OnSizeChanging(System.Nullable<long> value);
    partial void OnSizeChanged();
    partial void OnHasAttachmentChanging(System.Nullable<bool> value);
    partial void OnHasAttachmentChanged();
    #endregion

  public WpfServerSideGridTest()
  {
   OnCreated();
  }

  [Column(Storage="_OID", AutoSync=AutoSync.OnInsert, DbType="Int NOT NULL IDENTITY", IsPrimaryKey=true, IsDbGenerated=true)]
  public int OID
  {
   get
   {
    return this._OID;
   }
   set
   {
    if ((this._OID != value))
    {
     this.OnOIDChanging(value);
     this.SendPropertyChanging();
     this._OID = value;
     this.SendPropertyChanged("OID");
     this.OnOIDChanged();
    }
   }
  }

  [Column(Storage="_Subject", DbType="NVarChar(100)")]
  public string Subject
  {
   get
   {
    return this._Subject;
   }
   set
   {
    if ((this._Subject != value))
    {
     this.OnSubjectChanging(value);
     this.SendPropertyChanging();
     this._Subject = value;
     this.SendPropertyChanged("Subject");
     this.OnSubjectChanged();
    }
   }
  }

  [Column(Name="[From]", Storage="_From", DbType="NVarChar(100)")]
  public string From
  {
   get
   {
    return this._From;
   }
   set
   {
    if ((this._From != value))
    {
     this.OnFromChanging(value);
     this.SendPropertyChanging();
     this._From = value;
     this.SendPropertyChanged("From");
     this.OnFromChanged();
    }
   }
  }

  [Column(Storage="_Sent", DbType="DateTime")]
  public System.Nullable<System.DateTime> Sent
  {
   get
   {
    return this._Sent;
   }
   set
   {
    if ((this._Sent != value))
    {
     this.OnSentChanging(value);
     this.SendPropertyChanging();
     this._Sent = value;
     this.SendPropertyChanged("Sent");
     this.OnSentChanged();
    }
   }
  }

  [Column(Storage="_Size", DbType="BigInt")]
  public System.Nullable<long> Size
  {
   get
   {
    return this._Size;
   }
   set
   {
    if ((this._Size != value))
    {
     this.OnSizeChanging(value);
     this.SendPropertyChanging();
     this._Size = value;
     this.SendPropertyChanged("Size");
     this.OnSizeChanged();
    }
   }
  }

  [Column(Storage="_HasAttachment", DbType="Bit")]
  public System.Nullable<bool> HasAttachment
  {
   get
   {
    return this._HasAttachment;
   }
   set
   {
    if ((this._HasAttachment != value))
    {
     this.OnHasAttachmentChanging(value);
     this.SendPropertyChanging();
     this._HasAttachment = value;
     this.SendPropertyChanged("HasAttachment");
     this.OnHasAttachmentChanged();
    }
   }
  }

  public event PropertyChangingEventHandler PropertyChanging;

  public event PropertyChangedEventHandler PropertyChanged;

  protected virtual void SendPropertyChanging()
  {
   if ((this.PropertyChanging != null))
   {
    this.PropertyChanging(this, emptyChangingEventArgs);
   }
  }

  protected virtual void SendPropertyChanged(String propertyName)
  {
   if ((this.PropertyChanged != null))
   {
    this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
   }
  }
 }
}!�using System.ComponentModel;
using System.Windows;
using System.Windows.Controls;
using DevExpress.Xpf.Grid;
using DevExpress.Xpf.Core;



namespace GridDemo {
    public class DemoColumnChooserControl : Control {
        public static readonly DependencyProperty ViewProperty;

        static DemoColumnChooserControl() {
            ViewProperty = DependencyProperty.Register("View", typeof(GridViewBase), typeof(DemoColumnChooserControl), new PropertyMetadata(null));
        }
        public DemoColumnChooserControl() {
            DefaultStyleKey = typeof(DemoColumnChooserControl);
        }

        public GridViewBase View {
            get { return (GridViewBase)GetValue(ViewProperty); }
            set { SetValue(ViewProperty, value); }
        }

        internal ColumnChooserControl ColunmChooserControl { get; private set; }

        public override void OnApplyTemplate() {
            base.OnApplyTemplate();
            ColunmChooserControl = (ColumnChooserControl)GetTemplateChild("PART_ColumnChooserControl");
        }
    }
    public class DemoColumnChooser : IColumnChooser, IColumnChooserFactory {
        readonly DemoColumnChooserControl columnChooserControl;
        public DemoColumnChooser(DemoColumnChooserControl columnChooserControl) {
            this.columnChooserControl = columnChooserControl;
        }
        #region IColumnChooser Members
        void IColumnChooser.Show() { }
        void IColumnChooser.Hide() { }
        void IColumnChooser.ApplyState(IColumnChooserState state) { }
        void IColumnChooser.SaveState(IColumnChooserState state) { }
        void IColumnChooser.Destroy() { }
        UIElement IColumnChooser.TopContainer { get { return columnChooserControl.ColunmChooserControl; } }
        #endregion

        #region IColumnChooserFactory Members
        IColumnChooser IColumnChooserFactory.Create(Control owner) {
            return this;
        }
        #endregion
    }
}!�using System;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Controls.Primitives;
using DevExpress.Utils;
using DevExpress.Xpf.Core;
using DevExpress.Xpf.DemoBase;
using DevExpress.Xpf.Grid;
using DevExpress.Xpf.Printing;
using DevExpress.Xpf.Utils.Themes;
using DevExpress.Xpf.Editors;
using DevExpress.Xpf.Core.Native;
using DevExpress.Xpf.Themes;

namespace GridDemo {
    public class GridDemoModule : DemoModule {
        public static readonly DependencyProperty GridControlProperty;

        static GridDemoModule() {
            GridControlProperty = DependencyProperty.Register("GridControl", typeof(GridControl), typeof(GridDemoModule), new PropertyMetadata(null));
        }

        public GridDemoModule() {
        }

        protected virtual bool IsGridBorderVisible { get { return false; } }
        public bool UseGridControlWrapperAsDataContext { get; set; }
        public GridControl GridControl {
            get { return (GridControl)GetValue(GridControlProperty); }
            set { SetValue(GridControlProperty, value); }
        }
        public override void OnApplyTemplate() {
            base.OnApplyTemplate();
        }
        protected override object GetModuleDataContext() {
            if(GridControl == null) {
                GridControl = FindGrid();
                if(GridControl != null)
                    GridControl.ShowBorder = IsGridBorderVisible;
            }
            if(UseGridControlWrapperAsDataContext)
                return new GridControlWrapper(GridControl);
            return GridControl;
        }
        protected virtual GridControl FindGrid() {
            return (GridControl)DemoModuleControl.FindDemoContent(typeof(GridControl), (DependencyObject)DemoModuleControl.Content);
        }
        protected override void RaiseIsPopupContentInvisibleChanged(DependencyPropertyChangedEventArgs e) {
            base.RaiseIsPopupContentInvisibleChanged(e);
            if(IsPopupContentInvisible && GridControl != null)
                GridControl.View.HideColumnChooser();
        }
        protected override bool CanLeave() {
            if(GridControl == null)
                return true;
            return GridControl.View.CommitEditing();
        }

    }
    public class GridControlWrapper : System.ComponentModel.INotifyPropertyChanged {
        GridControl grid;
        public GridControl GridControl {
            get {
                return grid;
            }
            set {
                if(grid == value)
                    return;
                grid = value;
                OnPropertyChanged("GridControl");
            }
        }
        public GridControlWrapper(GridControl gridControl) {
            GridControl = gridControl;
        }

        public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
        void OnPropertyChanged(String propertyName) {
            if((this.PropertyChanged != null)) {
                this.PropertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName));
            }
        }
    }
    public class PrintViewGridDemoModule : GridDemoModule {
        public static LinkPreviewModel CreateLinkPreviewModel(IPrintableControl printableControl) {
            PrintableControlLink link = new PrintableControlLink(printableControl as IPrintableControl);
            return new LinkPreviewModel(link);
        }
        protected virtual DXTabControl DXTabControl { get { return null; } }
        protected override GridControl FindGrid() {
            return DXTabControl != null ? (GridControl)((DXTabItem)DXTabControl.Items[0]).Content : null;
        }
        public void ShowPrintPreview() {
            Window owner = LayoutHelper.FindParentObject<Window>(this);
            PrintHelper.ShowPrintPreviewDialog(owner, (IPrintableControl)GridControl.View, "Grid Document");
        }
        public void ShowPrintPreviewInNewTab(GridControl grid, DXTabControl tabControl, string tabName) {
            DocumentPreview preview = new DocumentPreview();
            LinkPreviewModel model = CreateLinkPreviewModel(grid.View as IPrintableControl);
            preview.Model = model;

            TabHeaderPrintInfoControl tabHeaderPrintInfoControl = new TabHeaderPrintInfoControl() { TabName = tabName, LinkPreviewModel = model };
            DXTabItem tabItem = new DXTabItem() { AllowHide = DefaultBoolean.True, Content = preview, Header = tabHeaderPrintInfoControl };
            tabControl.Items.Add(tabItem);
            tabControl.SelectedItem = tabItem;

            model.Link.CreateDocument(true);
        }
        protected void DisposePrintPreviewTabContent(DXTabItem tabItem) {
            DXTabControl.Items.Remove(tabItem);
            TabHeaderPrintInfoControl tabHeaderPrintInfoControl = (TabHeaderPrintInfoControl)tabItem.Header;
            tabHeaderPrintInfoControl.LinkPreviewModel.Link.Dispose();
        }
        protected override void Clear() {
            base.Clear();
            for(int i = DXTabControl.Items.Count - 1; i >= 1; i--) {
                DisposePrintPreviewTabContent((DXTabItem)DXTabControl.Items[i]);
            }
        }
        protected void newWindowButton_Click(object sender, RoutedEventArgs e) {
            ShowPrintPreview();
        }
        protected virtual void ShowPreviewInNewTab() { }
    }
    public class CountryToFlagImageConverter : BytesToImageSourceConverter {
        public override object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) {
            foreach(Country item in CountriesData.DataSource) {
                if(item.Name == (string)value)
                    return base.Convert(item.Flag, targetType, parameter, culture);
            }
            return null;
        }
    }
}
namespace CommonDemo {
    public class CommonDemoModule : GridDemo.GridDemoModule {
    }
}!*using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using DevExpress.Xpf.Grid;
using DevExpress.Xpf.Core;
using DevExpress.DemoData.Helpers;

using System.Data.EntityClient;

namespace GridDemo {
    public class DemoValuesProvider {
        public IEnumerable<CardLayout> CardLayouts { get { return DevExpress.Data.Mask.EnumHelper.GetValues(typeof(CardLayout)).Cast<CardLayout>(); } }
        public IEnumerable<Alignment> Alignments { get { return DevExpress.Data.Mask.EnumHelper.GetValues(typeof(Alignment)).Cast<Alignment>(); } }
        public IEnumerable<GridViewNavigationStyle> NavigationStyles { get { return DevExpress.Data.Mask.EnumHelper.GetValues(typeof(GridViewNavigationStyle)).Cast<GridViewNavigationStyle>(); } }
    }
    public static class EFConnectionStringProvider {
        public static string ConnectionString {
            get {
                EntityConnectionStringBuilder sb = new EntityConnectionStringBuilder();
                sb.Metadata = "res://*/Controls.NWindModel.csdl|res://*/Controls.NWindModel.ssdl|res://*/Controls.NWindModel.msl";
                sb.Provider = "System.Data.SqlClient";
                sb.ProviderConnectionString = String.Format(@"data source=.\SQLEXPRESS;AttachDbFilename={0};integrated security=True;User Instance=True;multipleactiveresultsets=True;App=EntityFramework",
                    System.IO.Path.GetFullPath(DataFilesHelper.FindFile("NWind.mdf", DataFilesHelper.DataPath)));
                return sb.ToString();
            }
        }
    }
}!7

using System;
using System.Data.Objects;
using System.Data.Objects.DataClasses;
using System.Data.EntityClient;
using System.ComponentModel;
using System.Xml.Serialization;
using System.Runtime.Serialization;

[assembly: EdmSchemaAttribute()]

namespace GridDemo.Controls
{
    #region Contexts
    public partial class DXGridServerModeDBEntities : ObjectContext
    {
        #region Constructors
        public DXGridServerModeDBEntities() : base("name=DXGridServerModeDBEntities", "DXGridServerModeDBEntities")
        {
            this.ContextOptions.LazyLoadingEnabled = true;
            OnContextCreated();
        }
        public DXGridServerModeDBEntities(string connectionString) : base(connectionString, "DXGridServerModeDBEntities")
        {
            this.ContextOptions.LazyLoadingEnabled = true;
            OnContextCreated();
        }
        public DXGridServerModeDBEntities(EntityConnection connection) : base(connection, "DXGridServerModeDBEntities")
        {
            this.ContextOptions.LazyLoadingEnabled = true;
            OnContextCreated();
        }

        #endregion

        #region Partial Methods

        partial void OnContextCreated();

        #endregion

        #region ObjectSet Properties
        public ObjectSet<EFServerModeTestClass> EFServerModeTestClasses
        {
            get
            {
                if ((_EFServerModeTestClasses == null))
                {
                    _EFServerModeTestClasses = base.CreateObjectSet<EFServerModeTestClass>("EFServerModeTestClasses");
                }
                return _EFServerModeTestClasses;
            }
        }
        private ObjectSet<EFServerModeTestClass> _EFServerModeTestClasses;

        #endregion
        #region AddTo Methods
        public void AddToEFServerModeTestClasses(EFServerModeTestClass eFServerModeTestClass)
        {
            base.AddObject("EFServerModeTestClasses", eFServerModeTestClass);
        }

        #endregion
    }


    #endregion

    #region Entities
    [EdmEntityTypeAttribute(NamespaceName="DXGridServerModeDBModel", Name="EFServerModeTestClass")]
    [Serializable()]
    [DataContractAttribute(IsReference=true)]
    public partial class EFServerModeTestClass : EntityObject
    {
        #region Factory Method
        public static EFServerModeTestClass CreateEFServerModeTestClass(global::System.Int32 oID)
        {
            EFServerModeTestClass eFServerModeTestClass = new EFServerModeTestClass();
            eFServerModeTestClass.OID = oID;
            return eFServerModeTestClass;
        }

        #endregion
        #region Primitive Properties
        [EdmScalarPropertyAttribute(EntityKeyProperty=true, IsNullable=false)]
        [DataMemberAttribute()]
        public global::System.Int32 OID
        {
            get
            {
                return _OID;
            }
            set
            {
                if (_OID != value)
                {
                    OnOIDChanging(value);
                    ReportPropertyChanging("OID");
                    _OID = StructuralObject.SetValidValue(value);
                    ReportPropertyChanged("OID");
                    OnOIDChanged();
                }
            }
        }
        private global::System.Int32 _OID;
        partial void OnOIDChanging(global::System.Int32 value);
        partial void OnOIDChanged();
        [EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=true)]
        [DataMemberAttribute()]
        public global::System.String Subject
        {
            get
            {
                return _Subject;
            }
            set
            {
                OnSubjectChanging(value);
                ReportPropertyChanging("Subject");
                _Subject = StructuralObject.SetValidValue(value, true);
                ReportPropertyChanged("Subject");
                OnSubjectChanged();
            }
        }
        private global::System.String _Subject;
        partial void OnSubjectChanging(global::System.String value);
        partial void OnSubjectChanged();
        [EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=true)]
        [DataMemberAttribute()]
        public global::System.String From
        {
            get
            {
                return _From;
            }
            set
            {
                OnFromChanging(value);
                ReportPropertyChanging("From");
                _From = StructuralObject.SetValidValue(value, true);
                ReportPropertyChanged("From");
                OnFromChanged();
            }
        }
        private global::System.String _From;
        partial void OnFromChanging(global::System.String value);
        partial void OnFromChanged();
        [EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=true)]
        [DataMemberAttribute()]
        public Nullable<global::System.DateTime> Sent
        {
            get
            {
                return _Sent;
            }
            set
            {
                OnSentChanging(value);
                ReportPropertyChanging("Sent");
                _Sent = StructuralObject.SetValidValue(value);
                ReportPropertyChanged("Sent");
                OnSentChanged();
            }
        }
        private Nullable<global::System.DateTime> _Sent;
        partial void OnSentChanging(Nullable<global::System.DateTime> value);
        partial void OnSentChanged();
        [EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=true)]
        [DataMemberAttribute()]
        public Nullable<global::System.Int64> Size
        {
            get
            {
                return _Size;
            }
            set
            {
                OnSizeChanging(value);
                ReportPropertyChanging("Size");
                _Size = StructuralObject.SetValidValue(value);
                ReportPropertyChanged("Size");
                OnSizeChanged();
            }
        }
        private Nullable<global::System.Int64> _Size;
        partial void OnSizeChanging(Nullable<global::System.Int64> value);
        partial void OnSizeChanged();
        [EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=true)]
        [DataMemberAttribute()]
        public Nullable<global::System.Boolean> HasAttachment
        {
            get
            {
                return _HasAttachment;
            }
            set
            {
                OnHasAttachmentChanging(value);
                ReportPropertyChanging("HasAttachment");
                _HasAttachment = StructuralObject.SetValidValue(value);
                ReportPropertyChanged("HasAttachment");
                OnHasAttachmentChanged();
            }
        }
        private Nullable<global::System.Boolean> _HasAttachment;
        partial void OnHasAttachmentChanging(Nullable<global::System.Boolean> value);
        partial void OnHasAttachmentChanged();

        #endregion

    }

    #endregion

}!5using System.Collections.Generic;
using System.Windows;
using DevExpress.Xpf.Editors.Settings;

namespace GridDemo {
    public class GridControlDefinitionCollection : List<GridControlDefinition> { }
    public class GridControlDefinition : DependencyObject {
        public static readonly DependencyProperty DataSourceProperty = DependencyProperty.Register("DataSource", typeof(object), typeof(GridControlDefinition), new PropertyMetadata(null));
        public object DataSource {
            get { return GetValue(DataSourceProperty); }
            set { SetValue(DataSourceProperty, value); }
        }
        public string Name { get; set; }
        List<GridColumnDefinition> columns;
        public List<GridColumnDefinition> Columns { get { return columns; } }
        public GridControlDefinition() {
            columns = new List<GridColumnDefinition>();
        }
    }
    public class GridColumnDefinition {
        public string FieldName { get; set; }
        public DataTemplate CellTemplate { get; set; }
        public double Width { get; set; }
        public bool FixedWidth { get; set; }
        public BaseEditSettings EditSettings { get; set; }
        public object Header { get; set; }
        public GridColumnDefinition() {
            Width = double.NaN;
        }
    }
}!�MSBAML```����GridDemo("GridDemo.InternetConnectionControl\XPresentationFramework, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35RNWindowsBase, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35WSPresentationCore, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35D9http://schemas.microsoft.com/winfx/2006/xaml/presentationRNSystem.Xaml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089:x,http://schemas.microsoft.com/winfx/2006/xamlJmc;http://schemas.openxmlformats.org/markup-compatibility/2006@d2http://schemas.microsoft.com/expression/blend/2008.��$
�0,0,0,8q�$
�Stretch=���BitmapScalingMode$NearestNeighbor=��ColumnDefinitions��$
�Auto���.+��$0��*/GridDemo;component/Images/WarningIcon.png�$
��None=���$
�4,0,0,0q�$�1�$
��Wrap=�$�Center=�)'This demo requires Internet connection.!�<UserControl x:Class="GridDemo.InternetConnectionControl"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
             xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
             mc:Ignorable="d"
             d:DesignHeight="300" d:DesignWidth="300">
    <Grid Margin="0,0,0,8" HorizontalAlignment="Stretch">
        <RenderOptions.BitmapScalingMode>NearestNeighbor</RenderOptions.BitmapScalingMode>
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="Auto"/>
            <ColumnDefinition />
        </Grid.ColumnDefinitions>
        <Image Source="/GridDemo;component/Images/WarningIcon.png" Stretch="None"/>
        <TextBlock Margin="4,0,0,0" Grid.Column="1" TextWrapping="Wrap" VerticalAlignment="Center">This demo requires Internet connection.</TextBlock>
    </Grid>
</UserControl>!.using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;

namespace GridDemo {
    public partial class InternetConnectionControl : UserControl {
        public InternetConnectionControl() {
            InitializeComponent();
        }
    }
}!9using System;
using System.Windows;
using System.Windows.Data;
using GridDemo;
using DevExpress.Xpf.Editors.Settings;
using DevExpress.Data.Mask;
using DevExpress.Xpf.Editors;
using DevExpress.Xpf.DemoBase.DataClasses;
using DevExpress.Xpf.Grid;
using System.Windows.Controls;
using System.Linq;
using System.Collections;
using System.Collections.Generic;
using System.Diagnostics;
using DevExpress.Xpf.DemoBase.NWind;
using System.Windows.Input;
using DevExpress.Xpf.DemoBase;
using DevExpress.Xpf.Utils;
using System.Data;

namespace GridDemo {

    public class OrdersWithDetail : Orders {
        public IList<Invoices> Invoices { get; private set; }

        public static IList<OrdersWithDetail> CreateOrdersForMasterDetailView(string customerID, int employeeID) {
            DataView orders = NWindData.Orders;
            IList<OrdersWithDetail> res = new List<OrdersWithDetail>();
            Dictionary<int, int> dict = EmployeesWithPhotoData.OrdersRelationsDictionary;
            foreach(DataRowView order in orders) {
                if((customerID == "" || (string)order["CustomerID"] == customerID) && (dict[(int)order["OrderID"]]) == employeeID)
                    res.Add(new OrdersWithDetail(order));
            }
            return res;
        }
        public static IList<OrdersWithDetail> CreateOrders(string customerID, int employeeID) {
            DataView orders = NWindData.Orders;
            IList<OrdersWithDetail> res = new List<OrdersWithDetail>();
            int i = 0;
            foreach(DataRowView order in orders) {
                if(i > 10) break;
                if((customerID == "" || (string)order["CustomerID"] == customerID) && (int)order["EmployeeID"] == employeeID) {
                    res.Add(new OrdersWithDetail(order));
                    i++;
                }
            }
            return res;
        }
        IList<Invoices> CreateInvoices(int orderID, string customerID) {
            DataView invoices = NWindData.Invoices;
            IList<Invoices> res = new List<Invoices>();
            foreach(DataRowView invoice in invoices) {
                if((customerID == "" || (string)invoice["CustomerID"] == customerID) && (int)invoice["OrderID"] == orderID)
                    res.Add(new Invoices() {
                        Address = invoice["Address"] as string,
                        City = invoice["City"] as string,
                        Country = invoice["Country"] as string,
                        CustomerID = invoice["CustomerID"] as string,
                        Discount = Convert.ToDecimal((float)invoice["Discount"]),
                        ExtendedPrice = (decimal)invoice["ExtendedPrice"],
                        Freight = (decimal)invoice["Freight"],
                        OrderDate = (DateTime)invoice["OrderDate"],
                        OrderID = (int)invoice["OrderID"],
                        PostalCode = invoice["PostalCode"] as string,
                        ProductID = (int)invoice["ProductID"],
                        ProductName = invoice["ProductName"] as string,
                        Quantity = (short)invoice["Quantity"],
                        Region = invoice["Region"] as string,
                        RequiredDate = (DateTime)invoice["RequiredDate"],
                        Salesperson = invoice["Salesperson"] as string,
                        ShipAddress = invoice["ShipAddress"] as string,
                        ShipCity = invoice["ShipCity"] as string,
                        ShipCountry = CountryNameResolver.Resolve(invoice["ShipCountry"] as string),
                        ShipName = invoice["ShipName"] as string,
                        ShipPostalCode = invoice["ShipPostalCode"] as string,
                        ShipRegion = invoice["ShipRegion"] as string,
                        UnitPrice = (decimal)invoice["UnitPrice"]
                    });
            }
            return res;
        }
        public OrdersWithDetail(DataRowView o) {
            this.CustomerID = o["CustomerID"] as string;
            this.EmployeeID = (int)o["EmployeeID"];
            this.Freight = (decimal)o["Freight"];
            this.OrderDate = (DateTime)o["OrderDate"];
            this.OrderID = (int)o["OrderID"];
            this.RequiredDate = (DateTime)o["RequiredDate"];
            this.ShipAddress = o["ShipAddress"] as string;
            this.ShipCity = o["ShipCity"] as string;
            this.ShipCountry = CountryNameResolver.Resolve(o["ShipCountry"] as string);
            this.ShipName = o["ShipName"] as string;
            this.ShipPostalCode = o["ShipPostalCode"] as string;
            this.ShipRegion = o["ShipRegion"] as string;
            this.ShipVia = (int)o["ShipVia"];
            Invoices = CreateInvoices(OrderID, CustomerID);
        }
    }
    public class CustomersWithDetail : Customers {
        public IList<OrdersWithDetail> Orders { get; private set; }

        public static bool Exists(DataView view, Predicate<DataRowView> condition) {
            foreach(DataRowView row in view)
                if(condition(row))
                    return true;
            return false;
        }
        public static IList<CustomersWithDetail> CreateCustomersForMaterDetailView(int employeeID) {
            DataView orders = NWindData.Orders;
            DataView customers = NWindData.Customers;
            Dictionary<int, int> dict = EmployeesWithPhotoData.OrdersRelationsDictionary;
            IList<CustomersWithDetail> res = new List<CustomersWithDetail>();
            foreach(DataRowView c in customers) {
                DataRowView row = c;
                if(Exists(orders, (order) => (string)order["CustomerID"] == (string)row["CustomerID"] && dict[(int)order["OrderId"]] == employeeID))
                    res.Add(new CustomersWithDetail(c, employeeID, true));
            }
            return res;
        }
        public static IList<CustomersWithDetail> CreateCustomers(int employeeID) {
            DataView orders = NWindData.Orders;
            DataView customers = NWindData.Customers;
            IList<CustomersWithDetail> res = new List<CustomersWithDetail>();
            foreach(DataRowView c in customers) {
                DataRowView row = c;
                if(Exists(orders, (order) => (string)order["CustomerID"] == (string)row["CustomerID"] && (int)order["EmployeeID"] == employeeID))
                    res.Add(new CustomersWithDetail(c, employeeID));
            }
            return res;
        }

        public CustomersWithDetail(DataRowView c, int employeeID, bool newOrders = false) {
            this.Address = c["Address"] as string;
            this.City = c["City"] as string;
            this.CompanyName = c["CompanyName"] as string;
            this.ContactName = c["ContactName"] as string;
            this.ContactTitle = c["ContactTitle"] as string;
            this.Country = CountryNameResolver.Resolve(c["Country"] as string);
            this.CustomerID = c["CustomerID"] as string;
            this.Fax = c["Fax"] as string;
            this.Phone = c["Phone"] as string;
            this.PostalCode = c["PostalCode"] as string;
            this.Region = c["Region"] as string;
            Orders = newOrders ?  OrdersWithDetail.CreateOrdersForMasterDetailView(CustomerID, employeeID) : OrdersWithDetail.CreateOrders(CustomerID, employeeID);
        }

    }
    public class EmployeesWithDetails : List<EmployeeWithDetails> {
        public EmployeesWithDetails() {
            AddRange(EmployeeWithDetails.CreateMasterDetailSource());
        }
    }

    public class EmployeesWithDetailsForEmbeddedView : List<EmployeeWithDetails> {
        public EmployeesWithDetailsForEmbeddedView() {
            AddRange(EmployeeWithDetails.CreateEmbeddedViewSource());
        }
    }
    public class EmployeeWithDetails : Employees {
        IList<CustomersWithDetail> customersCore;
        public IList<CustomersWithDetail> Customers {
            get {
                if(customersCore == null)
                    customersCore = CustomersWithDetail.CreateCustomers(EmployeeID);
                return customersCore;
            }
        }
        IList<OrdersWithDetail> ordersCore;
        public IList<OrdersWithDetail> Orders {
            get {
                if(ordersCore == null)
                    ordersCore = OrdersWithDetail.CreateOrders("", EmployeeID);
                return ordersCore;
            }
        }

        IList<CustomersWithDetail> mdcustomersCore;
        public IList<CustomersWithDetail> MDCustomers {
            get {
                if(mdcustomersCore == null)
                    mdcustomersCore = CustomersWithDetail.CreateCustomersForMaterDetailView(EmployeeID);
                return mdcustomersCore;
            }
        }
        IList<OrdersWithDetail> mdordersCore;
        public IList<OrdersWithDetail> MDOrders {
            get {
                if(mdordersCore == null)
                    mdordersCore = OrdersWithDetail.CreateOrdersForMasterDetailView("", EmployeeID);
                return mdordersCore;
            }
        }

        IEnumerable<ChartPoint> chartSourceCore;
        public IEnumerable<ChartPoint> ChartSource {
            get {
                if(chartSourceCore == null)
                    chartSourceCore = CreateChartSource();
                return chartSourceCore;
            }
        }

        IEnumerable<ChartPoint> CreateChartSource() {
            IList<ChartPoint> list = (from o in MDOrders
                                      group o by o.OrderDate into cp
                                      select new ChartPoint() {
                                          ArgumentMember = cp.Key,
                                          Orders = cp.ToList() }).ToList();
            foreach(ChartPoint cp in list) {
                decimal value = 0;
                foreach(OrdersWithDetail order in cp.Orders)
                    foreach(Invoices inv in order.Invoices)
                        value += inv.Quantity * inv.UnitPrice;
                cp.ValueMember = (int)value;
            }
            return list;
        }
        public string EMail { get; set; }

        public static IList<EmployeeWithDetails> CreateMasterDetailSource() {
            List<Employee> empls = EmployeesWithPhotoData.DataSource;
            List<EmployeeWithDetails> res = new List<EmployeeWithDetails>();

            foreach(Employee employee in empls)
                res.Add(new EmployeeWithDetails(employee));
            InitSubordinateEmployee(res);
            return res;
        }
        public List<EmployeeWithDetails> SubEmployees { get; set; }
        static void InitSubordinateEmployee(List<EmployeeWithDetails> res) {
            foreach(EmployeeWithDetails empl in res) {
                int emplId = empl.EmployeeID;
                empl.SubEmployees = res.Where(e => e.ParentId == emplId).ToList();
            }
        }
        public static IList<EmployeeWithDetails> CreateEmbeddedViewSource() {
            DataView employees = NWindData.Employees;
            List<EmployeeWithDetails> res = new List<EmployeeWithDetails>();
            foreach(DataRowView employee in employees) {
                res.Add(new EmployeeWithDetails(employee));
            }
            return res;
        }

        public EmployeeWithDetails(DataRowView e) {
            Address = e["Address"] as string;
            BirthDate = (DateTime)e["BirthDate"];
            City = e["City"] as string;
            Country = e["Country"] as string;
            EmployeeID = (int)e["EmployeeID"];
            Extension = e["Extension"] as string;
            FirstName = e["FirstName"] as string;
            HireDate = (DateTime)e["HireDate"];
            HomePhone = e["HomePhone"] as string;
            LastName = e["LastName"] as string;
            Notes = e["Notes"] as string;
            Photo = (byte[])e["Photo"];
            PostalCode = (string)e["PostalCode"] as string;
            Region = e["Region"] as string;
            Title = e["Title"] as string;
            TitleOfCourtesy = e["TitleOfCourtesy"] as string;
        }
        public EmployeeWithDetails(Employee e) {
            Address = e.AddressLine1;
            BirthDate = e.BirthDate;
            City = e.City;
            Country = CountryNameResolver.Resolve(e.CountryRegionName);
            EmployeeID = e.Id;
            FirstName = e.FirstName;
            HireDate = e.HireDate;
            HomePhone = e.Phone;
            LastName = e.LastName;
            Photo = e.ImageData;
            PostalCode = e.PostalCode;
            Region = e.CountryRegionName;
            EMail = e.EmailAddress;
            Title = e.JobTitle;
            this.ParentId = e.ParentId;
        }
        internal int ParentId { get; private set; }
    }

    public class ChartPoint {
        public DateTime ArgumentMember { get; internal set; }
        public int ValueMember { get; set; }
        internal IList<OrdersWithDetail> Orders { get; set; }
    }
    internal static class CountryNameResolver {
        internal static string Resolve(string countryName) {
            switch(countryName) {
                case "USA":
                    return "United States";
                case "UK":
                    return "United Kingdom";
                default: return countryName;
            }
        }
    }

    public class EmployeeToOrdersConverter : IValueConverter {
        Dictionary<Employee, IEnumerable<Orders>> employeeOrders = new Dictionary<Employee, IEnumerable<Orders>>();

        public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) {
            Employee empl = value as Employee;
            if(empl == null) return null;
            IEnumerable<Orders> orders = null;
            if(!employeeOrders.TryGetValue(empl, out orders)) {
                orders = OrdersWithDetail.CreateOrdersForMasterDetailView("", empl.Id);
                employeeOrders.Add(empl, orders);
            }
            return orders;
        }

        public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) {
            throw new NotImplementedException();
        }
    }
}!�MSBAML```����GridDemo+%GridDemo.MultiSelectionOptionsControl\XPresentationFramework, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35RNWindowsBase, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35WSPresentationCore, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35D9http://schemas.microsoft.com/winfx/2006/xaml/presentationRNSystem.Xaml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089:x,http://schemas.microsoft.com/winfx/2006/xamla]DevExpress.Xpf.Core.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a;dx2http://schemas.devexpress.com/winfx/2008/xaml/core?dxe5http://schemas.devexpress.com/winfx/2008/xaml/editors.�$DevExpress.Xpf.Core.GroupFrame-Name$groupBoxControl��.�����Orientation$Vertical=�.+�)#DevExpress.Xpf.Editors.ComboBoxEdit-Name$comboBoxControl��'!DevExpress.Xpf.Editors.ButtonEditIsTextEditable.��.+��-$�SelectButton��$
�0,4,0,0q�$�Add to Selection���-$�UnselectButton��$
�0,4,0,0q�$�Remove from Selection���-$�ReselectButton��$
�0,4,0,0q�.���$
Horizontal=�$�0q�.+���$��Select Only This ��$�0q���$�0q�����Path$Header��ElementName$groupBoxControl��!o<UserControl x:Class="GridDemo.MultiSelectionOptionsControl"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:dx="http://schemas.devexpress.com/winfx/2008/xaml/core"
 xmlns:dxe="http://schemas.devexpress.com/winfx/2008/xaml/editors">
    <dx:GroupFrame x:Name="groupBoxControl">
  <StackPanel Orientation="Vertical">
   <dxe:ComboBoxEdit x:Name="comboBoxControl" IsTextEditable="False" />
   <StackPanel>
    <Button Name="SelectButton" Margin="0,4,0,0" Content="Add to Selection" Click="SelectButtonClickInClass" />
    <Button Name="UnselectButton" Margin="0,4,0,0" Content="Remove from Selection" Click="UnselectButtonClickInClass" />
    <Button Name="ReselectButton" Margin="0,4,0,0" Click="ReselectButtonClickInClass">
     <StackPanel Orientation="Horizontal" Margin="0">
      <TextBlock Text="Select Only This " Margin="0" />
      <TextBlock Text="{Binding Path=Header, ElementName=groupBoxControl}" Margin="0" />
     </StackPanel>
    </Button>
   </StackPanel>
  </StackPanel>
    </dx:GroupFrame>
</UserControl>!7
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using System.Collections;
using DevExpress.Xpf.Editors;
using DevExpress.Xpf.Utils;

namespace GridDemo {
    public partial class MultiSelectionOptionsControl : UserControl {
        public static readonly DependencyProperty ComboBoxItemsSourceProperty;
        static MultiSelectionOptionsControl() {
            ComboBoxItemsSourceProperty = DependencyPropertyManager.Register("ComboBoxItemsSource", typeof(IEnumerable), typeof(MultiSelectionOptionsControl), new PropertyMetadata(null, ComboBoxItemsSourceChanged));
        }
        static void ComboBoxItemsSourceChanged(DependencyObject dObject, DependencyPropertyChangedEventArgs e) {
            ((MultiSelectionOptionsControl)dObject).OnComboBoxItemsSourceChanged();
        }
        public MultiSelectionOptionsControl() {
            InitializeComponent();
        }
        public IEnumerable ComboBoxItemsSource {
            get { return (IEnumerable)GetValue(ComboBoxItemsSourceProperty); }
            set { SetValue(ComboBoxItemsSourceProperty, value); }
        }
        EventHandler selectButtonClickHandler;
        public event EventHandler SelectButtonClick {
            add { selectButtonClickHandler += value; }
            remove { selectButtonClickHandler -= value; }
        }
        EventHandler unselectButtonClickHandler;
        public event EventHandler UnselectButtonClick {
            add { unselectButtonClickHandler += value; }
            remove { unselectButtonClickHandler -= value; }
        }
        EventHandler reselectButtonClickHandler;
        public event EventHandler ReselectButtonClick {
            add { reselectButtonClickHandler += value; }
            remove { reselectButtonClickHandler -= value; }
        }
        void OnComboBoxItemsSourceChanged() {
            comboBoxControl.ItemsSource = ComboBoxItemsSource;
        }
        protected void RaiseButtonClick(EventHandler handler) {
            EventArgs e = new EventArgs();
            if(handler != null)
                handler(this, e);
        }
        public string Header { get { return Convert.ToString(groupBoxControl.Header); } set { groupBoxControl.Header = value; } }
        public string ComboBoxDisplayMember { get { return comboBoxControl.DisplayMember; } set { comboBoxControl.DisplayMember = value; } }
        public string ComboBoxValueMember { get { return comboBoxControl.ValueMember; } set { comboBoxControl.ValueMember = value; } }
        public ComboBoxEdit ComboBox { get { return comboBoxControl; } }
        private void SelectButtonClickInClass(object sender, RoutedEventArgs e) {
            RaiseButtonClick(selectButtonClickHandler);
        }
        private void UnselectButtonClickInClass(object sender, RoutedEventArgs e) {
            RaiseButtonClick(unselectButtonClickHandler);
        }
        private void ReselectButtonClickInClass(object sender, RoutedEventArgs e) {
            RaiseButtonClick(reselectButtonClickHandler);
        }
    }
}!G�

using System;
using System.Data.Objects;
using System.Data.Objects.DataClasses;
using System.Data.EntityClient;
using System.ComponentModel;
using System.Xml.Serialization;
using System.Runtime.Serialization;

#region EDM Relationship Metadata

[assembly: EdmRelationshipAttribute("NorthwindModel", "FK_Products_Categories", "Categories", System.Data.Metadata.Edm.RelationshipMultiplicity.ZeroOrOne, typeof(GridDemo.Controls.Category), "Products", System.Data.Metadata.Edm.RelationshipMultiplicity.Many, typeof(GridDemo.Controls.Product), true)]
[assembly: EdmRelationshipAttribute("NorthwindModel", "FK_Orders_Customers", "Customers", System.Data.Metadata.Edm.RelationshipMultiplicity.ZeroOrOne, typeof(GridDemo.Controls.Customer), "Orders", System.Data.Metadata.Edm.RelationshipMultiplicity.Many, typeof(GridDemo.Controls.Order), true)]
[assembly: EdmRelationshipAttribute("NorthwindModel", "FK_Employees_Employees", "Employees", System.Data.Metadata.Edm.RelationshipMultiplicity.ZeroOrOne, typeof(GridDemo.Controls.Employee), "Employees1", System.Data.Metadata.Edm.RelationshipMultiplicity.Many, typeof(GridDemo.Controls.Employee), true)]
[assembly: EdmRelationshipAttribute("NorthwindModel", "FK_Orders_Employees", "Employees", System.Data.Metadata.Edm.RelationshipMultiplicity.ZeroOrOne, typeof(GridDemo.Controls.Employee), "Orders", System.Data.Metadata.Edm.RelationshipMultiplicity.Many, typeof(GridDemo.Controls.Order), true)]
[assembly: EdmRelationshipAttribute("NorthwindModel", "FK_Order_Details_Orders", "Orders", System.Data.Metadata.Edm.RelationshipMultiplicity.One, typeof(GridDemo.Controls.Order), "Order_Details", System.Data.Metadata.Edm.RelationshipMultiplicity.Many, typeof(GridDemo.Controls.Order_Details), true)]
[assembly: EdmRelationshipAttribute("NorthwindModel", "FK_Order_Details_Products", "Products", System.Data.Metadata.Edm.RelationshipMultiplicity.One, typeof(GridDemo.Controls.Product), "Order_Details", System.Data.Metadata.Edm.RelationshipMultiplicity.Many, typeof(GridDemo.Controls.Order_Details), true)]
[assembly: EdmRelationshipAttribute("NorthwindModel", "FK_Orders_Shippers", "Shippers", System.Data.Metadata.Edm.RelationshipMultiplicity.ZeroOrOne, typeof(GridDemo.Controls.Shipper), "Orders", System.Data.Metadata.Edm.RelationshipMultiplicity.Many, typeof(GridDemo.Controls.Order), true)]
[assembly: EdmRelationshipAttribute("NorthwindModel", "FK_Products_Suppliers", "Suppliers", System.Data.Metadata.Edm.RelationshipMultiplicity.ZeroOrOne, typeof(GridDemo.Controls.Supplier), "Products", System.Data.Metadata.Edm.RelationshipMultiplicity.Many, typeof(GridDemo.Controls.Product), true)]
[assembly: EdmRelationshipAttribute("NorthwindModel", "FK_Territories_Region", "Region", System.Data.Metadata.Edm.RelationshipMultiplicity.One, typeof(GridDemo.Controls.Region), "Territories", System.Data.Metadata.Edm.RelationshipMultiplicity.Many, typeof(GridDemo.Controls.Territory), true)]
[assembly: EdmRelationshipAttribute("NorthwindModel", "CustomerCustomerDemo", "CustomerDemographics", System.Data.Metadata.Edm.RelationshipMultiplicity.Many, typeof(GridDemo.Controls.CustomerDemographic), "Customers", System.Data.Metadata.Edm.RelationshipMultiplicity.Many, typeof(GridDemo.Controls.Customer))]
[assembly: EdmRelationshipAttribute("NorthwindModel", "EmployeeTerritories", "Employees", System.Data.Metadata.Edm.RelationshipMultiplicity.Many, typeof(GridDemo.Controls.Employee), "Territories", System.Data.Metadata.Edm.RelationshipMultiplicity.Many, typeof(GridDemo.Controls.Territory))]

#endregion

namespace GridDemo.Controls
{
    #region Contexts
    public partial class NorthwindEntities : ObjectContext
    {
        #region Constructors
        public NorthwindEntities() : base("name=NorthwindEntities", "NorthwindEntities")
        {
            this.ContextOptions.LazyLoadingEnabled = true;
            OnContextCreated();
        }
        public NorthwindEntities(string connectionString) : base(connectionString, "NorthwindEntities")
        {
            this.ContextOptions.LazyLoadingEnabled = true;
            OnContextCreated();
        }
        public NorthwindEntities(EntityConnection connection) : base(connection, "NorthwindEntities")
        {
            this.ContextOptions.LazyLoadingEnabled = true;
            OnContextCreated();
        }

        #endregion

        #region Partial Methods

        partial void OnContextCreated();

        #endregion

        #region ObjectSet Properties
        public ObjectSet<Category> Categories
        {
            get
            {
                if ((_Categories == null))
                {
                    _Categories = base.CreateObjectSet<Category>("Categories");
                }
                return _Categories;
            }
        }
        private ObjectSet<Category> _Categories;
        public ObjectSet<CustomerDemographic> CustomerDemographics
        {
            get
            {
                if ((_CustomerDemographics == null))
                {
                    _CustomerDemographics = base.CreateObjectSet<CustomerDemographic>("CustomerDemographics");
                }
                return _CustomerDemographics;
            }
        }
        private ObjectSet<CustomerDemographic> _CustomerDemographics;
        public ObjectSet<Customer> Customers
        {
            get
            {
                if ((_Customers == null))
                {
                    _Customers = base.CreateObjectSet<Customer>("Customers");
                }
                return _Customers;
            }
        }
        private ObjectSet<Customer> _Customers;
        public ObjectSet<Employee> Employees
        {
            get
            {
                if ((_Employees == null))
                {
                    _Employees = base.CreateObjectSet<Employee>("Employees");
                }
                return _Employees;
            }
        }
        private ObjectSet<Employee> _Employees;
        public ObjectSet<Order_Details> Order_Details
        {
            get
            {
                if ((_Order_Details == null))
                {
                    _Order_Details = base.CreateObjectSet<Order_Details>("Order_Details");
                }
                return _Order_Details;
            }
        }
        private ObjectSet<Order_Details> _Order_Details;
        public ObjectSet<Order> Orders
        {
            get
            {
                if ((_Orders == null))
                {
                    _Orders = base.CreateObjectSet<Order>("Orders");
                }
                return _Orders;
            }
        }
        private ObjectSet<Order> _Orders;
        public ObjectSet<Product> Products
        {
            get
            {
                if ((_Products == null))
                {
                    _Products = base.CreateObjectSet<Product>("Products");
                }
                return _Products;
            }
        }
        private ObjectSet<Product> _Products;
        public ObjectSet<Region> Regions
        {
            get
            {
                if ((_Regions == null))
                {
                    _Regions = base.CreateObjectSet<Region>("Regions");
                }
                return _Regions;
            }
        }
        private ObjectSet<Region> _Regions;
        public ObjectSet<Shipper> Shippers
        {
            get
            {
                if ((_Shippers == null))
                {
                    _Shippers = base.CreateObjectSet<Shipper>("Shippers");
                }
                return _Shippers;
            }
        }
        private ObjectSet<Shipper> _Shippers;
        public ObjectSet<Supplier> Suppliers
        {
            get
            {
                if ((_Suppliers == null))
                {
                    _Suppliers = base.CreateObjectSet<Supplier>("Suppliers");
                }
                return _Suppliers;
            }
        }
        private ObjectSet<Supplier> _Suppliers;
        public ObjectSet<Territory> Territories
        {
            get
            {
                if ((_Territories == null))
                {
                    _Territories = base.CreateObjectSet<Territory>("Territories");
                }
                return _Territories;
            }
        }
        private ObjectSet<Territory> _Territories;

        #endregion
        #region AddTo Methods
        public void AddToCategories(Category category)
        {
            base.AddObject("Categories", category);
        }
        public void AddToCustomerDemographics(CustomerDemographic customerDemographic)
        {
            base.AddObject("CustomerDemographics", customerDemographic);
        }
        public void AddToCustomers(Customer customer)
        {
            base.AddObject("Customers", customer);
        }
        public void AddToEmployees(Employee employee)
        {
            base.AddObject("Employees", employee);
        }
        public void AddToOrder_Details(Order_Details order_Details)
        {
            base.AddObject("Order_Details", order_Details);
        }
        public void AddToOrders(Order order)
        {
            base.AddObject("Orders", order);
        }
        public void AddToProducts(Product product)
        {
            base.AddObject("Products", product);
        }
        public void AddToRegions(Region region)
        {
            base.AddObject("Regions", region);
        }
        public void AddToShippers(Shipper shipper)
        {
            base.AddObject("Shippers", shipper);
        }
        public void AddToSuppliers(Supplier supplier)
        {
            base.AddObject("Suppliers", supplier);
        }
        public void AddToTerritories(Territory territory)
        {
            base.AddObject("Territories", territory);
        }

        #endregion
    }


    #endregion

    #region Entities
    [EdmEntityTypeAttribute(NamespaceName="NorthwindModel", Name="Category")]
    [Serializable()]
    [DataContractAttribute(IsReference=true)]
    public partial class Category : EntityObject
    {
        #region Factory Method
        public static Category CreateCategory(global::System.Int32 categoryID, global::System.String categoryName)
        {
            Category category = new Category();
            category.CategoryID = categoryID;
            category.CategoryName = categoryName;
            return category;
        }

        #endregion
        #region Primitive Properties
        [EdmScalarPropertyAttribute(EntityKeyProperty=true, IsNullable=false)]
        [DataMemberAttribute()]
        public global::System.Int32 CategoryID
        {
            get
            {
                return _CategoryID;
            }
            set
            {
                if (_CategoryID != value)
                {
                    OnCategoryIDChanging(value);
                    ReportPropertyChanging("CategoryID");
                    _CategoryID = StructuralObject.SetValidValue(value);
                    ReportPropertyChanged("CategoryID");
                    OnCategoryIDChanged();
                }
            }
        }
        private global::System.Int32 _CategoryID;
        partial void OnCategoryIDChanging(global::System.Int32 value);
        partial void OnCategoryIDChanged();
        [EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=false)]
        [DataMemberAttribute()]
        public global::System.String CategoryName
        {
            get
            {
                return _CategoryName;
            }
            set
            {
                OnCategoryNameChanging(value);
                ReportPropertyChanging("CategoryName");
                _CategoryName = StructuralObject.SetValidValue(value, false);
                ReportPropertyChanged("CategoryName");
                OnCategoryNameChanged();
            }
        }
        private global::System.String _CategoryName;
        partial void OnCategoryNameChanging(global::System.String value);
        partial void OnCategoryNameChanged();
        [EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=true)]
        [DataMemberAttribute()]
        public global::System.String Description
        {
            get
            {
                return _Description;
            }
            set
            {
                OnDescriptionChanging(value);
                ReportPropertyChanging("Description");
                _Description = StructuralObject.SetValidValue(value, true);
                ReportPropertyChanged("Description");
                OnDescriptionChanged();
            }
        }
        private global::System.String _Description;
        partial void OnDescriptionChanging(global::System.String value);
        partial void OnDescriptionChanged();
        [EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=true)]
        [DataMemberAttribute()]
        public global::System.Byte[] Picture
        {
            get
            {
                return StructuralObject.GetValidValue(_Picture);
            }
            set
            {
                OnPictureChanging(value);
                ReportPropertyChanging("Picture");
                _Picture = StructuralObject.SetValidValue(value, true);
                ReportPropertyChanged("Picture");
                OnPictureChanged();
            }
        }
        private global::System.Byte[] _Picture;
        partial void OnPictureChanging(global::System.Byte[] value);
        partial void OnPictureChanged();

        #endregion

        #region Navigation Properties
        [XmlIgnoreAttribute()]
        [SoapIgnoreAttribute()]
        [DataMemberAttribute()]
        [EdmRelationshipNavigationPropertyAttribute("NorthwindModel", "FK_Products_Categories", "Products")]
        public EntityCollection<Product> Products
        {
            get
            {
                return ((IEntityWithRelationships)this).RelationshipManager.GetRelatedCollection<Product>("NorthwindModel.FK_Products_Categories", "Products");
            }
            set
            {
                if ((value != null))
                {
                    ((IEntityWithRelationships)this).RelationshipManager.InitializeRelatedCollection<Product>("NorthwindModel.FK_Products_Categories", "Products", value);
                }
            }
        }

        #endregion
    }
    [EdmEntityTypeAttribute(NamespaceName="NorthwindModel", Name="Customer")]
    [Serializable()]
    [DataContractAttribute(IsReference=true)]
    public partial class Customer : EntityObject
    {
        #region Factory Method
        public static Customer CreateCustomer(global::System.String customerID, global::System.String companyName)
        {
            Customer customer = new Customer();
            customer.CustomerID = customerID;
            customer.CompanyName = companyName;
            return customer;
        }

        #endregion
        #region Primitive Properties
        [EdmScalarPropertyAttribute(EntityKeyProperty=true, IsNullable=false)]
        [DataMemberAttribute()]
        public global::System.String CustomerID
        {
            get
            {
                return _CustomerID;
            }
            set
            {
                if (_CustomerID != value)
                {
                    OnCustomerIDChanging(value);
                    ReportPropertyChanging("CustomerID");
                    _CustomerID = StructuralObject.SetValidValue(value, false);
                    ReportPropertyChanged("CustomerID");
                    OnCustomerIDChanged();
                }
            }
        }
        private global::System.String _CustomerID;
        partial void OnCustomerIDChanging(global::System.String value);
        partial void OnCustomerIDChanged();
        [EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=false)]
        [DataMemberAttribute()]
        public global::System.String CompanyName
        {
            get
            {
                return _CompanyName;
            }
            set
            {
                OnCompanyNameChanging(value);
                ReportPropertyChanging("CompanyName");
                _CompanyName = StructuralObject.SetValidValue(value, false);
                ReportPropertyChanged("CompanyName");
                OnCompanyNameChanged();
            }
        }
        private global::System.String _CompanyName;
        partial void OnCompanyNameChanging(global::System.String value);
        partial void OnCompanyNameChanged();
        [EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=true)]
        [DataMemberAttribute()]
        public global::System.String ContactName
        {
            get
            {
                return _ContactName;
            }
            set
            {
                OnContactNameChanging(value);
                ReportPropertyChanging("ContactName");
                _ContactName = StructuralObject.SetValidValue(value, true);
                ReportPropertyChanged("ContactName");
                OnContactNameChanged();
            }
        }
        private global::System.String _ContactName;
        partial void OnContactNameChanging(global::System.String value);
        partial void OnContactNameChanged();
        [EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=true)]
        [DataMemberAttribute()]
        public global::System.String ContactTitle
        {
            get
            {
                return _ContactTitle;
            }
            set
            {
                OnContactTitleChanging(value);
                ReportPropertyChanging("ContactTitle");
                _ContactTitle = StructuralObject.SetValidValue(value, true);
                ReportPropertyChanged("ContactTitle");
                OnContactTitleChanged();
            }
        }
        private global::System.String _ContactTitle;
        partial void OnContactTitleChanging(global::System.String value);
        partial void OnContactTitleChanged();
        [EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=true)]
        [DataMemberAttribute()]
        public global::System.String Address
        {
            get
            {
                return _Address;
            }
            set
            {
                OnAddressChanging(value);
                ReportPropertyChanging("Address");
                _Address = StructuralObject.SetValidValue(value, true);
                ReportPropertyChanged("Address");
                OnAddressChanged();
            }
        }
        private global::System.String _Address;
        partial void OnAddressChanging(global::System.String value);
        partial void OnAddressChanged();
        [EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=true)]
        [DataMemberAttribute()]
        public global::System.String City
        {
            get
            {
                return _City;
            }
            set
            {
                OnCityChanging(value);
                ReportPropertyChanging("City");
                _City = StructuralObject.SetValidValue(value, true);
                ReportPropertyChanged("City");
                OnCityChanged();
            }
        }
        private global::System.String _City;
        partial void OnCityChanging(global::System.String value);
        partial void OnCityChanged();
        [EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=true)]
        [DataMemberAttribute()]
        public global::System.String Region
        {
            get
            {
                return _Region;
            }
            set
            {
                OnRegionChanging(value);
                ReportPropertyChanging("Region");
                _Region = StructuralObject.SetValidValue(value, true);
                ReportPropertyChanged("Region");
                OnRegionChanged();
            }
        }
        private global::System.String _Region;
        partial void OnRegionChanging(global::System.String value);
        partial void OnRegionChanged();
        [EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=true)]
        [DataMemberAttribute()]
        public global::System.String PostalCode
        {
            get
            {
                return _PostalCode;
            }
            set
            {
                OnPostalCodeChanging(value);
                ReportPropertyChanging("PostalCode");
                _PostalCode = StructuralObject.SetValidValue(value, true);
                ReportPropertyChanged("PostalCode");
                OnPostalCodeChanged();
            }
        }
        private global::System.String _PostalCode;
        partial void OnPostalCodeChanging(global::System.String value);
        partial void OnPostalCodeChanged();
        [EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=true)]
        [DataMemberAttribute()]
        public global::System.String Country
        {
            get
            {
                return _Country;
            }
            set
            {
                OnCountryChanging(value);
                ReportPropertyChanging("Country");
                _Country = StructuralObject.SetValidValue(value, true);
                ReportPropertyChanged("Country");
                OnCountryChanged();
            }
        }
        private global::System.String _Country;
        partial void OnCountryChanging(global::System.String value);
        partial void OnCountryChanged();
        [EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=true)]
        [DataMemberAttribute()]
        public global::System.String Phone
        {
            get
            {
                return _Phone;
            }
            set
            {
                OnPhoneChanging(value);
                ReportPropertyChanging("Phone");
                _Phone = StructuralObject.SetValidValue(value, true);
                ReportPropertyChanged("Phone");
                OnPhoneChanged();
            }
        }
        private global::System.String _Phone;
        partial void OnPhoneChanging(global::System.String value);
        partial void OnPhoneChanged();
        [EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=true)]
        [DataMemberAttribute()]
        public global::System.String Fax
        {
            get
            {
                return _Fax;
            }
            set
            {
                OnFaxChanging(value);
                ReportPropertyChanging("Fax");
                _Fax = StructuralObject.SetValidValue(value, true);
                ReportPropertyChanged("Fax");
                OnFaxChanged();
            }
        }
        private global::System.String _Fax;
        partial void OnFaxChanging(global::System.String value);
        partial void OnFaxChanged();

        #endregion

        #region Navigation Properties
        [XmlIgnoreAttribute()]
        [SoapIgnoreAttribute()]
        [DataMemberAttribute()]
        [EdmRelationshipNavigationPropertyAttribute("NorthwindModel", "FK_Orders_Customers", "Orders")]
        public EntityCollection<Order> Orders
        {
            get
            {
                return ((IEntityWithRelationships)this).RelationshipManager.GetRelatedCollection<Order>("NorthwindModel.FK_Orders_Customers", "Orders");
            }
            set
            {
                if ((value != null))
                {
                    ((IEntityWithRelationships)this).RelationshipManager.InitializeRelatedCollection<Order>("NorthwindModel.FK_Orders_Customers", "Orders", value);
                }
            }
        }
        [XmlIgnoreAttribute()]
        [SoapIgnoreAttribute()]
        [DataMemberAttribute()]
        [EdmRelationshipNavigationPropertyAttribute("NorthwindModel", "CustomerCustomerDemo", "CustomerDemographics")]
        public EntityCollection<CustomerDemographic> CustomerDemographics
        {
            get
            {
                return ((IEntityWithRelationships)this).RelationshipManager.GetRelatedCollection<CustomerDemographic>("NorthwindModel.CustomerCustomerDemo", "CustomerDemographics");
            }
            set
            {
                if ((value != null))
                {
                    ((IEntityWithRelationships)this).RelationshipManager.InitializeRelatedCollection<CustomerDemographic>("NorthwindModel.CustomerCustomerDemo", "CustomerDemographics", value);
                }
            }
        }

        #endregion
    }
    [EdmEntityTypeAttribute(NamespaceName="NorthwindModel", Name="CustomerDemographic")]
    [Serializable()]
    [DataContractAttribute(IsReference=true)]
    public partial class CustomerDemographic : EntityObject
    {
        #region Factory Method
        public static CustomerDemographic CreateCustomerDemographic(global::System.String customerTypeID)
        {
            CustomerDemographic customerDemographic = new CustomerDemographic();
            customerDemographic.CustomerTypeID = customerTypeID;
            return customerDemographic;
        }

        #endregion
        #region Primitive Properties
        [EdmScalarPropertyAttribute(EntityKeyProperty=true, IsNullable=false)]
        [DataMemberAttribute()]
        public global::System.String CustomerTypeID
        {
            get
            {
                return _CustomerTypeID;
            }
            set
            {
                if (_CustomerTypeID != value)
                {
                    OnCustomerTypeIDChanging(value);
                    ReportPropertyChanging("CustomerTypeID");
                    _CustomerTypeID = StructuralObject.SetValidValue(value, false);
                    ReportPropertyChanged("CustomerTypeID");
                    OnCustomerTypeIDChanged();
                }
            }
        }
        private global::System.String _CustomerTypeID;
        partial void OnCustomerTypeIDChanging(global::System.String value);
        partial void OnCustomerTypeIDChanged();
        [EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=true)]
        [DataMemberAttribute()]
        public global::System.String CustomerDesc
        {
            get
            {
                return _CustomerDesc;
            }
            set
            {
                OnCustomerDescChanging(value);
                ReportPropertyChanging("CustomerDesc");
                _CustomerDesc = StructuralObject.SetValidValue(value, true);
                ReportPropertyChanged("CustomerDesc");
                OnCustomerDescChanged();
            }
        }
        private global::System.String _CustomerDesc;
        partial void OnCustomerDescChanging(global::System.String value);
        partial void OnCustomerDescChanged();

        #endregion

        #region Navigation Properties
        [XmlIgnoreAttribute()]
        [SoapIgnoreAttribute()]
        [DataMemberAttribute()]
        [EdmRelationshipNavigationPropertyAttribute("NorthwindModel", "CustomerCustomerDemo", "Customers")]
        public EntityCollection<Customer> Customers
        {
            get
            {
                return ((IEntityWithRelationships)this).RelationshipManager.GetRelatedCollection<Customer>("NorthwindModel.CustomerCustomerDemo", "Customers");
            }
            set
            {
                if ((value != null))
                {
                    ((IEntityWithRelationships)this).RelationshipManager.InitializeRelatedCollection<Customer>("NorthwindModel.CustomerCustomerDemo", "Customers", value);
                }
            }
        }

        #endregion
    }
    [EdmEntityTypeAttribute(NamespaceName="NorthwindModel", Name="Employee")]
    [Serializable()]
    [DataContractAttribute(IsReference=true)]
    public partial class Employee : EntityObject
    {
        #region Factory Method
        public static Employee CreateEmployee(global::System.Int32 employeeID, global::System.String lastName, global::System.String firstName)
        {
            Employee employee = new Employee();
            employee.EmployeeID = employeeID;
            employee.LastName = lastName;
            employee.FirstName = firstName;
            return employee;
        }

        #endregion
        #region Primitive Properties
        [EdmScalarPropertyAttribute(EntityKeyProperty=true, IsNullable=false)]
        [DataMemberAttribute()]
        public global::System.Int32 EmployeeID
        {
            get
            {
                return _EmployeeID;
            }
            set
            {
                if (_EmployeeID != value)
                {
                    OnEmployeeIDChanging(value);
                    ReportPropertyChanging("EmployeeID");
                    _EmployeeID = StructuralObject.SetValidValue(value);
                    ReportPropertyChanged("EmployeeID");
                    OnEmployeeIDChanged();
                }
            }
        }
        private global::System.Int32 _EmployeeID;
        partial void OnEmployeeIDChanging(global::System.Int32 value);
        partial void OnEmployeeIDChanged();
        [EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=false)]
        [DataMemberAttribute()]
        public global::System.String LastName
        {
            get
            {
                return _LastName;
            }
            set
            {
                OnLastNameChanging(value);
                ReportPropertyChanging("LastName");
                _LastName = StructuralObject.SetValidValue(value, false);
                ReportPropertyChanged("LastName");
                OnLastNameChanged();
            }
        }
        private global::System.String _LastName;
        partial void OnLastNameChanging(global::System.String value);
        partial void OnLastNameChanged();
        [EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=false)]
        [DataMemberAttribute()]
        public global::System.String FirstName
        {
            get
            {
                return _FirstName;
            }
            set
            {
                OnFirstNameChanging(value);
                ReportPropertyChanging("FirstName");
                _FirstName = StructuralObject.SetValidValue(value, false);
                ReportPropertyChanged("FirstName");
                OnFirstNameChanged();
            }
        }
        private global::System.String _FirstName;
        partial void OnFirstNameChanging(global::System.String value);
        partial void OnFirstNameChanged();
        [EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=true)]
        [DataMemberAttribute()]
        public global::System.String Title
        {
            get
            {
                return _Title;
            }
            set
            {
                OnTitleChanging(value);
                ReportPropertyChanging("Title");
                _Title = StructuralObject.SetValidValue(value, true);
                ReportPropertyChanged("Title");
                OnTitleChanged();
            }
        }
        private global::System.String _Title;
        partial void OnTitleChanging(global::System.String value);
        partial void OnTitleChanged();
        [EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=true)]
        [DataMemberAttribute()]
        public global::System.String TitleOfCourtesy
        {
            get
            {
                return _TitleOfCourtesy;
            }
            set
            {
                OnTitleOfCourtesyChanging(value);
                ReportPropertyChanging("TitleOfCourtesy");
                _TitleOfCourtesy = StructuralObject.SetValidValue(value, true);
                ReportPropertyChanged("TitleOfCourtesy");
                OnTitleOfCourtesyChanged();
            }
        }
        private global::System.String _TitleOfCourtesy;
        partial void OnTitleOfCourtesyChanging(global::System.String value);
        partial void OnTitleOfCourtesyChanged();
        [EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=true)]
        [DataMemberAttribute()]
        public Nullable<global::System.DateTime> BirthDate
        {
            get
            {
                return _BirthDate;
            }
            set
            {
                OnBirthDateChanging(value);
                ReportPropertyChanging("BirthDate");
                _BirthDate = StructuralObject.SetValidValue(value);
                ReportPropertyChanged("BirthDate");
                OnBirthDateChanged();
            }
        }
        private Nullable<global::System.DateTime> _BirthDate;
        partial void OnBirthDateChanging(Nullable<global::System.DateTime> value);
        partial void OnBirthDateChanged();
        [EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=true)]
        [DataMemberAttribute()]
        public Nullable<global::System.DateTime> HireDate
        {
            get
            {
                return _HireDate;
            }
            set
            {
                OnHireDateChanging(value);
                ReportPropertyChanging("HireDate");
                _HireDate = StructuralObject.SetValidValue(value);
                ReportPropertyChanged("HireDate");
                OnHireDateChanged();
            }
        }
        private Nullable<global::System.DateTime> _HireDate;
        partial void OnHireDateChanging(Nullable<global::System.DateTime> value);
        partial void OnHireDateChanged();
        [EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=true)]
        [DataMemberAttribute()]
        public global::System.String Address
        {
            get
            {
                return _Address;
            }
            set
            {
                OnAddressChanging(value);
                ReportPropertyChanging("Address");
                _Address = StructuralObject.SetValidValue(value, true);
                ReportPropertyChanged("Address");
                OnAddressChanged();
            }
        }
        private global::System.String _Address;
        partial void OnAddressChanging(global::System.String value);
        partial void OnAddressChanged();
        [EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=true)]
        [DataMemberAttribute()]
        public global::System.String City
        {
            get
            {
                return _City;
            }
            set
            {
                OnCityChanging(value);
                ReportPropertyChanging("City");
                _City = StructuralObject.SetValidValue(value, true);
                ReportPropertyChanged("City");
                OnCityChanged();
            }
        }
        private global::System.String _City;
        partial void OnCityChanging(global::System.String value);
        partial void OnCityChanged();
        [EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=true)]
        [DataMemberAttribute()]
        public global::System.String Region
        {
            get
            {
                return _Region;
            }
            set
            {
                OnRegionChanging(value);
                ReportPropertyChanging("Region");
                _Region = StructuralObject.SetValidValue(value, true);
                ReportPropertyChanged("Region");
                OnRegionChanged();
            }
        }
        private global::System.String _Region;
        partial void OnRegionChanging(global::System.String value);
        partial void OnRegionChanged();
        [EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=true)]
        [DataMemberAttribute()]
        public global::System.String PostalCode
        {
            get
            {
                return _PostalCode;
            }
            set
            {
                OnPostalCodeChanging(value);
                ReportPropertyChanging("PostalCode");
                _PostalCode = StructuralObject.SetValidValue(value, true);
                ReportPropertyChanged("PostalCode");
                OnPostalCodeChanged();
            }
        }
        private global::System.String _PostalCode;
        partial void OnPostalCodeChanging(global::System.String value);
        partial void OnPostalCodeChanged();
        [EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=true)]
        [DataMemberAttribute()]
        public global::System.String Country
        {
            get
            {
                return _Country;
            }
            set
            {
                OnCountryChanging(value);
                ReportPropertyChanging("Country");
                _Country = StructuralObject.SetValidValue(value, true);
                ReportPropertyChanged("Country");
                OnCountryChanged();
            }
        }
        private global::System.String _Country;
        partial void OnCountryChanging(global::System.String value);
        partial void OnCountryChanged();
        [EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=true)]
        [DataMemberAttribute()]
        public global::System.String HomePhone
        {
            get
            {
                return _HomePhone;
            }
            set
            {
                OnHomePhoneChanging(value);
                ReportPropertyChanging("HomePhone");
                _HomePhone = StructuralObject.SetValidValue(value, true);
                ReportPropertyChanged("HomePhone");
                OnHomePhoneChanged();
            }
        }
        private global::System.String _HomePhone;
        partial void OnHomePhoneChanging(global::System.String value);
        partial void OnHomePhoneChanged();
        [EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=true)]
        [DataMemberAttribute()]
        public global::System.String Extension
        {
            get
            {
                return _Extension;
            }
            set
            {
                OnExtensionChanging(value);
                ReportPropertyChanging("Extension");
                _Extension = StructuralObject.SetValidValue(value, true);
                ReportPropertyChanged("Extension");
                OnExtensionChanged();
            }
        }
        private global::System.String _Extension;
        partial void OnExtensionChanging(global::System.String value);
        partial void OnExtensionChanged();
        [EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=true)]
        [DataMemberAttribute()]
        public global::System.Byte[] Photo
        {
            get
            {
                return StructuralObject.GetValidValue(_Photo);
            }
            set
            {
                OnPhotoChanging(value);
                ReportPropertyChanging("Photo");
                _Photo = StructuralObject.SetValidValue(value, true);
                ReportPropertyChanged("Photo");
                OnPhotoChanged();
            }
        }
        private global::System.Byte[] _Photo;
        partial void OnPhotoChanging(global::System.Byte[] value);
        partial void OnPhotoChanged();
        [EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=true)]
        [DataMemberAttribute()]
        public global::System.String Notes
        {
            get
            {
                return _Notes;
            }
            set
            {
                OnNotesChanging(value);
                ReportPropertyChanging("Notes");
                _Notes = StructuralObject.SetValidValue(value, true);
                ReportPropertyChanged("Notes");
                OnNotesChanged();
            }
        }
        private global::System.String _Notes;
        partial void OnNotesChanging(global::System.String value);
        partial void OnNotesChanged();
        [EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=true)]
        [DataMemberAttribute()]
        public Nullable<global::System.Int32> ReportsTo
        {
            get
            {
                return _ReportsTo;
            }
            set
            {
                OnReportsToChanging(value);
                ReportPropertyChanging("ReportsTo");
                _ReportsTo = StructuralObject.SetValidValue(value);
                ReportPropertyChanged("ReportsTo");
                OnReportsToChanged();
            }
        }
        private Nullable<global::System.Int32> _ReportsTo;
        partial void OnReportsToChanging(Nullable<global::System.Int32> value);
        partial void OnReportsToChanged();
        [EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=true)]
        [DataMemberAttribute()]
        public global::System.String PhotoPath
        {
            get
            {
                return _PhotoPath;
            }
            set
            {
                OnPhotoPathChanging(value);
                ReportPropertyChanging("PhotoPath");
                _PhotoPath = StructuralObject.SetValidValue(value, true);
                ReportPropertyChanged("PhotoPath");
                OnPhotoPathChanged();
            }
        }
        private global::System.String _PhotoPath;
        partial void OnPhotoPathChanging(global::System.String value);
        partial void OnPhotoPathChanged();

        #endregion

        #region Navigation Properties
        [XmlIgnoreAttribute()]
        [SoapIgnoreAttribute()]
        [DataMemberAttribute()]
        [EdmRelationshipNavigationPropertyAttribute("NorthwindModel", "FK_Employees_Employees", "Employees1")]
        public EntityCollection<Employee> Employees1
        {
            get
            {
                return ((IEntityWithRelationships)this).RelationshipManager.GetRelatedCollection<Employee>("NorthwindModel.FK_Employees_Employees", "Employees1");
            }
            set
            {
                if ((value != null))
                {
                    ((IEntityWithRelationships)this).RelationshipManager.InitializeRelatedCollection<Employee>("NorthwindModel.FK_Employees_Employees", "Employees1", value);
                }
            }
        }
        [XmlIgnoreAttribute()]
        [SoapIgnoreAttribute()]
        [DataMemberAttribute()]
        [EdmRelationshipNavigationPropertyAttribute("NorthwindModel", "FK_Employees_Employees", "Employees")]
        public Employee Employee1
        {
            get
            {
                return ((IEntityWithRelationships)this).RelationshipManager.GetRelatedReference<Employee>("NorthwindModel.FK_Employees_Employees", "Employees").Value;
            }
            set
            {
                ((IEntityWithRelationships)this).RelationshipManager.GetRelatedReference<Employee>("NorthwindModel.FK_Employees_Employees", "Employees").Value = value;
            }
        }
        [BrowsableAttribute(false)]
        [DataMemberAttribute()]
        public EntityReference<Employee> Employee1Reference
        {
            get
            {
                return ((IEntityWithRelationships)this).RelationshipManager.GetRelatedReference<Employee>("NorthwindModel.FK_Employees_Employees", "Employees");
            }
            set
            {
                if ((value != null))
                {
                    ((IEntityWithRelationships)this).RelationshipManager.InitializeRelatedReference<Employee>("NorthwindModel.FK_Employees_Employees", "Employees", value);
                }
            }
        }
        [XmlIgnoreAttribute()]
        [SoapIgnoreAttribute()]
        [DataMemberAttribute()]
        [EdmRelationshipNavigationPropertyAttribute("NorthwindModel", "FK_Orders_Employees", "Orders")]
        public EntityCollection<Order> Orders
        {
            get
            {
                return ((IEntityWithRelationships)this).RelationshipManager.GetRelatedCollection<Order>("NorthwindModel.FK_Orders_Employees", "Orders");
            }
            set
            {
                if ((value != null))
                {
                    ((IEntityWithRelationships)this).RelationshipManager.InitializeRelatedCollection<Order>("NorthwindModel.FK_Orders_Employees", "Orders", value);
                }
            }
        }
        [XmlIgnoreAttribute()]
        [SoapIgnoreAttribute()]
        [DataMemberAttribute()]
        [EdmRelationshipNavigationPropertyAttribute("NorthwindModel", "EmployeeTerritories", "Territories")]
        public EntityCollection<Territory> Territories
        {
            get
            {
                return ((IEntityWithRelationships)this).RelationshipManager.GetRelatedCollection<Territory>("NorthwindModel.EmployeeTerritories", "Territories");
            }
            set
            {
                if ((value != null))
                {
                    ((IEntityWithRelationships)this).RelationshipManager.InitializeRelatedCollection<Territory>("NorthwindModel.EmployeeTerritories", "Territories", value);
                }
            }
        }

        #endregion
    }
    [EdmEntityTypeAttribute(NamespaceName="NorthwindModel", Name="Order")]
    [Serializable()]
    [DataContractAttribute(IsReference=true)]
    public partial class Order : EntityObject
    {
        #region Factory Method
        public static Order CreateOrder(global::System.Int32 orderID)
        {
            Order order = new Order();
            order.OrderID = orderID;
            return order;
        }

        #endregion
        #region Primitive Properties
        [EdmScalarPropertyAttribute(EntityKeyProperty=true, IsNullable=false)]
        [DataMemberAttribute()]
        public global::System.Int32 OrderID
        {
            get
            {
                return _OrderID;
            }
            set
            {
                if (_OrderID != value)
                {
                    OnOrderIDChanging(value);
                    ReportPropertyChanging("OrderID");
                    _OrderID = StructuralObject.SetValidValue(value);
                    ReportPropertyChanged("OrderID");
                    OnOrderIDChanged();
                }
            }
        }
        private global::System.Int32 _OrderID;
        partial void OnOrderIDChanging(global::System.Int32 value);
        partial void OnOrderIDChanged();
        [EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=true)]
        [DataMemberAttribute()]
        public global::System.String CustomerID
        {
            get
            {
                return _CustomerID;
            }
            set
            {
                OnCustomerIDChanging(value);
                ReportPropertyChanging("CustomerID");
                _CustomerID = StructuralObject.SetValidValue(value, true);
                ReportPropertyChanged("CustomerID");
                OnCustomerIDChanged();
            }
        }
        private global::System.String _CustomerID;
        partial void OnCustomerIDChanging(global::System.String value);
        partial void OnCustomerIDChanged();
        [EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=true)]
        [DataMemberAttribute()]
        public Nullable<global::System.Int32> EmployeeID
        {
            get
            {
                return _EmployeeID;
            }
            set
            {
                OnEmployeeIDChanging(value);
                ReportPropertyChanging("EmployeeID");
                _EmployeeID = StructuralObject.SetValidValue(value);
                ReportPropertyChanged("EmployeeID");
                OnEmployeeIDChanged();
            }
        }
        private Nullable<global::System.Int32> _EmployeeID;
        partial void OnEmployeeIDChanging(Nullable<global::System.Int32> value);
        partial void OnEmployeeIDChanged();
        [EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=true)]
        [DataMemberAttribute()]
        public Nullable<global::System.DateTime> OrderDate
        {
            get
            {
                return _OrderDate;
            }
            set
            {
                OnOrderDateChanging(value);
                ReportPropertyChanging("OrderDate");
                _OrderDate = StructuralObject.SetValidValue(value);
                ReportPropertyChanged("OrderDate");
                OnOrderDateChanged();
            }
        }
        private Nullable<global::System.DateTime> _OrderDate;
        partial void OnOrderDateChanging(Nullable<global::System.DateTime> value);
        partial void OnOrderDateChanged();
        [EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=true)]
        [DataMemberAttribute()]
        public Nullable<global::System.DateTime> RequiredDate
        {
            get
            {
                return _RequiredDate;
            }
            set
            {
                OnRequiredDateChanging(value);
                ReportPropertyChanging("RequiredDate");
                _RequiredDate = StructuralObject.SetValidValue(value);
                ReportPropertyChanged("RequiredDate");
                OnRequiredDateChanged();
            }
        }
        private Nullable<global::System.DateTime> _RequiredDate;
        partial void OnRequiredDateChanging(Nullable<global::System.DateTime> value);
        partial void OnRequiredDateChanged();
        [EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=true)]
        [DataMemberAttribute()]
        public Nullable<global::System.DateTime> ShippedDate
        {
            get
            {
                return _ShippedDate;
            }
            set
            {
                OnShippedDateChanging(value);
                ReportPropertyChanging("ShippedDate");
                _ShippedDate = StructuralObject.SetValidValue(value);
                ReportPropertyChanged("ShippedDate");
                OnShippedDateChanged();
            }
        }
        private Nullable<global::System.DateTime> _ShippedDate;
        partial void OnShippedDateChanging(Nullable<global::System.DateTime> value);
        partial void OnShippedDateChanged();
        [EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=true)]
        [DataMemberAttribute()]
        public Nullable<global::System.Int32> ShipVia
        {
            get
            {
                return _ShipVia;
            }
            set
            {
                OnShipViaChanging(value);
                ReportPropertyChanging("ShipVia");
                _ShipVia = StructuralObject.SetValidValue(value);
                ReportPropertyChanged("ShipVia");
                OnShipViaChanged();
            }
        }
        private Nullable<global::System.Int32> _ShipVia;
        partial void OnShipViaChanging(Nullable<global::System.Int32> value);
        partial void OnShipViaChanged();
        [EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=true)]
        [DataMemberAttribute()]
        public Nullable<global::System.Decimal> Freight
        {
            get
            {
                return _Freight;
            }
            set
            {
                OnFreightChanging(value);
                ReportPropertyChanging("Freight");
                _Freight = StructuralObject.SetValidValue(value);
                ReportPropertyChanged("Freight");
                OnFreightChanged();
            }
        }
        private Nullable<global::System.Decimal> _Freight;
        partial void OnFreightChanging(Nullable<global::System.Decimal> value);
        partial void OnFreightChanged();
        [EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=true)]
        [DataMemberAttribute()]
        public global::System.String ShipName
        {
            get
            {
                return _ShipName;
            }
            set
            {
                OnShipNameChanging(value);
                ReportPropertyChanging("ShipName");
                _ShipName = StructuralObject.SetValidValue(value, true);
                ReportPropertyChanged("ShipName");
                OnShipNameChanged();
            }
        }
        private global::System.String _ShipName;
        partial void OnShipNameChanging(global::System.String value);
        partial void OnShipNameChanged();
        [EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=true)]
        [DataMemberAttribute()]
        public global::System.String ShipAddress
        {
            get
            {
                return _ShipAddress;
            }
            set
            {
                OnShipAddressChanging(value);
                ReportPropertyChanging("ShipAddress");
                _ShipAddress = StructuralObject.SetValidValue(value, true);
                ReportPropertyChanged("ShipAddress");
                OnShipAddressChanged();
            }
        }
        private global::System.String _ShipAddress;
        partial void OnShipAddressChanging(global::System.String value);
        partial void OnShipAddressChanged();
        [EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=true)]
        [DataMemberAttribute()]
        public global::System.String ShipCity
        {
            get
            {
                return _ShipCity;
            }
            set
            {
                OnShipCityChanging(value);
                ReportPropertyChanging("ShipCity");
                _ShipCity = StructuralObject.SetValidValue(value, true);
                ReportPropertyChanged("ShipCity");
                OnShipCityChanged();
            }
        }
        private global::System.String _ShipCity;
        partial void OnShipCityChanging(global::System.String value);
        partial void OnShipCityChanged();
        [EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=true)]
        [DataMemberAttribute()]
        public global::System.String ShipRegion
        {
            get
            {
                return _ShipRegion;
            }
            set
            {
                OnShipRegionChanging(value);
                ReportPropertyChanging("ShipRegion");
                _ShipRegion = StructuralObject.SetValidValue(value, true);
                ReportPropertyChanged("ShipRegion");
                OnShipRegionChanged();
            }
        }
        private global::System.String _ShipRegion;
        partial void OnShipRegionChanging(global::System.String value);
        partial void OnShipRegionChanged();
        [EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=true)]
        [DataMemberAttribute()]
        public global::System.String ShipPostalCode
        {
            get
            {
                return _ShipPostalCode;
            }
            set
            {
                OnShipPostalCodeChanging(value);
                ReportPropertyChanging("ShipPostalCode");
                _ShipPostalCode = StructuralObject.SetValidValue(value, true);
                ReportPropertyChanged("ShipPostalCode");
                OnShipPostalCodeChanged();
            }
        }
        private global::System.String _ShipPostalCode;
        partial void OnShipPostalCodeChanging(global::System.String value);
        partial void OnShipPostalCodeChanged();
        [EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=true)]
        [DataMemberAttribute()]
        public global::System.String ShipCountry
        {
            get
            {
                return _ShipCountry;
            }
            set
            {
                OnShipCountryChanging(value);
                ReportPropertyChanging("ShipCountry");
                _ShipCountry = StructuralObject.SetValidValue(value, true);
                ReportPropertyChanged("ShipCountry");
                OnShipCountryChanged();
            }
        }
        private global::System.String _ShipCountry;
        partial void OnShipCountryChanging(global::System.String value);
        partial void OnShipCountryChanged();

        #endregion

        #region Navigation Properties
        [XmlIgnoreAttribute()]
        [SoapIgnoreAttribute()]
        [DataMemberAttribute()]
        [EdmRelationshipNavigationPropertyAttribute("NorthwindModel", "FK_Orders_Customers", "Customers")]
        public Customer Customer
        {
            get
            {
                return ((IEntityWithRelationships)this).RelationshipManager.GetRelatedReference<Customer>("NorthwindModel.FK_Orders_Customers", "Customers").Value;
            }
            set
            {
                ((IEntityWithRelationships)this).RelationshipManager.GetRelatedReference<Customer>("NorthwindModel.FK_Orders_Customers", "Customers").Value = value;
            }
        }
        [BrowsableAttribute(false)]
        [DataMemberAttribute()]
        public EntityReference<Customer> CustomerReference
        {
            get
            {
                return ((IEntityWithRelationships)this).RelationshipManager.GetRelatedReference<Customer>("NorthwindModel.FK_Orders_Customers", "Customers");
            }
            set
            {
                if ((value != null))
                {
                    ((IEntityWithRelationships)this).RelationshipManager.InitializeRelatedReference<Customer>("NorthwindModel.FK_Orders_Customers", "Customers", value);
                }
            }
        }
        [XmlIgnoreAttribute()]
        [SoapIgnoreAttribute()]
        [DataMemberAttribute()]
        [EdmRelationshipNavigationPropertyAttribute("NorthwindModel", "FK_Orders_Employees", "Employees")]
        public Employee Employee
        {
            get
            {
                return ((IEntityWithRelationships)this).RelationshipManager.GetRelatedReference<Employee>("NorthwindModel.FK_Orders_Employees", "Employees").Value;
            }
            set
            {
                ((IEntityWithRelationships)this).RelationshipManager.GetRelatedReference<Employee>("NorthwindModel.FK_Orders_Employees", "Employees").Value = value;
            }
        }
        [BrowsableAttribute(false)]
        [DataMemberAttribute()]
        public EntityReference<Employee> EmployeeReference
        {
            get
            {
                return ((IEntityWithRelationships)this).RelationshipManager.GetRelatedReference<Employee>("NorthwindModel.FK_Orders_Employees", "Employees");
            }
            set
            {
                if ((value != null))
                {
                    ((IEntityWithRelationships)this).RelationshipManager.InitializeRelatedReference<Employee>("NorthwindModel.FK_Orders_Employees", "Employees", value);
                }
            }
        }
        [XmlIgnoreAttribute()]
        [SoapIgnoreAttribute()]
        [DataMemberAttribute()]
        [EdmRelationshipNavigationPropertyAttribute("NorthwindModel", "FK_Order_Details_Orders", "Order_Details")]
        public EntityCollection<Order_Details> Order_Details
        {
            get
            {
                return ((IEntityWithRelationships)this).RelationshipManager.GetRelatedCollection<Order_Details>("NorthwindModel.FK_Order_Details_Orders", "Order_Details");
            }
            set
            {
                if ((value != null))
                {
                    ((IEntityWithRelationships)this).RelationshipManager.InitializeRelatedCollection<Order_Details>("NorthwindModel.FK_Order_Details_Orders", "Order_Details", value);
                }
            }
        }
        [XmlIgnoreAttribute()]
        [SoapIgnoreAttribute()]
        [DataMemberAttribute()]
        [EdmRelationshipNavigationPropertyAttribute("NorthwindModel", "FK_Orders_Shippers", "Shippers")]
        public Shipper Shipper
        {
            get
            {
                return ((IEntityWithRelationships)this).RelationshipManager.GetRelatedReference<Shipper>("NorthwindModel.FK_Orders_Shippers", "Shippers").Value;
            }
            set
            {
                ((IEntityWithRelationships)this).RelationshipManager.GetRelatedReference<Shipper>("NorthwindModel.FK_Orders_Shippers", "Shippers").Value = value;
            }
        }
        [BrowsableAttribute(false)]
        [DataMemberAttribute()]
        public EntityReference<Shipper> ShipperReference
        {
            get
            {
                return ((IEntityWithRelationships)this).RelationshipManager.GetRelatedReference<Shipper>("NorthwindModel.FK_Orders_Shippers", "Shippers");
            }
            set
            {
                if ((value != null))
                {
                    ((IEntityWithRelationships)this).RelationshipManager.InitializeRelatedReference<Shipper>("NorthwindModel.FK_Orders_Shippers", "Shippers", value);
                }
            }
        }

        #endregion
    }
    [EdmEntityTypeAttribute(NamespaceName="NorthwindModel", Name="Order_Details")]
    [Serializable()]
    [DataContractAttribute(IsReference=true)]
    public partial class Order_Details : EntityObject
    {
        #region Factory Method
        public static Order_Details CreateOrder_Details(global::System.Int32 orderID, global::System.Int32 productID, global::System.Decimal unitPrice, global::System.Int16 quantity, global::System.Single discount)
        {
            Order_Details order_Details = new Order_Details();
            order_Details.OrderID = orderID;
            order_Details.ProductID = productID;
            order_Details.UnitPrice = unitPrice;
            order_Details.Quantity = quantity;
            order_Details.Discount = discount;
            return order_Details;
        }

        #endregion
        #region Primitive Properties
        [EdmScalarPropertyAttribute(EntityKeyProperty=true, IsNullable=false)]
        [DataMemberAttribute()]
        public global::System.Int32 OrderID
        {
            get
            {
                return _OrderID;
            }
            set
            {
                if (_OrderID != value)
                {
                    OnOrderIDChanging(value);
                    ReportPropertyChanging("OrderID");
                    _OrderID = StructuralObject.SetValidValue(value);
                    ReportPropertyChanged("OrderID");
                    OnOrderIDChanged();
                }
            }
        }
        private global::System.Int32 _OrderID;
        partial void OnOrderIDChanging(global::System.Int32 value);
        partial void OnOrderIDChanged();
        [EdmScalarPropertyAttribute(EntityKeyProperty=true, IsNullable=false)]
        [DataMemberAttribute()]
        public global::System.Int32 ProductID
        {
            get
            {
                return _ProductID;
            }
            set
            {
                if (_ProductID != value)
                {
                    OnProductIDChanging(value);
                    ReportPropertyChanging("ProductID");
                    _ProductID = StructuralObject.SetValidValue(value);
                    ReportPropertyChanged("ProductID");
                    OnProductIDChanged();
                }
            }
        }
        private global::System.Int32 _ProductID;
        partial void OnProductIDChanging(global::System.Int32 value);
        partial void OnProductIDChanged();
        [EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=false)]
        [DataMemberAttribute()]
        public global::System.Decimal UnitPrice
        {
            get
            {
                return _UnitPrice;
            }
            set
            {
                OnUnitPriceChanging(value);
                ReportPropertyChanging("UnitPrice");
                _UnitPrice = StructuralObject.SetValidValue(value);
                ReportPropertyChanged("UnitPrice");
                OnUnitPriceChanged();
            }
        }
        private global::System.Decimal _UnitPrice;
        partial void OnUnitPriceChanging(global::System.Decimal value);
        partial void OnUnitPriceChanged();
        [EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=false)]
        [DataMemberAttribute()]
        public global::System.Int16 Quantity
        {
            get
            {
                return _Quantity;
            }
            set
            {
                OnQuantityChanging(value);
                ReportPropertyChanging("Quantity");
                _Quantity = StructuralObject.SetValidValue(value);
                ReportPropertyChanged("Quantity");
                OnQuantityChanged();
            }
        }
        private global::System.Int16 _Quantity;
        partial void OnQuantityChanging(global::System.Int16 value);
        partial void OnQuantityChanged();
        [EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=false)]
        [DataMemberAttribute()]
        public global::System.Single Discount
        {
            get
            {
                return _Discount;
            }
            set
            {
                OnDiscountChanging(value);
                ReportPropertyChanging("Discount");
                _Discount = StructuralObject.SetValidValue(value);
                ReportPropertyChanged("Discount");
                OnDiscountChanged();
            }
        }
        private global::System.Single _Discount;
        partial void OnDiscountChanging(global::System.Single value);
        partial void OnDiscountChanged();

        #endregion

        #region Navigation Properties
        [XmlIgnoreAttribute()]
        [SoapIgnoreAttribute()]
        [DataMemberAttribute()]
        [EdmRelationshipNavigationPropertyAttribute("NorthwindModel", "FK_Order_Details_Orders", "Orders")]
        public Order Order
        {
            get
            {
                return ((IEntityWithRelationships)this).RelationshipManager.GetRelatedReference<Order>("NorthwindModel.FK_Order_Details_Orders", "Orders").Value;
            }
            set
            {
                ((IEntityWithRelationships)this).RelationshipManager.GetRelatedReference<Order>("NorthwindModel.FK_Order_Details_Orders", "Orders").Value = value;
            }
        }
        [BrowsableAttribute(false)]
        [DataMemberAttribute()]
        public EntityReference<Order> OrderReference
        {
            get
            {
                return ((IEntityWithRelationships)this).RelationshipManager.GetRelatedReference<Order>("NorthwindModel.FK_Order_Details_Orders", "Orders");
            }
            set
            {
                if ((value != null))
                {
                    ((IEntityWithRelationships)this).RelationshipManager.InitializeRelatedReference<Order>("NorthwindModel.FK_Order_Details_Orders", "Orders", value);
                }
            }
        }
        [XmlIgnoreAttribute()]
        [SoapIgnoreAttribute()]
        [DataMemberAttribute()]
        [EdmRelationshipNavigationPropertyAttribute("NorthwindModel", "FK_Order_Details_Products", "Products")]
        public Product Product
        {
            get
            {
                return ((IEntityWithRelationships)this).RelationshipManager.GetRelatedReference<Product>("NorthwindModel.FK_Order_Details_Products", "Products").Value;
            }
            set
            {
                ((IEntityWithRelationships)this).RelationshipManager.GetRelatedReference<Product>("NorthwindModel.FK_Order_Details_Products", "Products").Value = value;
            }
        }
        [BrowsableAttribute(false)]
        [DataMemberAttribute()]
        public EntityReference<Product> ProductReference
        {
            get
            {
                return ((IEntityWithRelationships)this).RelationshipManager.GetRelatedReference<Product>("NorthwindModel.FK_Order_Details_Products", "Products");
            }
            set
            {
                if ((value != null))
                {
                    ((IEntityWithRelationships)this).RelationshipManager.InitializeRelatedReference<Product>("NorthwindModel.FK_Order_Details_Products", "Products", value);
                }
            }
        }

        #endregion
    }
    [EdmEntityTypeAttribute(NamespaceName="NorthwindModel", Name="Product")]
    [Serializable()]
    [DataContractAttribute(IsReference=true)]
    public partial class Product : EntityObject
    {
        #region Factory Method
        public static Product CreateProduct(global::System.Int32 productID, global::System.String productName, global::System.Boolean discontinued)
        {
            Product product = new Product();
            product.ProductID = productID;
            product.ProductName = productName;
            product.Discontinued = discontinued;
            return product;
        }

        #endregion
        #region Primitive Properties
        [EdmScalarPropertyAttribute(EntityKeyProperty=true, IsNullable=false)]
        [DataMemberAttribute()]
        public global::System.Int32 ProductID
        {
            get
            {
                return _ProductID;
            }
            set
            {
                if (_ProductID != value)
                {
                    OnProductIDChanging(value);
                    ReportPropertyChanging("ProductID");
                    _ProductID = StructuralObject.SetValidValue(value);
                    ReportPropertyChanged("ProductID");
                    OnProductIDChanged();
                }
            }
        }
        private global::System.Int32 _ProductID;
        partial void OnProductIDChanging(global::System.Int32 value);
        partial void OnProductIDChanged();
        [EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=false)]
        [DataMemberAttribute()]
        public global::System.String ProductName
        {
            get
            {
                return _ProductName;
            }
            set
            {
                OnProductNameChanging(value);
                ReportPropertyChanging("ProductName");
                _ProductName = StructuralObject.SetValidValue(value, false);
                ReportPropertyChanged("ProductName");
                OnProductNameChanged();
            }
        }
        private global::System.String _ProductName;
        partial void OnProductNameChanging(global::System.String value);
        partial void OnProductNameChanged();
        [EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=true)]
        [DataMemberAttribute()]
        public Nullable<global::System.Int32> SupplierID
        {
            get
            {
                return _SupplierID;
            }
            set
            {
                OnSupplierIDChanging(value);
                ReportPropertyChanging("SupplierID");
                _SupplierID = StructuralObject.SetValidValue(value);
                ReportPropertyChanged("SupplierID");
                OnSupplierIDChanged();
            }
        }
        private Nullable<global::System.Int32> _SupplierID;
        partial void OnSupplierIDChanging(Nullable<global::System.Int32> value);
        partial void OnSupplierIDChanged();
        [EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=true)]
        [DataMemberAttribute()]
        public Nullable<global::System.Int32> CategoryID
        {
            get
            {
                return _CategoryID;
            }
            set
            {
                OnCategoryIDChanging(value);
                ReportPropertyChanging("CategoryID");
                _CategoryID = StructuralObject.SetValidValue(value);
                ReportPropertyChanged("CategoryID");
                OnCategoryIDChanged();
            }
        }
        private Nullable<global::System.Int32> _CategoryID;
        partial void OnCategoryIDChanging(Nullable<global::System.Int32> value);
        partial void OnCategoryIDChanged();
        [EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=true)]
        [DataMemberAttribute()]
        public global::System.String QuantityPerUnit
        {
            get
            {
                return _QuantityPerUnit;
            }
            set
            {
                OnQuantityPerUnitChanging(value);
                ReportPropertyChanging("QuantityPerUnit");
                _QuantityPerUnit = StructuralObject.SetValidValue(value, true);
                ReportPropertyChanged("QuantityPerUnit");
                OnQuantityPerUnitChanged();
            }
        }
        private global::System.String _QuantityPerUnit;
        partial void OnQuantityPerUnitChanging(global::System.String value);
        partial void OnQuantityPerUnitChanged();
        [EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=true)]
        [DataMemberAttribute()]
        public Nullable<global::System.Decimal> UnitPrice
        {
            get
            {
                return _UnitPrice;
            }
            set
            {
                OnUnitPriceChanging(value);
                ReportPropertyChanging("UnitPrice");
                _UnitPrice = StructuralObject.SetValidValue(value);
                ReportPropertyChanged("UnitPrice");
                OnUnitPriceChanged();
            }
        }
        private Nullable<global::System.Decimal> _UnitPrice;
        partial void OnUnitPriceChanging(Nullable<global::System.Decimal> value);
        partial void OnUnitPriceChanged();
        [EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=true)]
        [DataMemberAttribute()]
        public Nullable<global::System.Int16> UnitsInStock
        {
            get
            {
                return _UnitsInStock;
            }
            set
            {
                OnUnitsInStockChanging(value);
                ReportPropertyChanging("UnitsInStock");
                _UnitsInStock = StructuralObject.SetValidValue(value);
                ReportPropertyChanged("UnitsInStock");
                OnUnitsInStockChanged();
            }
        }
        private Nullable<global::System.Int16> _UnitsInStock;
        partial void OnUnitsInStockChanging(Nullable<global::System.Int16> value);
        partial void OnUnitsInStockChanged();
        [EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=true)]
        [DataMemberAttribute()]
        public Nullable<global::System.Int16> UnitsOnOrder
        {
            get
            {
                return _UnitsOnOrder;
            }
            set
            {
                OnUnitsOnOrderChanging(value);
                ReportPropertyChanging("UnitsOnOrder");
                _UnitsOnOrder = StructuralObject.SetValidValue(value);
                ReportPropertyChanged("UnitsOnOrder");
                OnUnitsOnOrderChanged();
            }
        }
        private Nullable<global::System.Int16> _UnitsOnOrder;
        partial void OnUnitsOnOrderChanging(Nullable<global::System.Int16> value);
        partial void OnUnitsOnOrderChanged();
        [EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=true)]
        [DataMemberAttribute()]
        public Nullable<global::System.Int16> ReorderLevel
        {
            get
            {
                return _ReorderLevel;
            }
            set
            {
                OnReorderLevelChanging(value);
                ReportPropertyChanging("ReorderLevel");
                _ReorderLevel = StructuralObject.SetValidValue(value);
                ReportPropertyChanged("ReorderLevel");
                OnReorderLevelChanged();
            }
        }
        private Nullable<global::System.Int16> _ReorderLevel;
        partial void OnReorderLevelChanging(Nullable<global::System.Int16> value);
        partial void OnReorderLevelChanged();
        [EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=false)]
        [DataMemberAttribute()]
        public global::System.Boolean Discontinued
        {
            get
            {
                return _Discontinued;
            }
            set
            {
                OnDiscontinuedChanging(value);
                ReportPropertyChanging("Discontinued");
                _Discontinued = StructuralObject.SetValidValue(value);
                ReportPropertyChanged("Discontinued");
                OnDiscontinuedChanged();
            }
        }
        private global::System.Boolean _Discontinued;
        partial void OnDiscontinuedChanging(global::System.Boolean value);
        partial void OnDiscontinuedChanged();

        #endregion

        #region Navigation Properties
        [XmlIgnoreAttribute()]
        [SoapIgnoreAttribute()]
        [DataMemberAttribute()]
        [EdmRelationshipNavigationPropertyAttribute("NorthwindModel", "FK_Products_Categories", "Categories")]
        public Category Category
        {
            get
            {
                return ((IEntityWithRelationships)this).RelationshipManager.GetRelatedReference<Category>("NorthwindModel.FK_Products_Categories", "Categories").Value;
            }
            set
            {
                ((IEntityWithRelationships)this).RelationshipManager.GetRelatedReference<Category>("NorthwindModel.FK_Products_Categories", "Categories").Value = value;
            }
        }
        [BrowsableAttribute(false)]
        [DataMemberAttribute()]
        public EntityReference<Category> CategoryReference
        {
            get
            {
                return ((IEntityWithRelationships)this).RelationshipManager.GetRelatedReference<Category>("NorthwindModel.FK_Products_Categories", "Categories");
            }
            set
            {
                if ((value != null))
                {
                    ((IEntityWithRelationships)this).RelationshipManager.InitializeRelatedReference<Category>("NorthwindModel.FK_Products_Categories", "Categories", value);
                }
            }
        }
        [XmlIgnoreAttribute()]
        [SoapIgnoreAttribute()]
        [DataMemberAttribute()]
        [EdmRelationshipNavigationPropertyAttribute("NorthwindModel", "FK_Order_Details_Products", "Order_Details")]
        public EntityCollection<Order_Details> Order_Details
        {
            get
            {
                return ((IEntityWithRelationships)this).RelationshipManager.GetRelatedCollection<Order_Details>("NorthwindModel.FK_Order_Details_Products", "Order_Details");
            }
            set
            {
                if ((value != null))
                {
                    ((IEntityWithRelationships)this).RelationshipManager.InitializeRelatedCollection<Order_Details>("NorthwindModel.FK_Order_Details_Products", "Order_Details", value);
                }
            }
        }
        [XmlIgnoreAttribute()]
        [SoapIgnoreAttribute()]
        [DataMemberAttribute()]
        [EdmRelationshipNavigationPropertyAttribute("NorthwindModel", "FK_Products_Suppliers", "Suppliers")]
        public Supplier Supplier
        {
            get
            {
                return ((IEntityWithRelationships)this).RelationshipManager.GetRelatedReference<Supplier>("NorthwindModel.FK_Products_Suppliers", "Suppliers").Value;
            }
            set
            {
                ((IEntityWithRelationships)this).RelationshipManager.GetRelatedReference<Supplier>("NorthwindModel.FK_Products_Suppliers", "Suppliers").Value = value;
            }
        }
        [BrowsableAttribute(false)]
        [DataMemberAttribute()]
        public EntityReference<Supplier> SupplierReference
        {
            get
            {
                return ((IEntityWithRelationships)this).RelationshipManager.GetRelatedReference<Supplier>("NorthwindModel.FK_Products_Suppliers", "Suppliers");
            }
            set
            {
                if ((value != null))
                {
                    ((IEntityWithRelationships)this).RelationshipManager.InitializeRelatedReference<Supplier>("NorthwindModel.FK_Products_Suppliers", "Suppliers", value);
                }
            }
        }

        #endregion
    }
    [EdmEntityTypeAttribute(NamespaceName="NorthwindModel", Name="Region")]
    [Serializable()]
    [DataContractAttribute(IsReference=true)]
    public partial class Region : EntityObject
    {
        #region Factory Method
        public static Region CreateRegion(global::System.Int32 regionID, global::System.String regionDescription)
        {
            Region region = new Region();
            region.RegionID = regionID;
            region.RegionDescription = regionDescription;
            return region;
        }

        #endregion
        #region Primitive Properties
        [EdmScalarPropertyAttribute(EntityKeyProperty=true, IsNullable=false)]
        [DataMemberAttribute()]
        public global::System.Int32 RegionID
        {
            get
            {
                return _RegionID;
            }
            set
            {
                if (_RegionID != value)
                {
                    OnRegionIDChanging(value);
                    ReportPropertyChanging("RegionID");
                    _RegionID = StructuralObject.SetValidValue(value);
                    ReportPropertyChanged("RegionID");
                    OnRegionIDChanged();
                }
            }
        }
        private global::System.Int32 _RegionID;
        partial void OnRegionIDChanging(global::System.Int32 value);
        partial void OnRegionIDChanged();
        [EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=false)]
        [DataMemberAttribute()]
        public global::System.String RegionDescription
        {
            get
            {
                return _RegionDescription;
            }
            set
            {
                OnRegionDescriptionChanging(value);
                ReportPropertyChanging("RegionDescription");
                _RegionDescription = StructuralObject.SetValidValue(value, false);
                ReportPropertyChanged("RegionDescription");
                OnRegionDescriptionChanged();
            }
        }
        private global::System.String _RegionDescription;
        partial void OnRegionDescriptionChanging(global::System.String value);
        partial void OnRegionDescriptionChanged();

        #endregion

        #region Navigation Properties
        [XmlIgnoreAttribute()]
        [SoapIgnoreAttribute()]
        [DataMemberAttribute()]
        [EdmRelationshipNavigationPropertyAttribute("NorthwindModel", "FK_Territories_Region", "Territories")]
        public EntityCollection<Territory> Territories
        {
            get
            {
                return ((IEntityWithRelationships)this).RelationshipManager.GetRelatedCollection<Territory>("NorthwindModel.FK_Territories_Region", "Territories");
            }
            set
            {
                if ((value != null))
                {
                    ((IEntityWithRelationships)this).RelationshipManager.InitializeRelatedCollection<Territory>("NorthwindModel.FK_Territories_Region", "Territories", value);
                }
            }
        }

        #endregion
    }
    [EdmEntityTypeAttribute(NamespaceName="NorthwindModel", Name="Shipper")]
    [Serializable()]
    [DataContractAttribute(IsReference=true)]
    public partial class Shipper : EntityObject
    {
        #region Factory Method
        public static Shipper CreateShipper(global::System.Int32 shipperID, global::System.String companyName)
        {
            Shipper shipper = new Shipper();
            shipper.ShipperID = shipperID;
            shipper.CompanyName = companyName;
            return shipper;
        }

        #endregion
        #region Primitive Properties
        [EdmScalarPropertyAttribute(EntityKeyProperty=true, IsNullable=false)]
        [DataMemberAttribute()]
        public global::System.Int32 ShipperID
        {
            get
            {
                return _ShipperID;
            }
            set
            {
                if (_ShipperID != value)
                {
                    OnShipperIDChanging(value);
                    ReportPropertyChanging("ShipperID");
                    _ShipperID = StructuralObject.SetValidValue(value);
                    ReportPropertyChanged("ShipperID");
                    OnShipperIDChanged();
                }
            }
        }
        private global::System.Int32 _ShipperID;
        partial void OnShipperIDChanging(global::System.Int32 value);
        partial void OnShipperIDChanged();
        [EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=false)]
        [DataMemberAttribute()]
        public global::System.String CompanyName
        {
            get
            {
                return _CompanyName;
            }
            set
            {
                OnCompanyNameChanging(value);
                ReportPropertyChanging("CompanyName");
                _CompanyName = StructuralObject.SetValidValue(value, false);
                ReportPropertyChanged("CompanyName");
                OnCompanyNameChanged();
            }
        }
        private global::System.String _CompanyName;
        partial void OnCompanyNameChanging(global::System.String value);
        partial void OnCompanyNameChanged();
        [EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=true)]
        [DataMemberAttribute()]
        public global::System.String Phone
        {
            get
            {
                return _Phone;
            }
            set
            {
                OnPhoneChanging(value);
                ReportPropertyChanging("Phone");
                _Phone = StructuralObject.SetValidValue(value, true);
                ReportPropertyChanged("Phone");
                OnPhoneChanged();
            }
        }
        private global::System.String _Phone;
        partial void OnPhoneChanging(global::System.String value);
        partial void OnPhoneChanged();

        #endregion

        #region Navigation Properties
        [XmlIgnoreAttribute()]
        [SoapIgnoreAttribute()]
        [DataMemberAttribute()]
        [EdmRelationshipNavigationPropertyAttribute("NorthwindModel", "FK_Orders_Shippers", "Orders")]
        public EntityCollection<Order> Orders
        {
            get
            {
                return ((IEntityWithRelationships)this).RelationshipManager.GetRelatedCollection<Order>("NorthwindModel.FK_Orders_Shippers", "Orders");
            }
            set
            {
                if ((value != null))
                {
                    ((IEntityWithRelationships)this).RelationshipManager.InitializeRelatedCollection<Order>("NorthwindModel.FK_Orders_Shippers", "Orders", value);
                }
            }
        }

        #endregion
    }
    [EdmEntityTypeAttribute(NamespaceName="NorthwindModel", Name="Supplier")]
    [Serializable()]
    [DataContractAttribute(IsReference=true)]
    public partial class Supplier : EntityObject
    {
        #region Factory Method
        public static Supplier CreateSupplier(global::System.Int32 supplierID, global::System.String companyName)
        {
            Supplier supplier = new Supplier();
            supplier.SupplierID = supplierID;
            supplier.CompanyName = companyName;
            return supplier;
        }

        #endregion
        #region Primitive Properties
        [EdmScalarPropertyAttribute(EntityKeyProperty=true, IsNullable=false)]
        [DataMemberAttribute()]
        public global::System.Int32 SupplierID
        {
            get
            {
                return _SupplierID;
            }
            set
            {
                if (_SupplierID != value)
                {
                    OnSupplierIDChanging(value);
                    ReportPropertyChanging("SupplierID");
                    _SupplierID = StructuralObject.SetValidValue(value);
                    ReportPropertyChanged("SupplierID");
                    OnSupplierIDChanged();
                }
            }
        }
        private global::System.Int32 _SupplierID;
        partial void OnSupplierIDChanging(global::System.Int32 value);
        partial void OnSupplierIDChanged();
        [EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=false)]
        [DataMemberAttribute()]
        public global::System.String CompanyName
        {
            get
            {
                return _CompanyName;
            }
            set
            {
                OnCompanyNameChanging(value);
                ReportPropertyChanging("CompanyName");
                _CompanyName = StructuralObject.SetValidValue(value, false);
                ReportPropertyChanged("CompanyName");
                OnCompanyNameChanged();
            }
        }
        private global::System.String _CompanyName;
        partial void OnCompanyNameChanging(global::System.String value);
        partial void OnCompanyNameChanged();
        [EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=true)]
        [DataMemberAttribute()]
        public global::System.String ContactName
        {
            get
            {
                return _ContactName;
            }
            set
            {
                OnContactNameChanging(value);
                ReportPropertyChanging("ContactName");
                _ContactName = StructuralObject.SetValidValue(value, true);
                ReportPropertyChanged("ContactName");
                OnContactNameChanged();
            }
        }
        private global::System.String _ContactName;
        partial void OnContactNameChanging(global::System.String value);
        partial void OnContactNameChanged();
        [EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=true)]
        [DataMemberAttribute()]
        public global::System.String ContactTitle
        {
            get
            {
                return _ContactTitle;
            }
            set
            {
                OnContactTitleChanging(value);
                ReportPropertyChanging("ContactTitle");
                _ContactTitle = StructuralObject.SetValidValue(value, true);
                ReportPropertyChanged("ContactTitle");
                OnContactTitleChanged();
            }
        }
        private global::System.String _ContactTitle;
        partial void OnContactTitleChanging(global::System.String value);
        partial void OnContactTitleChanged();
        [EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=true)]
        [DataMemberAttribute()]
        public global::System.String Address
        {
            get
            {
                return _Address;
            }
            set
            {
                OnAddressChanging(value);
                ReportPropertyChanging("Address");
                _Address = StructuralObject.SetValidValue(value, true);
                ReportPropertyChanged("Address");
                OnAddressChanged();
            }
        }
        private global::System.String _Address;
        partial void OnAddressChanging(global::System.String value);
        partial void OnAddressChanged();
        [EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=true)]
        [DataMemberAttribute()]
        public global::System.String City
        {
            get
            {
                return _City;
            }
            set
            {
                OnCityChanging(value);
                ReportPropertyChanging("City");
                _City = StructuralObject.SetValidValue(value, true);
                ReportPropertyChanged("City");
                OnCityChanged();
            }
        }
        private global::System.String _City;
        partial void OnCityChanging(global::System.String value);
        partial void OnCityChanged();
        [EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=true)]
        [DataMemberAttribute()]
        public global::System.String Region
        {
            get
            {
                return _Region;
            }
            set
            {
                OnRegionChanging(value);
                ReportPropertyChanging("Region");
                _Region = StructuralObject.SetValidValue(value, true);
                ReportPropertyChanged("Region");
                OnRegionChanged();
            }
        }
        private global::System.String _Region;
        partial void OnRegionChanging(global::System.String value);
        partial void OnRegionChanged();
        [EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=true)]
        [DataMemberAttribute()]
        public global::System.String PostalCode
        {
            get
            {
                return _PostalCode;
            }
            set
            {
                OnPostalCodeChanging(value);
                ReportPropertyChanging("PostalCode");
                _PostalCode = StructuralObject.SetValidValue(value, true);
                ReportPropertyChanged("PostalCode");
                OnPostalCodeChanged();
            }
        }
        private global::System.String _PostalCode;
        partial void OnPostalCodeChanging(global::System.String value);
        partial void OnPostalCodeChanged();
        [EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=true)]
        [DataMemberAttribute()]
        public global::System.String Country
        {
            get
            {
                return _Country;
            }
            set
            {
                OnCountryChanging(value);
                ReportPropertyChanging("Country");
                _Country = StructuralObject.SetValidValue(value, true);
                ReportPropertyChanged("Country");
                OnCountryChanged();
            }
        }
        private global::System.String _Country;
        partial void OnCountryChanging(global::System.String value);
        partial void OnCountryChanged();
        [EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=true)]
        [DataMemberAttribute()]
        public global::System.String Phone
        {
            get
            {
                return _Phone;
            }
            set
            {
                OnPhoneChanging(value);
                ReportPropertyChanging("Phone");
                _Phone = StructuralObject.SetValidValue(value, true);
                ReportPropertyChanged("Phone");
                OnPhoneChanged();
            }
        }
        private global::System.String _Phone;
        partial void OnPhoneChanging(global::System.String value);
        partial void OnPhoneChanged();
        [EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=true)]
        [DataMemberAttribute()]
        public global::System.String Fax
        {
            get
            {
                return _Fax;
            }
            set
            {
                OnFaxChanging(value);
                ReportPropertyChanging("Fax");
                _Fax = StructuralObject.SetValidValue(value, true);
                ReportPropertyChanged("Fax");
                OnFaxChanged();
            }
        }
        private global::System.String _Fax;
        partial void OnFaxChanging(global::System.String value);
        partial void OnFaxChanged();
        [EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=true)]
        [DataMemberAttribute()]
        public global::System.String HomePage
        {
            get
            {
                return _HomePage;
            }
            set
            {
                OnHomePageChanging(value);
                ReportPropertyChanging("HomePage");
                _HomePage = StructuralObject.SetValidValue(value, true);
                ReportPropertyChanged("HomePage");
                OnHomePageChanged();
            }
        }
        private global::System.String _HomePage;
        partial void OnHomePageChanging(global::System.String value);
        partial void OnHomePageChanged();

        #endregion

        #region Navigation Properties
        [XmlIgnoreAttribute()]
        [SoapIgnoreAttribute()]
        [DataMemberAttribute()]
        [EdmRelationshipNavigationPropertyAttribute("NorthwindModel", "FK_Products_Suppliers", "Products")]
        public EntityCollection<Product> Products
        {
            get
            {
                return ((IEntityWithRelationships)this).RelationshipManager.GetRelatedCollection<Product>("NorthwindModel.FK_Products_Suppliers", "Products");
            }
            set
            {
                if ((value != null))
                {
                    ((IEntityWithRelationships)this).RelationshipManager.InitializeRelatedCollection<Product>("NorthwindModel.FK_Products_Suppliers", "Products", value);
                }
            }
        }

        #endregion
    }
    [EdmEntityTypeAttribute(NamespaceName="NorthwindModel", Name="Territory")]
    [Serializable()]
    [DataContractAttribute(IsReference=true)]
    public partial class Territory : EntityObject
    {
        #region Factory Method
        public static Territory CreateTerritory(global::System.String territoryID, global::System.String territoryDescription, global::System.Int32 regionID)
        {
            Territory territory = new Territory();
            territory.TerritoryID = territoryID;
            territory.TerritoryDescription = territoryDescription;
            territory.RegionID = regionID;
            return territory;
        }

        #endregion
        #region Primitive Properties
        [EdmScalarPropertyAttribute(EntityKeyProperty=true, IsNullable=false)]
        [DataMemberAttribute()]
        public global::System.String TerritoryID
        {
            get
            {
                return _TerritoryID;
            }
            set
            {
                if (_TerritoryID != value)
                {
                    OnTerritoryIDChanging(value);
                    ReportPropertyChanging("TerritoryID");
                    _TerritoryID = StructuralObject.SetValidValue(value, false);
                    ReportPropertyChanged("TerritoryID");
                    OnTerritoryIDChanged();
                }
            }
        }
        private global::System.String _TerritoryID;
        partial void OnTerritoryIDChanging(global::System.String value);
        partial void OnTerritoryIDChanged();
        [EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=false)]
        [DataMemberAttribute()]
        public global::System.String TerritoryDescription
        {
            get
            {
                return _TerritoryDescription;
            }
            set
            {
                OnTerritoryDescriptionChanging(value);
                ReportPropertyChanging("TerritoryDescription");
                _TerritoryDescription = StructuralObject.SetValidValue(value, false);
                ReportPropertyChanged("TerritoryDescription");
                OnTerritoryDescriptionChanged();
            }
        }
        private global::System.String _TerritoryDescription;
        partial void OnTerritoryDescriptionChanging(global::System.String value);
        partial void OnTerritoryDescriptionChanged();
        [EdmScalarPropertyAttribute(EntityKeyProperty=false, IsNullable=false)]
        [DataMemberAttribute()]
        public global::System.Int32 RegionID
        {
            get
            {
                return _RegionID;
            }
            set
            {
                OnRegionIDChanging(value);
                ReportPropertyChanging("RegionID");
                _RegionID = StructuralObject.SetValidValue(value);
                ReportPropertyChanged("RegionID");
                OnRegionIDChanged();
            }
        }
        private global::System.Int32 _RegionID;
        partial void OnRegionIDChanging(global::System.Int32 value);
        partial void OnRegionIDChanged();

        #endregion

        #region Navigation Properties
        [XmlIgnoreAttribute()]
        [SoapIgnoreAttribute()]
        [DataMemberAttribute()]
        [EdmRelationshipNavigationPropertyAttribute("NorthwindModel", "FK_Territories_Region", "Region")]
        public Region Region
        {
            get
            {
                return ((IEntityWithRelationships)this).RelationshipManager.GetRelatedReference<Region>("NorthwindModel.FK_Territories_Region", "Region").Value;
            }
            set
            {
                ((IEntityWithRelationships)this).RelationshipManager.GetRelatedReference<Region>("NorthwindModel.FK_Territories_Region", "Region").Value = value;
            }
        }
        [BrowsableAttribute(false)]
        [DataMemberAttribute()]
        public EntityReference<Region> RegionReference
        {
            get
            {
                return ((IEntityWithRelationships)this).RelationshipManager.GetRelatedReference<Region>("NorthwindModel.FK_Territories_Region", "Region");
            }
            set
            {
                if ((value != null))
                {
                    ((IEntityWithRelationships)this).RelationshipManager.InitializeRelatedReference<Region>("NorthwindModel.FK_Territories_Region", "Region", value);
                }
            }
        }
        [XmlIgnoreAttribute()]
        [SoapIgnoreAttribute()]
        [DataMemberAttribute()]
        [EdmRelationshipNavigationPropertyAttribute("NorthwindModel", "EmployeeTerritories", "Employees")]
        public EntityCollection<Employee> Employees
        {
            get
            {
                return ((IEntityWithRelationships)this).RelationshipManager.GetRelatedCollection<Employee>("NorthwindModel.EmployeeTerritories", "Employees");
            }
            set
            {
                if ((value != null))
                {
                    ((IEntityWithRelationships)this).RelationshipManager.InitializeRelatedCollection<Employee>("NorthwindModel.EmployeeTerritories", "Employees", value);
                }
            }
        }

        #endregion
    }

    #endregion

}!<using System;
using System.Collections;
using System.Collections.Generic;
using System.ComponentModel;
using DevExpress.Xpf.DemoBase;
using System.Data;

namespace GridDemo {
    public class OrderDataGenerator {
        static object SyncRoot = new object();
        static List<string> customerNames = new List<string>();
        static List<CategoryData> categoryData = new List<CategoryData>();
        static List<ProductData> productData = new List<ProductData>();
        volatile int count;
        List<OrderData> cachedOrders = new List<OrderData>();

        static List<string> ExtractCustomerNames() {
            if(customerNames.Count == 0) {
                IList customers = NWindData.Customers;
                customerNames.Capacity = customers.Count;
                foreach(DataRowView row in customers) {
                    customerNames.Add(row["ContactName"].ToString());
                }
            }
            return customerNames;
        }
        static List<CategoryData> ExtractCategoryDataList() {
            if(categoryData.Count == 0) {
                IList categories = NWindData.Categories;
                categoryData.Capacity = categories.Count;
                foreach(DataRowView row in categories) {
                    categoryData.Add(new CategoryData() {
                        Name = row["CategoryName"].ToString(),
                        Picture = (byte[])row["Icon_25"]
                    });
                }
            }
            return categoryData;
        }
        static List<ProductData> ExtractProductDataList(List<CategoryData> categoriesList) {
            if(productData.Count == 0) {
                IList categoryProducts = NWindData.CategoryProducts;
                productData.Capacity = categoryProducts.Count;
                Random rand = new Random();
                foreach(DataRowView row in categoryProducts) {
                    productData.Add(new ProductData() {
                        Category = FindCategory(categoriesList, row["CategoryName"].ToString()),
                        Name = row["ProductName"].ToString(),
                        Price = (decimal)(rand.Next(20) + rand.Next(99) / 100.0)
                    });
                }
            }
            return productData;
        }

        static CategoryData FindCategory(List<CategoryData> categoriesList, string name) {
            foreach(CategoryData category in categoriesList) {
                if(category.Name == name) return category;
            }
            return null;
        }

        List<OrderData> GenerateOrders(int generateCount, int startFrom) {
            List<OrderData> result = new List<OrderData>(generateCount);
            List<string> customerNames = ExtractCustomerNames();
            List<CategoryData> categoriesList = ExtractCategoryDataList();
            List<ProductData> productsList = ExtractProductDataList(categoriesList);

            OnGenerateOrderDataStarted(EventArgs.Empty);
            Random rand = new Random();
            int generateCountPerCent = generateCount / 100;
            for(int i = 0; i < generateCount; i++) {
                ProductData randomProduct = productsList[rand.Next(productsList.Count)];
                string randomName = customerNames[rand.Next(customerNames.Count)];
                OrderData data = new OrderData() {
                    OrderId = i + startFrom, OrderDate = DateTime.Today.Subtract(TimeSpan.FromDays(rand.Next(180))),
                    CustomerName = randomName, Quantity = rand.Next(200) + 1,
                    ProductCategory = randomProduct.Category, ProductName = randomProduct.Name,
                    Price = randomProduct.Price, IsReady = (rand.Next(2) == 0)
                };
                result.Add(data);
                if(((i + 1) % generateCountPerCent) == 0) {
                    OnGenerateOrderDataProgress(new GenerateOrderDataProgressEventArgs(Convert.ToDouble((i + 1) / generateCountPerCent)));
                }
            }
            OnGenerateOrderDataCompleted(EventArgs.Empty);
            return result;
        }

        protected virtual void OnGenerateOrderDataStarted(EventArgs e) {
            if(GenerateOrderDataStarted != null) {
                GenerateOrderDataStarted(this, e);
            }
        }
        protected virtual void OnGenerateOrderDataCompleted(EventArgs e) {
            if(GenerateOrderDataCompleted != null) {
                GenerateOrderDataCompleted(this, e);
            }
        }
        protected virtual void OnGenerateOrderDataProgress(GenerateOrderDataProgressEventArgs e) {
            if(GenerateOrderDataProgress != null) {
                GenerateOrderDataProgress(this, e);
            }
        }

        public OrderDataGenerator(int count) {
            this.count = count;
        }

        public int Count {
            get { return count; }
            set { count = value; }
        }

        public List<OrderData> GetOrders() {
            List<OrderData> result;
            lock(SyncRoot) {
                if(Count > cachedOrders.Count) {
                    cachedOrders.AddRange(GenerateOrders(Count - cachedOrders.Count, cachedOrders.Count + 1));
                }
                result = cachedOrders.GetRange(0, Count);
            }
            return result;
        }
        public List<CategoryData> GetCategories() {
            return ExtractCategoryDataList();
        }

        public event EventHandler GenerateOrderDataStarted;
        public event EventHandler GenerateOrderDataCompleted;
        public event EventHandler<GenerateOrderDataProgressEventArgs> GenerateOrderDataProgress;
    }

    public class GenerateOrderDataProgressEventArgs : EventArgs {
        double progress;

        public GenerateOrderDataProgressEventArgs(double progress) {
            this.progress = progress;
        }
        public double Progress {
            get { return progress; }
        }
    }

    public class CategoryData : IComparable, IComparable<CategoryData> {
        public string Name { get; set; }
        public byte[] Picture { get; set; }
        public override string ToString() {
            return Name;
        }

        #region IComparable Members
        public int CompareTo(object obj) {
            if(obj is CategoryData)
                return CompareTo((CategoryData)obj);
            return -1;
        }
        #endregion
        #region IComparable<CategoryData> Members
        public int CompareTo(CategoryData other) {
            return StringComparer.CurrentCulture.Compare(Name, other.Name);
        }
        #endregion
    }
    public class ProductData {
        public string Name { get; set; }
        public CategoryData Category { get; set; }
        public decimal Price { get; set; }
        public override string ToString() {
            return Name;
        }
    }

    public class OrderData {
        public int OrderId { get; set; }
        public bool IsReady { get; set; }
        public string CustomerName { get; set; }
        public DateTime OrderDate { get; set; }
        public CategoryData ProductCategory { get; set; }
        public string ProductName { get; set; }
        public int Quantity { get; set; }
        public decimal Price { get; set; }
    }
}!B3using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Shapes;
using System.Xml;
using DevExpress.Data.Filtering;
using System.Windows.Threading;
using System.Threading;
using System.ComponentModel;
using DevExpress.XtraEditors.DXErrorProvider;
using DevExpress.Data;
using DevExpress.Xpf.DemoBase.DemosHelpers.Grid;
using System.Data.SqlClient;
using System.Data;
using GridDemo.Controls;

namespace GridDemo {
    public class DemoDataProvider : DemoDataProviderBase {
        public User[] Users { get { return OutlookData.Users; } }
        public SummaryItemType[] SummaryItemTypes {
            get {
                return new SummaryItemType[] {
                    SummaryItemType.Sum,
                    SummaryItemType.Min,
                    SummaryItemType.Max,
                    SummaryItemType.Count,
                    SummaryItemType.Average
                };
            }
        }
        public string[] SummaryFieldNames {
            get {
                return new string[] {
                        "UnitPrice",
                        "Quantity",
                        "Discount",
                        "ExtendedPrice",
                        "Freight",
                        "Total"
                };
            }
        }
    }
    public enum Priority { Low, BelowNormal, Normal, AboveNormal, High }
    [Serializable]
    public class OutlookData : INotifyPropertyChanged {
        public static readonly User[] Users = new User[] {
            new User() { Id = 0, Name = "Peter Dolan"},
            new User() { Id = 1, Name = "Ryan Fischer"},
            new User() { Id = 2, Name = "Richard Fisher"},
            new User() { Id = 3, Name = "Tom Hamlett" },
            new User() { Id = 4, Name = "Mark Hamilton" },
            new User() { Id = 5, Name = "Steve Lee" },
            new User() { Id = 6, Name = "Jimmy Lewis" },
            new User() { Id = 7, Name = "Jeffrey W McClain" },
            new User() { Id = 8, Name = "Andrew Miller" },
            new User() { Id = 9, Name = "Dave Murrel" },
            new User() { Id = 10, Name = "Bert Parkins" },
            new User() { Id = 11, Name = "Mike Roller" },
            new User() { Id = 12, Name = "Ray Shipman" },
            new User() { Id = 13, Name = "Paul Bailey" },
            new User() { Id = 14, Name = "Brad Barnes" },
            new User() { Id = 15, Name = "Carl Lucas" },
            new User() { Id = 16, Name = "Jerry Campbell" },
        };
        int? fOid;
        string fSubject;
        string fFrom;
        DateTime? fSent;
        bool? fHasAttachment;
        long? fSize;
        double? fHoursActive;
        Priority? fPriority;
        int? fUserId;
        public int? OID {
            get { return fOid; }
            set {
                if(fOid == value)
                    return;
                fOid = value;
                OnPropertyChanged("OID");
            }
        }
        public string Subject {
            get { return fSubject; }
            set {
                if(fSubject == value)
                    return;
                fSubject = value;
                OnPropertyChanged("Subject");
            }
        }
        public string From {
            get { return fFrom; }
            set {
                if(fFrom == value)
                    return;
                fFrom = value;
                OnPropertyChanged("From");
            }
        }
        public DateTime? Sent {
            get { return fSent; }
            set {
                if(fSent == value)
                    return;
                fSent = value;
                OnPropertyChanged("Sent");
            }
        }
        public bool? HasAttachment {
            get { return fHasAttachment; }
            set {
                if(fHasAttachment == value)
                    return;
                fHasAttachment = value;
                OnPropertyChanged("HasAttachment");
            }
        }
        public long? Size {
            get { return fSize; }
            set {
                if(fSize == value)
                    return;
                fSize = value;
                OnPropertyChanged("Size");
            }
        }
        public double? HoursActive {
            get { return fHoursActive; }
            set {
                if(fHoursActive == value)
                    return;
                fHoursActive = value;
                OnPropertyChanged("HoursActive");
            }
        }
        public Priority? Priority {
            get { return fPriority; }
            set {
                if(fPriority == value)
                    return;
                fPriority = value;
                OnPropertyChanged("Priority");
            }
        }
        public int? UserId {
            get { return fUserId; }
            set {
                if(fUserId == value)
                    return;
                fUserId = value;
                OnPropertyChanged("UserId");
            }
        }

        public event PropertyChangedEventHandler PropertyChanged;
        void OnPropertyChanged(string propertyName) {
            if(PropertyChanged != null)
                PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
        }

        public void SetPropertyValue(string propertyName, object value) {
            PropertyDescriptor property = TypeDescriptor.GetProperties(this)[propertyName];
            if(property == null && object.Equals(property.GetValue(this), value))
                return;
            property.SetValue(this, value);
            OnPropertyChanged(propertyName);
        }

        public override string ToString() {
            return Subject;
        }
    }
    public class User {
        public int Id { get; set; }
        public string Name { get; set; }
        public override string ToString() {
            return Name;
        }
    }
    public static class OutlookDataGenerator {
        static Random rnd = new Random();
        public static string[] Subjects = new string[] { "Integrating Developer Express MasterView control into an Accounting System.",
                                                "Web Edition: Data Entry Page. There is an issue with date validation.",
                                                "Payables Due Calculator is ready for testing.",
                                                "Web Edition: Search Page is ready for testing.",
                                                "Main Menu: Duplicate Items. Somebody has to review all menu items in the system.",
                                                "Receivables Calculator. Where can I find the complete specs?",
                                                "Ledger: Inconsistency. Please fix it.",
                                                "Receivables Printing module is ready for testing.",
                                                "Screen Redraw. Somebody has to look at it.",
                                                "Email System. What library are we going to use?",
                                                "Cannot add new vendor. This module doesn't work!",
                                                "History. Will we track sales history in our system?",
                                                "Main Menu: Add a File menu. File menu item is missing.",
                                                "Currency Mask. The current currency mask in completely unusable.",
                                                "Drag & Drop operations are not available in the scheduler module.",
                                                "Data Import. What database types will we support?",
                                                "Reports. The list of incomplete reports.",
                                                "Data Archiving. We still don't have this features in our application.",
                                                "Email Attachments. Is it possible to add multiple attachments? I haven't found a way to do this.",
                                                "Check Register. We are using different paths for different modules.",
                                                "Data Export. Our customers asked us for export to Microsoft Excel"};

        public static string GetSubject() {
            return Subjects[rnd.Next(Subjects.Length - 1)];
        }

        public static string GetFrom() {
            return OutlookData.Users[GetFromId()].Name;
        }

        public static DateTime GetSentDate() {
            DateTime ret = DateTime.Today;
            int r = rnd.Next(12);
            if(r > 1)
                ret = ret.AddDays(-rnd.Next(50));
            return ret;
        }
        public static int? GetSize(bool? largeData) {
            return 1000 + (largeData.Value ? 20 * rnd.Next(10000) : 30 * rnd.Next(100));
        }
        public static bool GetHasAttachment() {
            return rnd.Next(10) > 5;
        }
        public static Priority GetPriority() {
            return (Priority)rnd.Next(5);
        }
        public static int GetHoursActive() {
            return (int)Math.Round(rnd.NextDouble() * 1000, 1);
        }
        public static int GetFromId() {
            return rnd.Next(OutlookData.Users.Length);
        }
        public static OutlookData CreateNewObject() {
            OutlookData obj = new OutlookData();
            obj.Subject = GetSubject();
            obj.From = GetFrom();
            obj.Sent = GetSentDate();
            obj.HasAttachment = GetHasAttachment();
            obj.Size = GetSize(obj.HasAttachment);
            obj.Priority = GetPriority();
            obj.UserId = GetFromId();
            obj.HoursActive = GetHoursActive();
            return obj;
        }
        public static OutlookData CreateOutlookData(int id) {
            OutlookData data = new OutlookData();
            data.OID = id;
            data.From = GetFrom();
            data.UserId = GetFromId();
            data.Sent = GetSentDate();
            data.HasAttachment = GetHasAttachment();
            data.Priority = GetPriority();
            data.HoursActive = GetHoursActive();
            data.Subject = GetSubject();
            return data;
        }
        public static DataTable CreateOutlookDataTable(int rowCount) {
            DataTable table = new DataTable();
            table.Columns.Add("OID", typeof(int));
            table.Columns.Add("From", typeof(string));
            table.Columns.Add("ToId", typeof(int));
            table.Columns.Add("Sent", typeof(DateTime));
            table.Columns.Add("HasAttachment", typeof(bool));
            table.Columns.Add("Priority", typeof(int));
            table.Columns.Add("HoursActive", typeof(int));
            for(int i = 0; i < rowCount; i++) {
                DataRow row = table.NewRow();
                row["OID"] = i;
                row["From"] = GetFrom();
                row["ToId"] = GetFromId();
                row["Sent"] = GetSentDate();
                row["HasAttachment"] = GetHasAttachment();
                row["Priority"] = (int)GetPriority();
                row["HoursActive"] = GetHoursActive();
                table.Rows.Add(row);
            }
            return table;
        }
        public static System.Collections.ArrayList CreateOutlookArrayList(int rowCount) {
            System.Collections.ArrayList dataList = new System.Collections.ArrayList(rowCount);
            for(int i = 0; i < rowCount; i++) {
                dataList.Add(CreateOutlookData(i));
            }
            return dataList;
        }
        public static WpfServerSideGridTest CreateNewServerObject() {
            WpfServerSideGridTest obj = new WpfServerSideGridTest();
            obj.Subject = OutlookDataGenerator.GetSubject();
            obj.From = OutlookDataGenerator.GetFrom();
            obj.Sent = OutlookDataGenerator.GetSentDate();
            obj.HasAttachment = OutlookDataGenerator.GetHasAttachment();
            obj.Size = OutlookDataGenerator.GetSize(obj.HasAttachment.Value);
            return obj;
        }
        public static List<WpfServerSideGridTest> CreateServerObjectsList(int count) {
            List<WpfServerSideGridTest> list = new List<WpfServerSideGridTest>(count);
            for(int i = 0; i < count; i++) {
                WpfServerSideGridTest obj = CreateNewServerObject();
                obj.OID = i;
                list.Add(obj);
            }
            return list;
        }
    }
}!7using System;
using System.Collections.Generic;
using System.Windows;
using GridDemo;
using System.Collections;
using System.Globalization;
using DevExpress.Data;
using DevExpress.Xpf.DemoBase;
using DevExpress.Xpf.Grid;
using DevExpress.Xpf.Editors.Settings;
using DevExpress.Xpf.Editors;
using System.Windows.Controls;
using System.Data;

namespace GridDemo {
    public static class SalesByYearData {
        public static Type GetColumnType(string fieldName) {
            return fieldName.Contains("Date") ? typeof(DateTime) : typeof(int);
        }
        public static IList GetSalesByYearData(bool byMonthReport = false) {
            List<string> columns = new List<string>();
            columns.Add("Date");
            if(byMonthReport)
                columns.Add("DateMonth");
            foreach(DataRow row in NWindData.Employees.Table.Rows) {
                string name = (string)row["FirstName"] + " " + (string)row["LastName"];
                if(!columns.Contains(name))
                    columns.Add(name);
            }
            DataTable table = new DataTable();
            foreach(string employe in columns) {
                table.Columns.Add(new DataColumn(employe) { DataType = GetColumnType(employe) });
            }
            Random random = new Random();
            for(int yearIndex = 10; yearIndex > 0; yearIndex--) {
                int year = DateTime.Now.Year - yearIndex;
                for(int month = 1; month <= 12; month++) {
                    int daysCount = byMonthReport ? DateTime.DaysInMonth(year, month) : 1;
                    for(int day = 1; day <= daysCount; day++) {
                        DataRow row = table.NewRow();
                        row["Date"] = new DateTime(year, month, day);
                        int startColumnIndex = 1;
                        if(byMonthReport) {
                            row["DateMonth"] = row["Date"];
                            startColumnIndex++;
                        }
                        for(int columnIndex = startColumnIndex; columnIndex < columns.Count; columnIndex++)
                            row[columns[columnIndex]] = random.Next(30000 / daysCount);
                        table.Rows.Add(row);
                    }
                }
            }
            return table.DefaultView;

        }
    }
    public class SalesByYearDataColumnTemplateSelector : DataTemplateSelector {
        public override DataTemplate SelectTemplate(object item, DependencyObject container) {
            ColumnGeneratorItemContext context = (ColumnGeneratorItemContext)item;
            GridControl grid = (GridControl)container;
            return (DataTemplate)grid.Resources[context.PropertyDescriptor.Name == "Date" ? "DateColumnTemplate" : "EmployeeColumnTemplate"];
        }
    }
}!�MSBAML```����GridDemo"GridDemo.SQLConnectionWindow\XPresentationFramework, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35RNWindowsBase, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35WSPresentationCore, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35D9http://schemas.microsoft.com/winfx/2006/xaml/presentationRNSystem.Xaml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089:x,http://schemas.microsoft.com/winfx/2006/xamla]DevExpress.Xpf.Core.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a;dx2http://schemas.devexpress.com/winfx/2008/xaml/core?dxe5http://schemas.devexpress.com/winfx/2008/xaml/editors�Title$Configuration Window���
SizeToContent$WidthAndHeight=��WindowStartupLocation$CenterOwner=��WindowStyle$
ToolWindow=��
ShowInTaskbar.�
ResizeMode$NoResize=�.���Padding$12q�._���.+���-$�
tbDescription��$	�500��$��13(�$
��Wrap=�$�0,0,0,32q��-$�
DBSettings��$�Center=�$�0,0,0,12q��ColumnDefinitions��$
�Auto���$�6���$	�200��RowDefinitions�$
��Auto��$��4��$
��Auto�.+���-$�label1��$�0�$��0�.�
SQL Server:%DevExpress.Xpf.Editors.TextEdit-$�tbServer��$�2�$��0�)#DevExpress.Xpf.Editors.TextEditBase	Text$
	(local)����-$�label2��$�0�$��2�.�	Database:-$�
cbDatabase��$�2�$��2�%DevExpress.Xpf.Editors.BaseEdit

IsReadOnly
.����Orientation$
Horizontal=�$�Center=�$�0,0,0,24q�.+���-$�stackPanel1��$�Center=�$
�Left=�$�0,0,12,0q�.���$Vertical=�.+�	�-$�rbWindowsAuthentication��d�	IsChecked$
TrueY�$
�0,0,0,4q�
	�	GroupName$
AutentificationGroup��.�Windows authentication	�-	$�rbSQLServerAuthentication��$
AutentificationGroup��.�SQL Server authentication�$�Center=���$
�Auto���$�6���$	�150��$
��Auto��$��4��$
��Auto�.+���-
$�label6��$�0�$��0�.�
Login name:-$
�tbLogin��$�2�$��0�$	sa��{�.��-$�label7��$�0�$��2�.�	Password:,&DevExpress.Xpf.Editors.PasswordBoxEdit-
$�
tbPassword��$�2�$��2�{�.��$�Center=�$�0,0,0,32q����Path$ActualWidth��ElementName$
DBSettings��.+���-$�lRecords��
�����$�Right=�$�11(�]��.$
�0,0,0,8q�.+���-$�label5��$
�0,0,6,0q�.�
Record count:-Name$	tbRecords��	EditValue)#DevExpress.Xpf.Core.ObjectConverter$100000MaskType$
Numeric=�Mask$n0��MaskUseAsDisplayFormat.�-$�bGenerateDB��$�Generate table and ��$
�0,0,0,4q��-$�bAddRecords��$�Add records and ��$
�0,0,0,4q��-$�bExit����IsCancel.$�0��$�0���-$�progressBarCore��$�13��$
�0,0,0,0q��Maximum$99Q��Minimum$0Q�!W<dx:DXWindow x:Class="GridDemo.SQLConnectionWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
 xmlns:dx="http://schemas.devexpress.com/winfx/2008/xaml/core"
 xmlns:dxe="http://schemas.devexpress.com/winfx/2008/xaml/editors"
    Title="Configuration Window" SizeToContent="WidthAndHeight" WindowStartupLocation="CenterOwner" WindowStyle="ToolWindow" ShowInTaskbar="False" ResizeMode="NoResize">
 <Border Padding="12">
  <StackPanel>
   <TextBlock Width="500" FontSize="13" Name="tbDescription" TextWrapping="Wrap" Margin="0,0,0,32" />
   <Grid Name="DBSettings" HorizontalAlignment="Center" Margin="0,0,0,12">
    <Grid.ColumnDefinitions>
     <ColumnDefinition Width="Auto" />
     <ColumnDefinition Width="6" />
     <ColumnDefinition Width="200" />
    </Grid.ColumnDefinitions>
    <Grid.RowDefinitions>
     <RowDefinition Height="Auto" />
     <RowDefinition Height="4" />
     <RowDefinition Height="Auto" />
    </Grid.RowDefinitions>
    <Label Grid.Column="0" Grid.Row="0" Name="label1">SQL Server:</Label>
    <dxe:TextEdit Grid.Column="2" Grid.Row="0" Name="tbServer" Text="(local)" />
    <Label Grid.Column="0" Grid.Row="2" Name="label2">Database:</Label>
    <dxe:TextEdit Grid.Column="2" Grid.Row="2" Name="cbDatabase" IsReadOnly="True" />
   </Grid>
   <StackPanel Orientation="Horizontal" HorizontalAlignment="Center" Margin="0,0,0,24">
    <GroupBox Name="stackPanel1" VerticalAlignment="Center" HorizontalAlignment="Left" Margin="0,0,12,0">
     <StackPanel Orientation="Vertical">
      <RadioButton Name="rbWindowsAuthentication" IsChecked="True" Margin="0,0,0,4" GroupName="AutentificationGroup">Windows authentication</RadioButton>
      <RadioButton Name="rbSQLServerAuthentication" GroupName="AutentificationGroup">SQL Server authentication</RadioButton>
     </StackPanel>
    </GroupBox>
    <Grid VerticalAlignment="Center">
     <Grid.ColumnDefinitions>
      <ColumnDefinition Width="Auto" />
      <ColumnDefinition Width="6" />
      <ColumnDefinition Width="150" />
     </Grid.ColumnDefinitions>
     <Grid.RowDefinitions>
      <RowDefinition Height="Auto" />
      <RowDefinition Height="4" />
      <RowDefinition Height="Auto" />
     </Grid.RowDefinitions>
     <Label Grid.Column="0" Grid.Row="0" Name="label6">Login name:</Label>
     <dxe:TextEdit Grid.Column="2" Grid.Row="0" Text="sa" Name="tbLogin" IsEnabled="True" />
     <Label Grid.Column="0" Grid.Row="2" Name="label7">Password:</Label>
                    <dxe:PasswordBoxEdit Grid.Column="2" Grid.Row="2" Name="tbPassword" IsEnabled="True" />
    </Grid>
   </StackPanel>
   <StackPanel HorizontalAlignment="Center" Width="{Binding Path=ActualWidth, ElementName=DBSettings}" Margin="0,0,0,32">
    <Label Name="lRecords" Background="Transparent" HorizontalAlignment="Right" FontSize="11"></Label>
    <DockPanel LastChildFill="True" Margin="0,0,0,8">
     <Label Name="label5" Margin="0,0,6,0">Record count:</Label>
     <dxe:TextEdit x:Name="tbRecords"
      EditValue="100000"
      MaskType="Numeric"
      Mask="n0" MaskUseAsDisplayFormat="True">
     </dxe:TextEdit>
    </DockPanel>
    <Button Name="bGenerateDB" Content="Generate table and " Margin="0,0,0,4"></Button>
    <Button Name="bAddRecords" Content="Add records and " Margin="0,0,0,4"></Button>
    <Button Name="bExit"></Button>
                <Button IsCancel="True" Width="0" Height="0" />
   </StackPanel>
   <ProgressBar Height="13" Margin="0,0,0,0" Name="progressBarCore" Maximum="99" Minimum="0" />
  </StackPanel>
 </Border>
</dx:DXWindow>!u0using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Shapes;
using System.Xml;
using DevExpress.Data.Filtering;
using System.Data.SqlClient;
using System.Data;
using System.Windows.Threading;
using System.Threading;
using GridDemo.Controls;
using DevExpress.Xpf.Editors;
using DevExpress.Xpf.Core;

namespace GridDemo {
    public static class ServerModeOptions {
        public static bool IsCorrectConnection;
        public static string SQLConnectionString = string.Empty;
        public static string failedConnection = "Failed to connect to the server.";
        public static string failedConnectionCaption = "Connection Error";
        public static string dataAdding = "Adding next portion of data...";
        public static string recordCount = "Current record count = {0}";
        public static string descriptionSQLConnection =
            "This demo demonstrates the DXGrid control's capabilities when it is bound to a large amount of data. In this demo the DXGrid control needs to be connected to a data table on an MS SQL server. Please use this Configuration Window to configure data and connection settings.\r\n\r\n" +
            "On the first run:\r\n" +
            "1) Specify the name of an existing SQL Server, which will contain the target database;\r\n" +
            "2) Specify the amount of records in the target table and click the \"Generate Table and Start Demo\" button. A new table will be generated and the demo will start with the DXGrid control bound to the generated recordset.\r\n\r\n" +
            "On subsequent runs, you can add more records to the database or just start the demo without generating additional data.";
    }
    public partial class SQLConnectionWindow : DXWindow {
        string defaultDB = "DXGridServerModeDB";
        string serverParameters = "SQLParameters.xml";
        public string ConnectionStringParameters {
            get {
                return string.Format("{0};{1};{2};{3}", tbServer.Text, rbWindowsAuthentication.IsChecked.Value ? 0 : 1, tbLogin.Text, tbPassword.Text);
            }
        }
        public int RecordCount{
   get{
    int count = Convert.ToInt32(tbRecords.EditValue);
    return count >= 0 ? count : 0;
   }
  }
        public ProgressBar ProgressBar { get { return progressBarCore; } }
        public SQLConnectionWindow(string demoString) {
            InitializeComponent();
            rbWindowsAuthentication.Checked += new RoutedEventHandler(radioGroup1_SelectedIndexChanged);
            rbWindowsAuthentication.Unchecked += new RoutedEventHandler(radioGroup1_SelectedIndexChanged);
            cbDatabase.EditValueChanged += new EditValueChangedEventHandler(cbDatabase_EditValueChanged);
            tbServer.EditValueChanged += new EditValueChangedEventHandler(teServer_EditValueChanged);
            bGenerateDB.Click += new RoutedEventHandler(sbGenerateDB_Click);
            bAddRecords.Click += new RoutedEventHandler(sbAddRecords_Click);
            bExit.Click += new RoutedEventHandler(sbExit_Click);
            UpdateAuthenticationFields();
            UpdateGenerateDBButton();
            UpdateDatabaseTextEdit();

            tbDescription.Text = ServerModeOptions.descriptionSQLConnection;
            cbDatabase.Text = defaultDB;
            bAddRecords.Content = (string)bAddRecords.Content + demoString;
            bGenerateDB.Content = (string)bGenerateDB.Content + demoString;
            bExit.Content = (string)bExit.Content + demoString;
            ShowParameters();
        }

        void cbDatabase_EditValueChanged(object sender, EditValueChangedEventArgs e) {
            UpdateGenerateDBButton();
        }

        void ShowParameters() {
            if(!System.IO.File.Exists(serverParameters))
                return;
            bExit.IsEnabled = true;
            XmlDocument doc = new XmlDocument();
            try {
                doc.Load(serverParameters);
            } catch { }
            if(doc.DocumentElement.Name == "Parameters") {
                string[] prm = doc.DocumentElement.InnerText.Split(new char[] { ';' });
                tbServer.Text = prm[0];
                rbWindowsAuthentication.IsChecked = Convert.ToInt32(prm[1]) == 0;
                rbSQLServerAuthentication.IsChecked = !rbWindowsAuthentication.IsChecked.Value;
                tbLogin.Text = prm[2];
                tbPassword.Text = prm[3];
            }
            CheckRecords();
        }
        void CheckRecords() {
            int num = ServerModeRecordsGenrator.CalcRecordCount(GetDataBaseConnectionString());
            if(num > 0) {
                bAddRecords.IsEnabled = true;
                lRecords.Content = string.Format(ServerModeOptions.recordCount, num);
            }
        }
        public string GetDataBaseConnectionString() {
            string connectionString = GetServerConnectionString();
            return connectionString + ";initial catalog=" + cbDatabase.Text;
        }
        string GetServerConnectionString() {
            string connectionString = String.Format("data source={0};integrated security=SSPI", tbServer.Text);
            if(!rbWindowsAuthentication.IsChecked.Value)
                connectionString = String.Format("data source={0};user id={1};password={2}", tbServer.Text, tbLogin.Text, tbPassword.Text);
            return connectionString;
        }
        void radioGroup1_SelectedIndexChanged(object sender, RoutedEventArgs e) {
            UpdateAuthenticationFields();
        }
        void UpdateAuthenticationFields() {
            bool disable = rbWindowsAuthentication.IsChecked.Value;
            DisableSQLServerAuthentication(disable);
        }
        void DisableSQLServerAuthentication(bool disable) {
            tbLogin.IsEnabled = !disable;
            tbPassword.IsEnabled = !disable;
        }
        void UpdateGenerateDBButton() {
            bGenerateDB.IsEnabled = cbDatabase.Text == defaultDB;
        }
        void teServer_EditValueChanged(object sender, EditValueChangedEventArgs e) {
            UpdateDatabaseTextEdit();
        }
        private void UpdateDatabaseTextEdit() {
            cbDatabase.Text = defaultDB;
        }
        void sbGenerateDB_Click(object sender, RoutedEventArgs e) {
            GenerateRecords(true);
        }
        void sbAddRecords_Click(object sender, RoutedEventArgs e) {
            GenerateRecords(false);
        }
        void GenerateRecords(bool clearRecords) {
            if(!CorrectConnection(GetServerConnectionString()))
                return;
            new ServerModeRecordsGenrator(this, clearRecords).GenerateRecords();
        }
        void sbExit_Click(object sender, RoutedEventArgs e) {
            CloseForm();
        }
        internal void CloseForm() {
            if(!CorrectConnection(GetServerConnectionString()))
                return;
            try {
                using(XmlTextWriter tw = new XmlTextWriter(serverParameters, System.Text.Encoding.UTF8)) {
                    tw.WriteElementString("Parameters", ConnectionStringParameters);
                }
            } catch { }
            this.Close();
        }
        bool CorrectConnection(string serverConnectionString) {
            Cursor cur = this.Cursor;
            this.Cursor = Cursors.Wait;
            using(SqlConnection connection = new SqlConnection(serverConnectionString)) {
                try {
                    connection.Open();
                    connection.Close();
                } catch {
                    MessageBox.Show(ServerModeOptions.failedConnection, ServerModeOptions.failedConnectionCaption, MessageBoxButton.OK, MessageBoxImage.Error);
                    ServerModeOptions.IsCorrectConnection = false;
                    return false;
                    ;
                } finally {
                    this.Cursor = cur;
                }
            }
            ServerModeOptions.IsCorrectConnection = true;
            return true;
        }
    }
    public class ServerModeRecordsGenrator {
        #region static
        public static int CalcRecordCount(string serverConnectionString) {
            try {
                using(DataGridTestClassesDataContext dataContext = new DataGridTestClassesDataContext(serverConnectionString)) {
                    return Queryable.Count<WpfServerSideGridTest>(dataContext.WpfServerSideGridTests);
                }
            } catch {
                return 0;
            }
        }
        #endregion
        int generatedItemsCount = 0;
        SQLConnectionWindow parentWindow;
        bool clearRecords;
        public ServerModeRecordsGenrator(SQLConnectionWindow parentWindow, bool clearRecords) {
            this.parentWindow = parentWindow;
            this.clearRecords = clearRecords;
        }
        DataGridTestClassesDataContext dataContext;
        public void GenerateRecords() {
            parentWindow.Cursor = Cursors.Wait;
            dataContext = new DataGridTestClassesDataContext(parentWindow.GetDataBaseConnectionString());
            ValidateDatabase();
            parentWindow.Title = ServerModeOptions.dataAdding;
            if(clearRecords) {
                try {
     dataContext.ExecuteCommand("DELETE FROM " + typeof(WpfServerSideGridTest).Name + " WHERE Oid>=0");
                    dataContext.SubmitChanges();
                } catch { }
            }
            CreateItems();
        }
        void ValidateDatabase() {
            if(!dataContext.DatabaseExists()) {
                dataContext.CreateDatabase();
                CreateIndices();
            } else
                dataContext.Connection.Open();
            if(!TableExists()) {
                CreateTable();
                CreateIndices();
            }
        }
        void CreateTable() {
            dataContext.ExecuteCommand(string.Format(@"
CREATE TABLE {0}(
OID Int NOT NULL IDENTITY,
Sent DateTime,
HasAttachment Bit,
Size BigInt,
[From] NVarChar(100),
Subject NVarChar(100),
CONSTRAINT {0}_pk PRIMARY KEY (OID)
);
", typeof(WpfServerSideGridTest).Name));
        }
        void CreateIndices() {
            CreateIndex("Sent");
            CreateIndex("HasAttachment");
            CreateIndex("Size");
            CreateIndex("From");
            CreateIndex("Subject");
            dataContext.SubmitChanges();
        }
        void CreateIndex(string fieldName) {
            dataContext.ExecuteCommand(string.Format(@"CREATE INDEX {1}_idx ON {0} ([{1}]);", typeof(WpfServerSideGridTest).Name, fieldName));
        }
        bool TableExists() {
            DataTable schema = dataContext.Connection.GetSchema("Tables");
            foreach(DataRowView row in schema.DefaultView) {
                if((string)row["TABLE_NAME"] == typeof(WpfServerSideGridTest).Name)
                    return true;
            }
            return false;
        }
        void CreateItems() {
            int step = (int)(parentWindow.RecordCount / 100);
   if(step == 0)
    step = parentWindow.RecordCount;
            int i;
            for(i = generatedItemsCount; i < parentWindow.RecordCount && i < generatedItemsCount + 100; i++) {
                dataContext.WpfServerSideGridTests.InsertOnSubmit(OutlookDataGenerator.CreateNewServerObject());
                if(i % step == 0) {
                    dataContext.SubmitChanges();
                    parentWindow.ProgressBar.Value = (i * 100 / parentWindow.RecordCount);
                    parentWindow.ProgressBar.UpdateLayout();
                }
            }
            generatedItemsCount = i;
            if(i >= parentWindow.RecordCount) {
                dataContext.SubmitChanges();
                dataContext.Dispose();
                parentWindow.CloseForm();
            } else {
                parentWindow.Dispatcher.BeginInvoke(DispatcherPriority.Render, new Action(CreateItems));
            }
        }
    }
}!Nusing System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using System.ComponentModel;
using System.Diagnostics;
using System.Windows.Threading;
using System.Threading;
using System.Windows.Media.Animation;
using DevExpress.Xpf.Grid;
using DevExpress.Xpf.Core.Native;
using DevExpress.Xpf.DemoBase;
using System.Windows.Markup;
using System.Collections.ObjectModel;
using System.Collections.Specialized;
using System.Collections;
using DevExpress.Xpf.Utils;


namespace GridDemo {
    [ContentProperty("Storyboard")]
    public class StoryboardContainer : Control {
        public static Storyboard CreateStoryboard(Control resourceHolder, string resourceName) {
            ContentControl c = new ContentControl() { Template = (ControlTemplate)resourceHolder.Resources[resourceName] };
            c.ApplyTemplate();
            StoryboardContainer container = (StoryboardContainer)VisualTreeHelper.GetChild(c, 0);
            return container.Storyboard;
        }
        public Storyboard Storyboard { get; set; }
    }
}!@MSBAML```����GridDemo("GridDemo.TabHeaderPrintInfoControl\XPresentationFramework, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35RNWindowsBase, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35WSPresentationCore, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35D9http://schemas.microsoft.com/winfx/2006/xaml/presentationRNSystem.Xaml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089:x,http://schemas.microsoft.com/winfx/2006/xamlJmc;http://schemas.openxmlformats.org/markup-compatibility/2006@d2http://schemas.microsoft.com/expression/blend/2008a]DevExpress.Xpf.Core.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a;dx2http://schemas.devexpress.com/winfx/2008/xaml/core?dxe5http://schemas.devexpress.com/winfx/2008/xaml/editors.��$�Center=�.+��-�Name$progress��$�-9,-2,-25,-3q�$�0q��Z���-��Name$tabNameTextBlock��$
�0,1,0,1q�!O<UserControl x:Class="GridDemo.TabHeaderPrintInfoControl"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
             xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
             xmlns:dx="http://schemas.devexpress.com/winfx/2008/xaml/core"
          xmlns:dxe="http://schemas.devexpress.com/winfx/2008/xaml/editors"
             mc:Ignorable="d"
             d:DesignHeight="300" d:DesignWidth="300">
    <Grid VerticalAlignment="Center">
        <ProgressBar Background="{x:Null}" Margin="-9,-2,-25,-3" BorderThickness="0" x:Name="progress" />
        <TextBlock Margin="0,1,0,1" x:Name="tabNameTextBlock" />
    </Grid>
</UserControl>!�	using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using DevExpress.Xpf.Printing;
using DevExpress.Xpf.Core;

namespace GridDemo {
    public partial class TabHeaderPrintInfoControl : UserControl {
        public LinkPreviewModel LinkPreviewModel {
            get { return (LinkPreviewModel)GetValue(LinkPreviewModelProperty); }
            set { SetValue(LinkPreviewModelProperty, value); }
        }
        public static readonly DependencyProperty LinkPreviewModelProperty =
            DependencyProperty.Register("LinkPreviewModel", typeof(LinkPreviewModel), typeof(TabHeaderPrintInfoControl), new PropertyMetadata(null, new PropertyChangedCallback(OnLinkPreviewModelChanged)));

        public string TabName {
            get { return (string)GetValue(TabNameProperty); }
            set { SetValue(TabNameProperty, value); }
        }
        public static readonly DependencyProperty TabNameProperty =
            DependencyProperty.Register("TabName", typeof(string), typeof(TabHeaderPrintInfoControl), new PropertyMetadata(null, new PropertyChangedCallback(OnTabNameChanged)));
        static void OnLinkPreviewModelChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) {
            ((TabHeaderPrintInfoControl)d).OnLinkPreviewModelChanged();
        }
        static void OnTabNameChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) {
            ((TabHeaderPrintInfoControl)d).OnTabNameChanged();
        }
        public TabHeaderPrintInfoControl() {
            InitializeComponent();
        }

        void OnLinkPreviewModelChanged() {
            progress.SetBinding(FrameworkElement.VisibilityProperty, new Binding("ProgressVisibility") { Source = LinkPreviewModel, Converter = new BoolToVisibilityConverter() });
            progress.SetBinding(ProgressBar.MaximumProperty, new Binding("ProgressMaximum") { Source = LinkPreviewModel });
            progress.SetBinding(ProgressBar.ValueProperty, new Binding("ProgressValue") { Source = LinkPreviewModel, Mode = BindingMode.OneWay });
        }
        void OnTabNameChanged() {
            tabNameTextBlock.Text = TabName;
        }
    }
}!�0using System;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Shapes;
using System.Xml;
using DevExpress.Data.Filtering;
using System.Windows.Threading;
using System.Threading;
using System.ComponentModel;
using DevExpress.XtraEditors.DXErrorProvider;
using DevExpress.Data;
using DevExpress.Xpf.Grid;

using System.Data.SqlClient;
using System.Data;
using DevExpress.Xpf.Utils;

namespace GridDemo {
    public abstract class BindingCollection : CollectionBase, IBindingList {
        public virtual void OnListChanged(object item) { }
        public object AddNew() { return null; }
        public bool AllowEdit { get { return true; } }
        public bool AllowNew { get { return false; } }
        public bool AllowRemove { get { return true; } }

        private ListChangedEventHandler listChangedHandler;
        public event ListChangedEventHandler ListChanged {
            add { listChangedHandler += value; }
            remove { listChangedHandler -= value; }
        }
        internal void OnListChanged(ListChangedEventArgs args) {
            if(listChangedHandler != null) {
                listChangedHandler(this, args);
            }
        }
        protected override void OnRemoveComplete(int index, object value) {
            OnListChanged(new ListChangedEventArgs(ListChangedType.ItemDeleted, index));
        }
        protected override void OnInsertComplete(int index, object value) {
            OnListChanged(new ListChangedEventArgs(ListChangedType.ItemAdded, index));
        }

        public void AddIndex(PropertyDescriptor pd) { throw new NotSupportedException(); }
        public void ApplySort(PropertyDescriptor pd, ListSortDirection dir) { throw new NotSupportedException(); }
        public int Find(PropertyDescriptor property, object key) { throw new NotSupportedException(); }
        public bool IsSorted { get { return false; } }
        public void RemoveIndex(PropertyDescriptor pd) { throw new NotSupportedException(); }
        public void RemoveSort() { throw new NotSupportedException(); }
        public ListSortDirection SortDirection { get { throw new NotSupportedException(); } }
        public PropertyDescriptor SortProperty { get { throw new NotSupportedException(); } }
        public bool SupportsChangeNotification { get { return true; } }
        public bool SupportsSearching { get { return false; } }
        public bool SupportsSorting { get { return false; } }
    }
    public class Task : INotifyPropertyChanged {
        int fID;
        string fName;
        DateTime fDate;
        int fPercentComplete;
        bool fComplete;
        string fNote;

        BindingCollection fRelationCollection;
        public Task(BindingCollection relationCollection, int id, string name, DateTime date) {
            this.fRelationCollection = relationCollection;
            this.fID = id;
            this.fName = name;
            this.fDate = date;
            this.fPercentComplete = 0;
            this.fComplete = false;
            this.fNote = "";
        }

        public int ID {
            get { return fID; }
        }

        public string TaskName {
            get { return fName; }
            set {
                fName = value;
                OnListChanged();
            }
        }

        public DateTime DueDate {
            get { return fDate; }
            set {
                fDate = value;
                OnListChanged();
            }
        }

        public bool Complete {
            get { return fComplete; }
            set {
                fComplete = value;
                if(fComplete && fPercentComplete != 100)
                    PercentComplete = 100;
                if(!fComplete && fPercentComplete == 100)
                    PercentComplete = 0;
                OnPropertyChanged("Complete");
                OnListChanged();
            }
        }

        public int PercentComplete {
            get { return fPercentComplete; }
            set {
                fPercentComplete = value;
                if(fPercentComplete < 0)
                    fPercentComplete = 0;
                if(fPercentComplete > 100)
                    fPercentComplete = 100;
                Complete = fPercentComplete == 100;
                OnPropertyChanged("PercentComplete");
                OnListChanged();
            }
        }

        public string Note {
            get { return fNote; }
            set {
                fNote = value;
                OnListChanged();
            }
        }

        public string CategoryName {
            get { return GetCategoryByTask((TasksWithCategories)fRelationCollection, this); }
        }

        static string GetCategoryByTask(TasksWithCategories collection, Task task) {
            string ret = "";
            for(int i = 0; i < collection.fCategories.Count; i++) {
                if(collection.HasCategory(task, collection.fCategories[i]))
                    ret += string.Format("{0}{1}", (ret == "" ? "" : ", "), collection.fCategories[i].CategoryName);
            }
            if(ret == "") ret = "<None>";
            return ret;
        }

        private void OnListChanged() {
            fRelationCollection.OnListChanged(this);
        }

        #region INotifyPropertyChanged Members

        public event PropertyChangedEventHandler PropertyChanged;
        void OnPropertyChanged(string propertyName) {
            if(PropertyChanged != null)
                PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
        }

        #endregion
    }
    public class Category {
        int fID;
        string fName;
        public Category(int id, string name) {
            this.fID = id;
            this.fName = name;
        }

        public int ID {
            get { return fID; }
        }

        public string CategoryName {
            get { return fName; }
            set { fName = value; }
        }
    }
    public class Relation : FrameworkElement {

        public static readonly DependencyProperty CompleteProperty =
            DependencyPropertyManager.Register("Complete", typeof(bool), typeof(Relation), new PropertyMetadata(null));

        public static readonly DependencyProperty PercentCompleteProperty =
            DependencyPropertyManager.Register("PercentComplete", typeof(int), typeof(Relation), new PropertyMetadata(null));

        public bool Complete {
            get { return (bool)GetValue(CompleteProperty); }
            set { SetValue(CompleteProperty, value); }
        }

        public int PercentComplete {
            get { return (int)GetValue(PercentCompleteProperty); }
            set { SetValue(PercentCompleteProperty, value); }
        }

        internal Task fTask;
        internal Category fCategory;
        public Relation(Task task, Category category) {
            this.fTask = task;
            this.fCategory = category;

            Binding completeBinding = new Binding("Complete");
            completeBinding.Source = fTask;
            completeBinding.Mode = BindingMode.TwoWay;
            this.SetBinding(CompleteProperty, completeBinding);

            Binding percentCompleteBinding = new Binding("PercentComplete");
            percentCompleteBinding.Source = fTask;
            percentCompleteBinding.Mode = BindingMode.TwoWay;
            this.SetBinding(PercentCompleteProperty, percentCompleteBinding);
        }
        public string TaskName {
            get { return fTask.TaskName; }
            set { fTask.TaskName = value; }
        }
        public DateTime DueDate {
            get { return fTask.DueDate; }
            set { fTask.DueDate = value; }
        }
        public string CategoryName {
            get { return fCategory.CategoryName; }
        }

        public string Note {
            get { return fTask.Note; }
            set { fTask.Note = value; }
        }
    }
    public class Tasks : BindingCollection {
        public static int MaxTasks = 7;
        public static Tasks GetTasks(TasksWithCategories collection) {
            Tasks ret = new Tasks();
            Random rnd = new Random();
            for(int i = 0; i < MaxTasks; i++) {
                ret.List.Add(new Task(collection, i + 1, "Task" + (i + 1).ToString(), DateTime.Today.AddDays(rnd.Next(5))));
                if(i == 2) ret[i].PercentComplete = 50;
                if(i == 6) ret[i].PercentComplete = 100;
            }
            return ret;
        }
        public Task this[int index] {
            get { return (Task)(List[index]); }
            set { List[index] = value; }
        }
    }
    public class Categories : BindingCollection {
        public static int MaxCategories = 6;
        public static Categories GetCategories(TasksWithCategories collection) {
            Categories ret = new Categories();
            string[] names = new string[] { "Business", "Competitor", "Favorites", "Gifts", "Goals", "Holiday", "Ideas", "International", "Personal" };
            for(int i = 0; i < names.Length; i++)
                ret.List.Add(new Category(i + 1, names[i]));
            return ret;
        }
        public Category this[int index] {
            get { return (Category)(List[index]); }
            set { List[index] = value; }
        }
    }
    public class TasksWithCategories : BindingCollection {
        internal Tasks fTasks;
        internal Categories fCategories;
        public TasksWithCategories() {
            fTasks = Tasks.GetTasks(this);
            fCategories = Categories.GetCategories(this);
        }
        public static TasksWithCategories GetTasksWithCategories() {
            TasksWithCategories ret = new TasksWithCategories();
            Random rnd = new Random();
            for(int i = 0; i < Tasks.MaxTasks; i++)
                for(int j = 0; j < 1 + rnd.Next(Categories.MaxCategories); j++) {
                    Category cat = ret.fCategories[rnd.Next(ret.fCategories.Count)];
                    if(!ret.HasCategory(ret.fTasks[i], cat))
                        ret.List.Add(new Relation(ret.fTasks[i], cat));
                }
            return ret;
        }
        public Relation this[int index] {
            get { return (Relation)(List[index]); }
            set { List[index] = value; }
        }
        public override void OnListChanged(object item) {
            if(item == null) return;
            for(int i = 0; i < this.Count; i++)
                if(item.Equals(this[i].fTask))
                    this.OnListChanged(new ListChangedEventArgs(ListChangedType.ItemChanged, i));
        }
        public bool HasCategory(Task task, Category category) {
            for(int i = 0; i < this.Count; i++)
                if(this[i].fCategory == category && this[i].fTask.Equals(task))
                    return true;
            return false;
        }
    }
    public class GroupingControllerTasksWithCategories {
        GridControl fGrid;
        TasksWithCategories fTasks;
        public event EventHandler AfterGrouping;
        public GroupingControllerTasksWithCategories(GridControl grid) {
            this.fGrid = grid;
            this.fTasks = TasksWithCategories.GetTasksWithCategories();
            grid.EndGrouping += new RoutedEventHandler(Grid_Grouping);
            SetDataSource();
        }
        void Grid_Grouping(object sender, RoutedEventArgs e) {
            SetDataSource();
            if(AfterGrouping != null) AfterGrouping(this, EventArgs.Empty);
        }

        public GridColumn CategoryColumn { get { return fGrid.Columns["CategoryName"]; } }

        public bool IsCategoryGrouping {
            get {
                if(CategoryColumn == null) return false;
                return CategoryColumn.IsGrouped;
            }
        }

        public void SetDataSource() {
            if(IsCategoryGrouping)
                fGrid.ItemsSource = fTasks;
            else fGrid.ItemsSource = fTasks.fTasks;
        }
    }
}!using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Collections;
using System.Xml.Serialization;
using DevExpress.Xpf.DemoBase;
using System.ComponentModel;
using DevExpress.Xpf.DemoBase.Helpers;
using System.Reflection;

namespace GridDemo {
    [XmlRoot("Countries")]
    public class CountriesData : List<Country> {
        static IList dataSource = null;
        public static IList DataSource {
            get {
                if(dataSource != null)
                    return dataSource;
                XmlSerializer s = new XmlSerializer(typeof(CountriesData));
                Assembly assembly = typeof(MultiView).Assembly;
                dataSource = (IList)s.Deserialize(assembly.GetManifestResourceStream(DemoHelper.GetPath("GridDemo.Data.", assembly) + "Countries.xml"));
                return dataSource;
            }
        }
    }

    public class Country {
        public string Name { get; set; }
        public byte[] Flag { get; set; }
    }
}!�using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using DevExpress.Xpo;
using DevExpress.Xpo.DB;
using System.ServiceModel;

namespace GridDemo {

    public static class XPOServiceHelper {

        public static void SetupXpoLayer() {
            EndpointAddress address = new EndpointAddress("http://demos.devexpress.com/Services/WcfXpoSC/XPOService.svc");
            BasicHttpBinding binding = new BasicHttpBinding();
            binding.MaxReceivedMessageSize = Int32.MaxValue;
            DataStoreClient dataStore = new DataStoreClient(binding, address);
            XpoDefault.DataLayer = new SimpleDataLayer(dataStore);
            XpoDefault.Session = null;

        }
    }
}!�:00 �%6   ��% h�6(0` ��������������������������	�

��
������������ �!! �##"�$$#*��������������������������	�	
	��
�

������������!! �""!�$$#�&&%�''&*��������������������������	�	
	�

�
�

������������  �""!�#$#�%%$�''&�(('���������������������������	
	�

��

������������  �!"!�##"�%%$�''&�(('�**)��������������������������	�

��

������������ �!! �##"�$%$�&&%�(('�**)�++*�������������������������	�

��
�������������!! �"#"�$$#�&&%�''&�))(�++*�--,���������������������������	�	
	��
�

������������ ! �""!�$$#�%%$�''&�))(�++*�,,+�..-�����565���������������������	�	
	�

�
�

������������  �""!�##"�%%$�''&�(('�**)�,,+�.-,�//.����������������������������	
	�

��

������������  �!! �##"�%%$�&&%�(('�**)�++*�--,�//.�10/�������������������������������	�

��
������������ �!! �##"�$$#�&&%�(('�))(�++*�--,�..-�00/�221���������������������������������	�	
	��
�

������������!! �""!�$$#�&&%�''&�))(�++*�,,+�..-�00/�210�332�����������������������������������	�	
	�

�
�

������������  �""!�#$#�%%$�''&�(('�**)�,,+�..-�//.�110�332�543���������������������ddd��������������	
	�

��

������������  �!"!�##"�%%$�''&�(('�**)�,,+�--,�//.�110�321�443�665�������������������������ddd������������	�

��

������������ �!! �##"�$%$�&&%�(('�**)�++*�--,�/.-�10/�221�443�654�776�����������������������������ddd����������	�

��
�������������!! �"#"�$$#�&&%�''&�))(�++*�--,�..-�00/�221�432�554�776�987���������������������������������ddd��������	�	
	��
�

������������ ! �""!�$$#�%%$�''&�))(�++*�,,+�..-�0/.�110�332�554�765�887�::9����������������������������������������������	�	
	�

�
�

������������  �""!�##"�%%$�''&�(('�**)�,,+�.-,�//.�110�321�443�665�887�:98�;;:�������������������������������������������������	
	�

��

������������  �!! �##"�%%$�&&%�(('�**)�++*�--,�//.�10/�221�443�665�876�998�;;:�=<;���������������������������������������������������	�

��
������������ �!! �##"�$$#�&&%�(('�))(�++*�--,�..-�00/�221�432�554�776�998�;:9�=<;�>>=����������������������������������������������������676�	
	��
�

������������!! �""!�$$#�&&%�''&�))(�++*�,,+�..-�00/�210�332�554�765�987�::9�<<;�>=<�@?>�~�����������������������������������������������������fgf�
�

������������  �""!�#$#�%%$�''&�(('�**)�,,+�..-�//.�110�332�543�765�887�::9�<;:�>=<�??>�A@?�0N�}���������������������������������������������������������������������  �!"!�##"�%%$�''&�(('�**)�,,+�--,�//.�110�321�443�665�876�:98�;;:�==<�?>=�A@?�BBA�/N�/O�c|�����������������������������������������������������>?>��������� �!! �##"�$%$�&&%�(('�**)�++*�--,�/.-�10/�221�443�654�776�998�;:9�=<;�>>=�@@?�BA@�DCB�/N�/P�/Q�Us������������������������������������������������������������������!! �"#"�$$#�&&%�''&�))(�++*�--,�..-�00/�221�432�554�776�987�::9�<<;�>=<�@?>�BA@�CCB�EED�/O�/P�/Q�.R�;^���������������������������������������������������������RSR����� ! �""!�$$#�%%$�''&�))(�++*�,,+�..-�0/.�110�332�554�765�887�::9�<;:�>=<�??>�AA@�CBA�EDC�GFE�/O�/P�.Q�.R�.S�-U���������������������������������������������������������������++*��  �""!�##"�%%$�''&�(('�**)�,,+�.-,�//.�110�321�443�665�887�:98�;;:�==<�??>�A@?�CBA�EDC�FFE�HGF�/P�/Q�.R�.S�.T�-U�-V�b�������������������������������������������������������������//.�##"�%%$�&&%�(('�**)�++*�--,�//.�10/�221�443�665�876�998�;;:�=<;�?>=�A@?�BBA�DCB�FED�HGF�JIH�/P�/Q�.R�.S�.T�-U�-V�-W�9c��������������������������������������������������������������vvv�&&%�(('�))(�++*�--,�..-�00/�221�432�554�776�998�;:9�=<;�>>=�@@?�BA@�DCB�FED�GFE�IHG�KJI�/P�.Q�.R�.S�-U�-V�-W�,X�,Y�,Z�`���������������������������������������������������������������zzy�887�,,+�..-�00/�210�332�554�765�987�::9�<<;�>=<�@?>�BA@�CCB�EDC�GFE�IHG�JJI�LKJ�/Q�.R�.S�.T�-U�-V�-W�,X�,Y�,Z�+[�+\������������������������������������������������������������������<<;�110�332�543�765�887�::9�<;:�>=<�??>�A@?�CBA�EDC�FFE�HGF�JIH�LKJ�NML�/Q�.R�.S�.T�-U�-V�-W�,Y�,Z�,[�+\�+]�+^�Es����������������������������������������������������������������������ggf�665�876�:98�;;:�==<�?>=�A@?�BBA�DCB�FED�HGF�JIH�KKJ�MLK�ONM�.Q�.R�.S�-U�-V�-W�,X�,Y�,Z�+[�+\�+]�*^�*_�*`�Du��������������������������������������������������������������������������TSR�=<;�>>=�@@?�BA@�DCB�FED�GGF�IIH�KJI�MLK�ONM�QPO�.R�.S�.T�-U�-V�-W�,X�,Y�,Z�+[�+\�+]�*_�*`�*a�)b�)c�_�����������������������������������������������������������������������������ZYX�CCB�EED�GFE�IHG�KJI�MLK�NML�PON�RQP�.R�.S�.T�-U�-V�-W�,X�,Z�,[�+\�+]�+^�*_�*`�*a�)b�)c�)d�(e�Cy����������������������������������������������������������������������������������UUT�LKJ�NML�PON�RQP�SRQ�.R�.S�-U�-V�-W�,X�,Y�,Z�+[�+\�+]�*^�*_�*`�)a�)b�)d�(e�(f�(g�'h�5r��������������������������������������������������������������������������������������������ihg�UTS�.S�.T�-U�-V�-W�,X�,Y�,Z�+[�+\�+]�*_�*`�*a�)b�)c�)d�(e�(f�(g�'h�'i�'j�&k�\����������������������������������������������������������������������������������������.S�.T�-U�-V�-W�,X�,Z�,[�+\�+]�+^�*_�*`�*a�)b�)c�)d�(e�(f�(g�'h�'j�'k�&l�&m�&n�%o�i�����������������������������������������������������������������������������.S�-U�-V�-W�,X�,Y�,Z�+[�+\�+]�*^�*_�*`�)a�)b�)d�(e�(f�(g�'h�'i�'j�'k�&l�&m�&n�%o�%p�%q�$r�i������������������������������������������������������������������.T�-U�-V�-W�,X�,Y�,Z�+[�+\�+]�*_�*`�*a�)b�)c�)d�(e�(f�(g�'h�'i�'j�&k�&l�&m�%n�%o�%q�$r�$s�$t�#u�#v�?��v��������������������������������������������������.T�-U�-V�-W�,X�,Z�,[�+\�+]�+^�*_�*`�*a�)b�)c�)d�(e�(f�(g�'h�'j�'k�&l�&m�&n�%o�%p�%q�$r�$s�$t�#u�#v�#w�"x�"y�"z�/��Y������������������������������������-U�-V�-W�,X�,Y�,Z�+[�+\�+]�*^�*_�*`�)a�)b�)c�(e�(f�(g�'h�'i�'j�'k�&l�&m�&n�%o�%p�%q�$r�$s�$t�#u�#v�#w�"x�"z�"{�!|�!}�!~� � � ��<���X��������������-U�-V�-W�,X�,Y�,Z�+[�+\�+]�*_�*`�*a�)b�)c�)d�(e�(f�(g�'h�'i�'j�&k�&l�&m�%n�%o�%q�$r�$s�$t�#u�#v�#w�#x�"y�"z�"{�!|�!}�!~� � �� �� �� �� �� �� ��-U�-V�-W�,X�,Z�,[�+\�+]�+^�*_�*`�*a�)b�)c�)d�(e�(f�(g�'h�'i�'k�&l�&m�&n�%o�%p�%q�$r�$s�$t�#u�#v�#w�"x�"y�"z�!{�!|�!}�!~� � �� �� �� �� �� �� ��-V�-W�,X�,Y�,Z�+[�+\�+]�*^�*_�*`�)a�)b�)c�(e�(f�(g�'h�'i�'j�'k�&l�&m�&n�%o�%p�%q�$r�$s�$t�#u�#v�#w�"x�"y�"{�!|�!}�!~� � � �� �� �� �� �� �� ��-V��-W�,X�,Y�,Z�+[�+\�+]�*_�*`�*a�)b�)c�)d�(e�(f�(g�'h�'i�'j�&k�&l�&m�%n�%o�%q�$r�$s�$t�$u�#v�#w�#x�"y�"z�"{�!|�!}�!~� � �� �� �� �� �� �� �� ���-VЫ-W�,X�,Z�,[�+\�+]�+^�*_�*`�*a�)b�)c�)d�(e�(f�(g�'h�'i�'k�&l�&m�&n�%o�%p�%q�$r�$s�$t�#u�#v�#w�"x�"y�"z�!{�!|�!}�!~� � �� �� �� �� �� �� �� ��-W�',X��,Y�,Z�+[�+\�+]�*^�*_�*`�)a�)b�)c�(e�(f�(g�(h�'i�'j�'k�&l�&m�&n�%o�%p�%q�$r�$s�$t�#u�#v�#w�"x�"y�"z�!|�!}�!~� � � �� �� �� �� �� �� ��� ��*,X�,YӨ,Z��+[�+\�+]�*^�*`�*a�)b�)c�)d�(e�(f�(g�'h�'i�'j�&k�&l�&m�%n�%o�%p�$r�$s�$t�$u�#v�#w�#x�"y�"z�"{�!|�!}�!~� � �� �� �� �� �� ��� �� ����( @ H�����������������	�

�
���������!! �##"�&&%H������������������	
	��

�������� ! �##"�%%$�(('������������������	
	��

��������  �""!�%%$�''&�**)�����������������	�

�
���������""!�$$#�''&�))(�,,+�TUT���������������	�

�
���������!! �$$#�&&%�))(�++*�..-����565��������������	
	��
��������!! �##"�&&%�(('�++*�--,�00/��������������������	
	��

��������  �"#"�%%$�''&�**)�--,�//.�221�������������������	�

�
��������  �""!�$%$�''&�**)�,,+�/.-�110�443����������������������	�

�
���������!"!�$$#�&&%�))(�,,+�..-�10/�332�665������������������������	�

�
���������!! �##"�&&%�(('�++*�.-,�00/�321�554�887���������������������������	
	��

�������� ! �##"�%%$�(('�**)�--,�0/.�221�554�776�::9����������������������������	
	��

��������  �""!�%%$�''&�**)�,,+�//.�210�443�765�998�<<;�����������������������������%&%�	�

�
���������""!�$$#�''&�))(�,,+�..-�110�432�665�987�;;:�>>=����������������������������������WXW�
���������!! �$$#�&&%�))(�++*�..-�00/�332�654�887�;:9�>=<�@@?�/N����������������������������������������������!! �##"�&&%�(('�++*�--,�00/�221�554�876�::9�=<;�@?>�BBA�/O�/P��������������������������������������@@?�����  �"#"�%%$�''&�**)�--,�//.�221�543�776�:98�<<;�??>�BA@�EDC�/O�/Q�.R�p���������������������������������������))(�� �""!�$%$�''&�**)�,,+�/.-�110�443�765�998�<;:�?>=�AA@�DCB�GFE�/P�.Q�.S�-U�Gk�������������������������������������sss�!"!�$$#�&&%�))(�,,+�..-�10/�332�665�987�;;:�>=<�A@?�CCB�FED�IHG�/P�.R�.S�-U�-W�,X����������������������������������������\\\�(('�++*�.-,�00/�321�554�887�;:9�==<�@?>�CBA�EED�HGF�KJI�/Q�.R�.T�-V�-W�,Y�,Z�Fp�����������������������������������������||{�0/.�221�554�776�::9�=<;�??>�BA@�EDC�GGF�JIH�MLK�.Q�.S�-U�-V�,X�,Y�+[�+]�*^�_�����������������������������������������������PON�998�<<;�?>=�BA@�DCB�GFE�JIH�LKJ�ONM�.R�.S�-U�-W�,X�,Z�+[�+]�*_�*`�)b�z���������������������������������������������������YXW�DCB�FED�IHG�LKJ�NML�QPO�.R�.T�-V�-W�,Y�,Z�+\�+^�*_�*a�)b�)d�(f�^�������������������������������������������������������xww�NML�QPO�SRQ�.S�-T�-V�,X�,Y�+[�+]�*^�*`�)a�)c�(e�(f�(h�'i�B~������������������������������������������������������������.S�-U�-W�,X�,Z�+[�+]�*_�*`�)b�)c�(e�(g�'h�'j�&k�&m�%o�N���������������������������������������������������.T�-V�-W�,Y�,Z�+\�+^�*_�*a�)b�)d�(f�(g�'i�'j�&l�&n�%o�%q�$r�$t�?��v����������������������������������-T�-V�,X�,Y�+[�+]�*^�*`�)a�)c�(e�(f�(h�'i�'k�&l�&n�%p�%q�$s�$t�#v�#w�"y�"z�/��Y������������������-U�-W�,X�,Z�+[�+]�*_�*`�)b�)c�(e�(g�'h�'j�&k�&m�%o�%p�$r�$s�#u�#v�#x�"y�"{�!|�!~� � �� �� �� ��-V�-W�,Y�,Z�+\�+^�*_�*a�)b�)d�(f�(g�'i�'j�&l�&n�%o�%q�$r�$t�#u�#w�"x�"z�!{�!}� ~� �� �� �� �� ��-V�,X�,Y�+[�+]�*^�*`�)a�)c�)e�(f�(h�'i�'k�&l�&n�%p�%q�$s�$t�#v�#w�"y�"z�!|�!}� � �� �� �� �� ��-W��,X�,Z�+[�+]�*_�*`�)b�)c�(e�(g�'h�'j�&k�&m�%o�%p�$r�$s�#u�#v�#x�"y�"{�!|�!~� � �� �� �� �� ���-W�;,Y��,Z�+\�+^�*_�*a�)b�)d�(f�(g�'i�'j�&l�&m�%o�%q�$r�$t�#u�#w�"x�"z�!{�!}� ~� �� �� �� �� ��� ��;(  ���������	
	�

����!! �%&%���������	�
���� �$$#�))(�CCC�������	�
�����##"�(('�--,�����565�����������""!�''&�,,+�110������������

�����!! �&&%�++*�00/�654����������565��	
	�

����  �%%$�**)�//.�443�:98��������������FGF�
�����$$#�))(�..-�332�887�>=<�;Y�����������������������##"�(('�--,�221�776�=<;�BA@�/P�;^������������������VVU�""!�''&�,,+�110�665�;;:�A@?�FED�.Q�-T�,X�a��������������������RRQ�0/.�554�::9�@?>�EDC�JJI�.R�-U�,Y�+\�*_�������������������������JJI�DCB�IHG�ONM�.S�-W�,Z�+]�*`�)c�(g�x����������������������������{zy�-T�,X�,[�+^�*a�)d�(h�'k�&n�@�������������������-U�,Y�+\�*_�)b�(e�'i�&l�%o�$r�#u�"x�!{�:��T���y���-V�,Z�+]�*`�)c�(f�'j�&m�%p�$s�#v�"y�!|� � �� ��-Xѽ,[�+^�*a�)d�(h�'k�&n�%q�$t�#w�"z�!}� �� �� ���A�A�A�A�A�A�A�A�A�A�A�A�A�A�A�A!s�using System;
using System.Windows;
using System.Windows.Controls.Primitives;
using System.Windows.Media;
using DevExpress.Data.Filtering;
using DevExpress.Utils;
using DevExpress.Xpf.Core;
using DevExpress.Xpf.Core.Native;
using DevExpress.Xpf.DemoBase;
using DevExpress.Xpf.DemoBase.DemoTesting;
using DevExpress.Xpf.DemoBase.Helpers;
using DevExpress.Xpf.Editors;
using DevExpress.Xpf.Editors.ExpressionEditor;
using DevExpress.Xpf.Grid.Native;

namespace GridDemo.Tests {
    public class GridCheckAllDemosFixture : CheckAllDemosFixture {
        Type[] skipMemoryLeaksCheckModules = new Type[] {
            typeof(PrintTemplates),
            typeof(ContextMenu),
        };
        protected override bool CheckMemoryLeaks(Type moduleTyle) {
            return !EnumeratorHelper.Exists<Type>(skipMemoryLeaksCheckModules, moduleTyle);
        }
    }
    #region GridDemoModulesAccessor
    public class GridDemoModulesAccessor : DemoModulesAccessor<GridDemoModule> {
        public GridDemoModulesAccessor(BaseDemoTestingFixture fixture)
            : base(fixture) {
        }
        public DevExpress.Xpf.Grid.GridControl GridControl { get { return DemoModule.GridControl; } }
        public DevExpress.Xpf.Grid.GridViewBase View { get { return (DevExpress.Xpf.Grid.GridViewBase)GridControl.View; } }
        public DevExpress.Xpf.Grid.TableView TableView { get { return (DevExpress.Xpf.Grid.TableView)View; } }
        public DevExpress.Xpf.Grid.CardView CardView { get { return (DevExpress.Xpf.Grid.CardView)View; } }
        public TableView TableViewModule { get { return (TableView)DemoModule; } }
        public MultiSelection MultiSelectionModule { get { return (MultiSelection)DemoModule; } }
        public CopyPaste CopyPasteModule { get { return (CopyPaste)DemoModule; } }
        public LargeDataSet LargeDataSetModule { get { return (LargeDataSet)DemoModule; } }
        public GridDemo.DragDrop DragDropModule { get { return (GridDemo.DragDrop)DemoModule; } }
        public GridDemo.FilterControl FilterControlModule { get { return (GridDemo.FilterControl)DemoModule; } }
        public GridDemo.HitTest HitTestModule { get { return (GridDemo.HitTest)DemoModule; } }
        public GridDemo.Filtering FilteringModule { get { return (GridDemo.Filtering)DemoModule; } }
  public UnboundColumns UnboundColumnsModule { get { return (UnboundColumns)DemoModule; } }
    }
    #endregion
    public abstract class BaseGridDemoTestingFixture : BaseDemoTestingFixture {
        readonly GridDemoModulesAccessor modulesAccessor;
        public BaseGridDemoTestingFixture() {
            modulesAccessor = new GridDemoModulesAccessor(this);
        }
        public DevExpress.Xpf.Grid.GridControl GridControl { get { return modulesAccessor.GridControl; } }
        public DevExpress.Xpf.Grid.GridViewBase View { get { return modulesAccessor.View; } }
        public DevExpress.Xpf.Grid.TableView TableView { get { return modulesAccessor.TableView; } }
        public DevExpress.Xpf.Grid.CardView CardView { get { return modulesAccessor.CardView; } }
        public TableView TableViewModule { get { return modulesAccessor.TableViewModule; } }
        public MultiSelection MultiSelectionModule { get { return modulesAccessor.MultiSelectionModule; } }
        public CopyPaste CopyPasteModule { get { return modulesAccessor.CopyPasteModule; } }
        public LargeDataSet LargeDataSetModule { get { return modulesAccessor.LargeDataSetModule; } }
        public GridDemo.DragDrop DragDropModule { get { return modulesAccessor.DragDropModule; } }
        public GridDemo.FilterControl FilterControlModule { get { return modulesAccessor.FilterControlModule; } }
        public GridDemo.HitTest HitTestModule { get { return modulesAccessor.HitTestModule; } }
        public GridDemo.Filtering FilteringModule { get { return modulesAccessor.FilteringModule; } }
  public UnboundColumns UnboundColumnsModule { get { return modulesAccessor.UnboundColumnsModule; } }
    }
    public class CheckDemoOptionsFixture : BaseGridDemoTestingFixture {
        protected override void CreateActions() {
            base.CreateActions();
            AddSimpleAction(CreateCheckDemosActions);
        }
        void CreateCheckDemosActions() {
            CreateCheckFilterControlDemoActions();
            CreateCheckHitTestDemoActions();
            CreateCheckUnboundColumnsDemoActions();
            CreateCheckFilteringDemoActions();
            CreateCheckMultiSelectionDemoActions();
            CreateCheckCopyPasteDemoActions();
            CreateCheckTableViewDemoActions();
            CreateCheckFixedColumnsDemoActions();
            CreateSetCurrentDemoActions(null, false);
        }
        bool IsListBox(FrameworkElement element) {
            return element is System.Windows.Controls.ListBox;
        }
        int GetListBoxEditCount(ListBoxEdit listBoxEdit) {
            return ((System.Collections.IList)listBoxEdit.ItemsSource).Count;
        }
        #region UnboundColumns
        void CreateCheckUnboundColumnsDemoActions() {
            AddLoadModuleActions(typeof(GridDemo.UnboundColumns));
            AddSimpleAction(delegate() {
                Assert.AreEqual(0, GridControl.Columns["OrderID"].GroupIndex);
                Assert.AreEqual(1, GridControl.GroupCount);
                Assert.IsTrue(GridControl.IsGroupRowExpanded(-1));
                Assert.IsTrue(GridControl.IsGroupRowExpanded(-2));
                Assert.IsTrue(GridControl.IsGroupRowExpanded(-3));
                Assert.IsTrue(UnboundColumnsModule.showExpressionEditorButton.IsEnabled);
                Assert.IsTrue(GridControl.Columns["Total"].AllowUnboundExpressionEditor);
                Assert.IsTrue(GridControl.Columns["DiscountAmount"].AllowUnboundExpressionEditor);
                Assert.AreEqual(3, UnboundColumnsModule.columnsList.Items.Count);

                System.Windows.Controls.ListBox listBox;
                listBox = (System.Windows.Controls.ListBox)LayoutHelper.FindElement(UnboundColumnsModule.columnsList, IsListBox);

                Assert.AreEqual("Discount Amount", ((System.Windows.Controls.ListBoxItem)listBox.ItemContainerGenerator.ContainerFromIndex(0)).Content);
                Assert.AreEqual("Total", ((System.Windows.Controls.ListBoxItem)listBox.ItemContainerGenerator.ContainerFromIndex(1)).Content);
                Assert.AreEqual("Total Scale", ((System.Windows.Controls.ListBoxItem)listBox.ItemContainerGenerator.ContainerFromIndex(2)).Content);
                Assert.AreEqual("DiscountAmount", ((System.Windows.Controls.ListBoxItem)listBox.ItemContainerGenerator.ContainerFromIndex(0)).Tag);
                Assert.AreEqual("Total", ((System.Windows.Controls.ListBoxItem)listBox.ItemContainerGenerator.ContainerFromIndex(1)).Tag);
                Assert.AreEqual("TotalScale", ((System.Windows.Controls.ListBoxItem)listBox.ItemContainerGenerator.ContainerFromIndex(2)).Tag);

                Assert.IsNull(LayoutHelper.FindElementByName(View.GetCellElementByRowHandleAndColumn(3, GridControl.Columns["Total"]), "arrow"));
                Assert.IsNotNull(LayoutHelper.FindElementByName(View.GetCellElementByRowHandleAndColumn(4, GridControl.Columns["Total"]), "arrow"));
                Assert.AreEqual((decimal)0.0, GridControl.GetCellValue(0, GridControl.Columns["DiscountAmount"]));
                Assert.AreEqual((decimal)168.0, GridControl.GetCellValue(0, GridControl.Columns["Total"]));
                Assert.AreEqual((decimal)0.4, GridControl.GetCellValue(0, GridControl.Columns["TotalScale"]));
                Assert.IsTrue(Math.Abs((double)223.0 - Convert.ToDouble(GridControl.GetCellValue(6, GridControl.Columns["DiscountAmount"]))) < 0.001);
                Assert.IsTrue(Math.Abs((double)1261.4 - Convert.ToDouble(GridControl.GetCellValue(6, GridControl.Columns["Total"]))) < 0.001);
                Assert.IsTrue(Math.Abs((double)0.7614 - Convert.ToDouble(GridControl.GetCellValue(6, GridControl.Columns["TotalScale"]))) < 0.001);

                AssertShowExpressionEditor("Round([UnitPrice] * [Quantity] - [Total])");
                UnboundColumnsModule.columnsList.SelectedIndex = 1;
                UpdateLayoutAndDoEvents();
                AssertShowExpressionEditor("([UnitPrice] * [Quantity]) * (1 - [Discount])");
                UnboundColumnsModule.columnsList.SelectedIndex = 2;
                UpdateLayoutAndDoEvents();
                AssertShowExpressionEditor("Iif([Total] < 1000, 0.4, Min((0.5 + ([Total] - 1000) / 1000), 1.2))");

                GridControl.Columns["DiscountAmount"].UnboundExpression = "[Unit Price] * [Quantity] * (1 - [Discount])+[Discount][[Discount]]";
                UpdateLayoutAndDoEvents();
                Assert.AreEqual(DevExpress.Data.UnboundErrorObject.Value, GridControl.GetCellValue(0, GridControl.Columns["DiscountAmount"]));
            });
        }
        ExpressionEditorControl expressionEditorControl = null;
        void AssertShowExpressionEditor(string expectedExpression) {
            DevExpress.Xpf.Grid.UnboundExpressionEditorEventHandler handler = delegate(object sender, DevExpress.Xpf.Grid.UnboundExpressionEditorEventArgs e) {
                expressionEditorControl = e.ExpressionEditorControl;
            };
            View.UnboundExpressionEditorCreated += handler;
            try {
                UIAutomationActions.ClickButton(UnboundColumnsModule.showExpressionEditorButton);
                UpdateLayoutAndDoEvents();
                Assert.IsTrue(expressionEditorControl.IsVisible);
                Assert.AreEqual(expectedExpression, expressionEditorControl.Expression);
                UIAutomationActions.ClickButton(LayoutHelper.FindParentObject<DialogControl>(expressionEditorControl).CancelButton);
                UpdateLayoutAndDoEvents();
                Assert.IsFalse(expressionEditorControl.IsVisible);
                expressionEditorControl = null;
            } finally {
                View.UnboundExpressionEditorCreated -= handler;
            }
        }
        #endregion
    #region hit test
        bool IsGroupGridRow(FrameworkElement element) {
            return element is DevExpress.Xpf.Grid.GroupGridRow;
        }
        void CreateCheckHitTestDemoActions() {
            AddLoadModuleActions(typeof(GridDemo.HitTest));
            AddSimpleAction(delegate() {
                Assert.IsTrue(HitTestModule.showHitInfoCheckEdit.IsChecked.Value);
                Assert.AreEqual(0, HitTestModule.viewsListBox.SelectedIndex);
                Assert.AreEqual(GridControl, HitTestModule.hitInfoPopup.PlacementTarget);
                Assert.AreEqual(PlacementMode.Mouse, HitTestModule.hitInfoPopup.Placement);
                MouseActions.MouseMove(GridControl, -5, -5);
                Assert.IsFalse(HitTestModule.hitInfoPopup.IsOpen);
                MouseActions.MouseMove(GridControl, 5, 5);
                Assert.IsTrue(HitTestModule.hitInfoPopup.IsOpen);
                Assert.AreEqual(0d, HitTestModule.hitInfoPopup.HorizontalOffset);
                Assert.AreEqual(0d, HitTestModule.hitInfoPopup.VerticalOffset);

                EditorsActions.ToggleCheckEdit(HitTestModule.showHitInfoCheckEdit);
                Assert.IsFalse(HitTestModule.hitInfoPopup.IsOpen);
                EditorsActions.ToggleCheckEdit(HitTestModule.showHitInfoCheckEdit);
                Assert.IsTrue(HitTestModule.hitInfoPopup.IsOpen);

                MouseActions.LeftMouseDown(GridControlHelper.GetColumnHeaderElements(GridControl, GridControl.Columns[0])[0], 5, 5);
                MouseActions.MouseMove(GridControlHelper.GetColumnHeaderElements(GridControl, GridControl.Columns[0])[0], 25, 5);
                Assert.IsFalse(HitTestModule.hitInfoPopup.IsOpen);
                MouseActions.LeftMouseUp(GridControlHelper.GetColumnHeaderElements(GridControl, GridControl.Columns[0])[0], 5, 5);
                Assert.IsTrue(HitTestModule.hitInfoPopup.IsOpen);

                TableView.ShowColumnChooser();
                UpdateLayoutAndDoEvents();
                Assert.IsFalse(HitTestModule.hitInfoPopup.IsOpen);
                TableView.HideColumnChooser();
                UpdateLayoutAndDoEvents();
                Assert.IsTrue(HitTestModule.hitInfoPopup.IsOpen);

                Assert.AreEqual(4, HitTestModule.hitIfoItemsControl.Items.Count);
                Assert.AreEqual("HitTest", GetHitInfoNameTextControl(0).NameValue);
                Assert.AreEqual("ColumnHeader", GetHitInfoNameTextControl(0).TextValue);
                Assert.AreEqual("Column", GetHitInfoNameTextControl(1).NameValue);
                Assert.AreEqual("ID", GetHitInfoNameTextControl(1).TextValue);
                Assert.AreEqual("RowHandle", GetHitInfoNameTextControl(2).NameValue);
                Assert.AreEqual("No row", GetHitInfoNameTextControl(2).TextValue);
                Assert.AreEqual("CellValue", GetHitInfoNameTextControl(3).NameValue);
                Assert.AreEqual("", GetHitInfoNameTextControl(3).TextValue);

                MouseActions.MouseMove(LayoutHelper.FindElementByName(GridControl, "PART_NewItemRow"), 35, 5);
                Assert.AreEqual(4, HitTestModule.hitIfoItemsControl.Items.Count);
                Assert.AreEqual("New Item Row", GetHitInfoNameTextControl(2).TextValue);

                MouseActions.MouseMove(LayoutHelper.FindElementByName(GridControl, "PART_FilterRow"), 35, 5);
                Assert.AreEqual(4, HitTestModule.hitIfoItemsControl.Items.Count);
                Assert.AreEqual("Auto Filter Row", GetHitInfoNameTextControl(2).TextValue);

                MouseActions.MouseMove(View.GetCellElementByRowHandleAndColumn(0, GridControl.Columns[0]), 35, 5);
                Assert.AreEqual(4, HitTestModule.hitIfoItemsControl.Items.Count);
                Assert.AreEqual("0 (data row)", GetHitInfoNameTextControl(2).TextValue);
                Assert.AreEqual("10248", GetHitInfoNameTextControl(3).TextValue);

                AssertAdditionalElements();

                MouseActions.MouseMove(LayoutHelper.FindElementByName(LayoutHelper.FindElement(GridControl, IsGroupGridRow), "PART_Indicator"), 5, 5);
                Assert.AreEqual(5, HitTestModule.hitIfoItemsControl.Items.Count);
                Assert.AreEqual("RowIndicatorState", GetHitInfoNameTextControl(4).NameValue);
                Assert.AreEqual("Focused", GetHitInfoNameTextControl(4).TextValue);

                HitTestModule.viewsListBox.SelectedIndex = 1;
                CardView.CardLayout = DevExpress.Xpf.Grid.CardLayout.Rows;
                UpdateLayoutAndDoEvents();
                Assert.IsNotNull(CardView);
                AssertAdditionalElements();
            });
        }

        private void AssertAdditionalElements() {
            GridControl.Columns[0].GroupIndex = 0;
            UpdateLayoutAndDoEvents();
            MouseActions.MouseMove(View.GetRowElementByRowHandle(-1), View.GetRowElementByRowHandle(-1).ActualWidth / 2, View.GetRowElementByRowHandle(-1).ActualHeight / 2);
            Assert.AreEqual(4, HitTestModule.hitIfoItemsControl.Items.Count);
            Assert.AreEqual("-1 (group row)", GetHitInfoNameTextControl(2).TextValue);
            Assert.AreEqual(null, GetHitInfoNameTextControl(3).TextValue);

            MouseActions.MouseMove(LayoutHelper.FindElement(View.GetRowElementByRowHandle(-1), element => (string)element.GetValue(System.Windows.Controls.TextBlock.TextProperty) == "ID: 10248"), 5, 5);
            Assert.AreEqual(5, HitTestModule.hitIfoItemsControl.Items.Count);
            Assert.AreEqual("GroupValue", GetHitInfoNameTextControl(4).NameValue);
            Assert.AreEqual("OrderID: 10248", GetHitInfoNameTextControl(4).TextValue);

            MouseActions.MouseMove(LayoutHelper.FindElement(View.GetRowElementByRowHandle(-1), element => (string)element.GetValue(System.Windows.Controls.TextBlock.TextProperty) == "Count=3"), 5, 5);
            Assert.AreEqual(5, HitTestModule.hitIfoItemsControl.Items.Count);
            Assert.AreEqual("GroupSummary", GetHitInfoNameTextControl(4).NameValue);
            Assert.AreEqual("Count=3", GetHitInfoNameTextControl(4).TextValue);

            GridControl.ClearGrouping();
            UpdateLayoutAndDoEvents();
            MouseActions.MouseMove(LayoutHelper.FindElement(View, element => (string)element.GetValue(System.Windows.Controls.TextBlock.TextProperty) == "Count=2155"), 5, 5);
            Assert.AreEqual(4, HitTestModule.hitIfoItemsControl.Items.Count);
            Assert.AreEqual("FixedTotalSummary", GetHitInfoNameTextControl(3).NameValue);
            Assert.AreEqual("Count=2155", GetHitInfoNameTextControl(3).TextValue);
        }
        NameTextControl GetHitInfoNameTextControl(int intdex) {
            return (NameTextControl)VisualTreeHelper.GetChild(HitTestModule.hitIfoItemsControl.ItemContainerGenerator.ContainerFromIndex(intdex), 0);
        }
    #endregion
    #region drag and drop
    #endregion
    #region table view
        void CreateCheckTableViewDemoActions() {
            AddLoadModuleActions(typeof(TableView));
            AddSimpleAction(delegate() {
                Assert.IsTrue(TableView.AutoWidth);
                Assert.IsTrue(TableView.AllowSorting);
                Assert.IsTrue(TableView.AllowGrouping);
                Assert.IsTrue(TableView.AllowColumnMoving);
                Assert.IsTrue(TableView.AllowResizing);
                Assert.IsTrue(TableView.AllowBestFit);
                Assert.IsTrue(TableView.ShowHorizontalLines);
                Assert.IsTrue(TableView.ShowVerticalLines);

                EditorsActions.ToggleCheckEdit(TableViewModule.autoWidthCheckEdit);
                UpdateLayoutAndDoEvents();
                Assert.IsFalse(TableView.AutoWidth);

                EditorsActions.ToggleCheckEdit(TableViewModule.allowSortingCheckEdit);
                UpdateLayoutAndDoEvents();
                Assert.IsFalse(TableView.AllowSorting);
                Assert.IsFalse(GridControl.Columns["OrderID"].ActualAllowSorting);
                Assert.IsFalse(GridControl.Columns["OrderID"].ActualAllowGrouping);

                EditorsActions.ToggleCheckEdit(TableViewModule.allowSortingCheckEdit);
                EditorsActions.ToggleCheckEdit(TableViewModule.allowGroupingCheckEdit);
                UpdateLayoutAndDoEvents();
                Assert.IsFalse(TableView.AllowGrouping);
                Assert.IsTrue(GridControl.Columns["OrderID"].ActualAllowSorting);
                Assert.IsFalse(GridControl.Columns["OrderID"].ActualAllowGrouping);

                EditorsActions.ToggleCheckEdit(TableViewModule.allowMovingCheckEdit);
                UpdateLayoutAndDoEvents();
                Assert.IsFalse(TableView.AllowColumnMoving);
                Assert.IsFalse(GridControl.Columns["OrderID"].ActualAllowMoving);

                EditorsActions.ToggleCheckEdit(TableViewModule.allowResizingCheckEdit);
                UpdateLayoutAndDoEvents();
                Assert.IsFalse(TableView.AllowResizing);
                Assert.IsFalse(GridControl.Columns["OrderID"].ActualAllowResizing);

                EditorsActions.ToggleCheckEdit(TableViewModule.allowBestFitCheckEdit);
                UpdateLayoutAndDoEvents();
                Assert.IsFalse(TableView.AllowBestFit);

                EditorsActions.ToggleCheckEdit(TableViewModule.showHorizontalLinesCheckEdit);
                UpdateLayoutAndDoEvents();
                Assert.IsFalse(TableView.ShowHorizontalLines);

                EditorsActions.ToggleCheckEdit(TableViewModule.showVerticalLinesCheckEdit);
                UpdateLayoutAndDoEvents();
                Assert.IsFalse(TableView.ShowVerticalLines);

                Assert.AreEqual(DevExpress.Xpf.Grid.GridViewNavigationStyle.Row, TableViewModule.NavigationStyleComboBox.SelectedItem);
                Assert.AreEqual(DevExpress.Xpf.Grid.GridViewNavigationStyle.Row, View.NavigationStyle);
                TableViewModule.NavigationStyleComboBox.SelectedItem = DevExpress.Xpf.Grid.GridViewNavigationStyle.Cell;
                UpdateLayoutAndDoEvents();
                Assert.AreEqual(DevExpress.Xpf.Grid.GridViewNavigationStyle.Cell, View.NavigationStyle);
                TableViewModule.NavigationStyleComboBox.SelectedItem = DevExpress.Xpf.Grid.GridViewNavigationStyle.None;
                UpdateLayoutAndDoEvents();
                Assert.AreEqual(DevExpress.Xpf.Grid.GridViewNavigationStyle.None, View.NavigationStyle);
            });
        }
    #endregion
    #region Multi-Selection
        void CreateCheckMultiSelectionDemoActions() {
            AddLoadModuleActions(typeof(MultiSelection));
            AddSimpleAction(delegate() {
                Assert.AreEqual(GridControl.View, TableView);
                Assert.AreEqual(DevExpress.Xpf.Grid.GridViewNavigationStyle.Cell, TableView.NavigationStyle);
                AssertMuliSelection(TableView);
                MultiSelectionModule.viewsListBox.SelectedIndex = 1;
                UpdateLayoutAndDoEvents();
                Assert.AreEqual(GridControl.View, CardView);
                Assert.AreEqual(DevExpress.Xpf.Grid.GridViewNavigationStyle.Row, CardView.NavigationStyle);
                GridControl.SelectItem(0);
                AssertMuliSelection(CardView);
            });
        }
        void AssertMuliSelection(DevExpress.Xpf.Grid.GridViewBase gridView) {
            AssertMultiSelectMode(gridView, true);

            EditorsActions.ToggleCheckEdit(MultiSelectionModule.enableMultiSelectCheckEdit);
            UpdateLayoutAndDoEvents();
            AssertMultiSelectMode(gridView, false);
            Assert.IsFalse(MultiSelectionModule.ProductsMultiSelectionOptionsControl.IsEnabled);
            Assert.IsFalse(MultiSelectionModule.PriceMultiSelectionOptionsControl.IsEnabled);
            EditorsActions.ToggleCheckEdit(MultiSelectionModule.enableMultiSelectCheckEdit);
            UpdateLayoutAndDoEvents();
            AssertMultiSelectMode(gridView, true);
            Assert.IsTrue(MultiSelectionModule.ProductsMultiSelectionOptionsControl.IsEnabled);
            Assert.IsTrue(MultiSelectionModule.PriceMultiSelectionOptionsControl.IsEnabled);

            Assert.AreEqual(77, ((System.Data.DataView)((ComboBoxEdit)MultiSelectionModule.ProductsMultiSelectionOptionsControl.comboBoxControl).ItemsSource).Count);
            Assert.AreEqual(1, gridView.Grid.SelectedItems.Count);

            UIAutomationActions.ClickButton(MultiSelectionModule.ProductsMultiSelectionOptionsControl.SelectButton);
            UpdateLayoutAndDoEvents();
            Assert.AreEqual(39, gridView.Grid.SelectedItems.Count);
            Assert.AreEqual(39, GetListBoxEditCount(MultiSelectionModule.SelectionRowsListBox));

            UIAutomationActions.ClickButton(MultiSelectionModule.ProductsMultiSelectionOptionsControl.UnselectButton);
            UpdateLayoutAndDoEvents();
            Assert.AreEqual(1, gridView.Grid.SelectedItems.Count);
            Assert.AreEqual(1, GetListBoxEditCount(MultiSelectionModule.SelectionRowsListBox));

            UIAutomationActions.ClickButton(MultiSelectionModule.ProductsMultiSelectionOptionsControl.ReselectButton);
            UpdateLayoutAndDoEvents();
            Assert.AreEqual(38, gridView.Grid.SelectedItems.Count);
            Assert.AreEqual(38, GetListBoxEditCount(MultiSelectionModule.SelectionRowsListBox));

            gridView.Grid.UnselectAll();
            gridView.Grid.SelectRange(0, 3);

            Assert.AreEqual("Grand Total=${0:N}", gridView.VisibleColumns[4].TotalSummaries[0].Item.DisplayFormat);
            Assert.AreEqual(Convert.ToString(607.4, System.Globalization.CultureInfo.CurrentCulture), gridView.VisibleColumns[4].TotalSummaries[0].Value.ToString());
            GridControl.UnselectAll();

            int count = ((MultiSelectionModule.PriceMultiSelectionOptionsControl.comboBoxControl.ItemsSource) as System.Collections.Generic.List<Range>).Count;
            Assert.AreEqual(9, count);
            for(int i = 0; i < count; i++) {
                MultiSelectionModule.PriceMultiSelectionOptionsControl.comboBoxControl.SelectedIndex = i;
                UIAutomationActions.ClickButton(MultiSelectionModule.PriceMultiSelectionOptionsControl.SelectButton);
                UpdateLayoutAndDoEvents();
            }
            Assert.AreEqual(GridControl.VisibleRowCount, gridView.Grid.SelectedItems.Count);
            GridControl.UnselectAll();

            GridControl.GroupBy("OrderID");
            UpdateLayoutAndDoEvents();
            GridControl.SelectItem(0);
            GridControl.SelectItem(10);
            Assert.AreEqual("Grand Total=${0:N}", ((DevExpress.Xpf.Grid.GroupRowData)gridView.RootRowsContainer.Items[0]).GroupSummaryData[0].SummaryItem.DisplayFormat);
            Assert.AreEqual(168, Convert.ToInt32(((DevExpress.Xpf.Grid.GroupRowData)gridView.RootRowsContainer.Items[0]).GroupSummaryData[0].SummaryValue));
            Assert.AreEqual(336, Convert.ToInt32(((DevExpress.Xpf.Grid.GroupRowData)gridView.RootRowsContainer.Items[3]).GroupSummaryData[0].SummaryValue));
            Assert.AreEqual(504, Convert.ToInt32(gridView.VisibleColumns[4].TotalSummaries[0].Value));
            GridControl.ClearGrouping();
            GridControl.UnselectAll();
        }
        void AssertMultiSelectMode(DevExpress.Xpf.Grid.GridViewBase view, bool isMultiSelect){
            Assert.AreEqual(isMultiSelect ? DevExpress.Xpf.Grid.MultiSelectMode.Row : DevExpress.Xpf.Grid.MultiSelectMode.None, view.DataControl.SelectionMode);
        }
    #endregion
    #region Copy Paste
        void CreateCheckCopyPasteDemoActions() {
            AddLoadModuleActions(typeof(CopyPaste));
            AddSimpleAction(delegate() {
                Assert.IsTrue(CopyPasteModule.firstGrid.ClipboardCopyMode != DevExpress.Xpf.Grid.ClipboardCopyMode.None);
                Assert.IsTrue(CopyPasteModule.secondGrid.ClipboardCopyMode != DevExpress.Xpf.Grid.ClipboardCopyMode.None);
                EditorsActions.ToggleCheckEdit(CopyPasteModule.allowCopyingtoClipboardCheckEdit);
                UpdateLayoutAndDoEvents();
                Assert.IsTrue(CopyPasteModule.firstGrid.ClipboardCopyMode == DevExpress.Xpf.Grid.ClipboardCopyMode.None);
                Assert.IsTrue(CopyPasteModule.secondGrid.ClipboardCopyMode == DevExpress.Xpf.Grid.ClipboardCopyMode.None);
                EditorsActions.ToggleCheckEdit(CopyPasteModule.allowCopyingtoClipboardCheckEdit);
                UpdateLayoutAndDoEvents();
                AssertGridsAndButtonState(FocusedGrid.None, false, false, false, false);

                Assert.AreEqual(10, CopyPasteModule.firstGrid.VisibleRowCount);
                Assert.AreEqual(0, CopyPasteModule.secondGrid.VisibleRowCount);

                Assert.AreEqual(0, CopyPasteModule.CopyPasteDemoTabControl.SelectedIndex);

                ClickOnGrid(CopyPasteModule.firstGrid);
                CopyPasteModule.firstGrid.SelectRange(1, 4);
                UpdateLayoutAndDoEvents();
                AssertGridsAndButtonState(FocusedGrid.First, true, true, false, true);

                Assert.AreEqual(0, CopyPasteModule.PasteRule.SelectedIndex);
                UIAutomationActions.ClickButton(CopyPasteModule.CopyButton);
                UpdateLayoutAndDoEvents();
                ClickOnGrid(CopyPasteModule.secondGrid);
                UpdateLayoutAndDoEvents();
                AssertGridsAndButtonState(FocusedGrid.Second, false, false, true, false);

                UIAutomationActions.ClickButton(CopyPasteModule.PasteButton);
            });
            AddEventAction(CopyPaste.PasteCompetedEvent, () => DemoBaseTesting.CurrentDemoModule, null, null);
            AddSimpleAction(delegate() {
                Assert.AreEqual(5, CopyPasteModule.secondGrid.VisibleRowCount);
                ClickOnGrid(CopyPasteModule.firstGrid);
                UpdateLayoutAndDoEvents();
                AssertGridsAndButtonState(FocusedGrid.First, true, true, true, true);
                UIAutomationActions.ClickButton(CopyPasteModule.DeleteButton);
                UpdateLayoutAndDoEvents();
                Assert.AreEqual(5, CopyPasteModule.firstGrid.VisibleRowCount);

                CopyPasteModule.CopyPasteDemoTabControl.SelectedIndex = 1;
                UpdateLayoutAndDoEvents();
                CopyPasteModule.textEdit.Focus();
                UpdateLayoutAndDoEvents();
                AssertGridsAndButtonState(FocusedGrid.First, false, false, true, false);

                UIAutomationActions.ClickButton(CopyPasteModule.PasteButton);
                UpdateLayoutAndDoEvents();
                Assert.AreEqual("Id From Sent Hours Active Has Attachment", CopyPasteModule.textEdit.Text.Substring(0, 40));
                CopyPasteModule.textEdit.Select(0, 8);
                UpdateLayoutAndDoEvents();
                CopyPasteModule.textEdit.Focus();
                UpdateLayoutAndDoEvents();
                AssertGridsAndButtonState(FocusedGrid.First, true, true, true, true);
                UIAutomationActions.ClickButton(CopyPasteModule.CutButton);
                UpdateLayoutAndDoEvents();
                Assert.AreEqual("Sent Hours Active Has Attachment", CopyPasteModule.textEdit.Text.Substring(0, 32));
                CopyPasteModule.textEdit.Focus();
                UpdateLayoutAndDoEvents();
                CopyPasteModule.textEdit.CaretIndex = 0;
                UIAutomationActions.ClickButton(CopyPasteModule.PasteButton);
                UpdateLayoutAndDoEvents();
                Assert.AreEqual("Id From Sent Hours Active Has Attachment", CopyPasteModule.textEdit.Text.Substring(0, 40));
                CopyPasteModule.textEdit.SelectAll();
                UpdateLayoutAndDoEvents();
                CopyPasteModule.textEdit.Focus();
                UpdateLayoutAndDoEvents();
                UIAutomationActions.ClickButton(CopyPasteModule.CopyButton);
                UpdateLayoutAndDoEvents();
                CopyPasteModule.textEdit.Focus();
                UpdateLayoutAndDoEvents();
                UIAutomationActions.ClickButton(CopyPasteModule.DeleteButton);
                UpdateLayoutAndDoEvents();
                Assert.AreEqual("", CopyPasteModule.textEdit.Text);
                CopyPasteModule.textEdit.Focus();
                UpdateLayoutAndDoEvents();
                UIAutomationActions.ClickButton(CopyPasteModule.PasteButton);
                UpdateLayoutAndDoEvents();
                Assert.AreEqual("Id From Sent Hours Active Has Attachment", CopyPasteModule.textEdit.Text.Substring(0, 40));

                CopyPasteModule.CopyPasteDemoTabControl.SelectedIndex = 0;
                UpdateLayoutAndDoEvents();
                CopyPasteModule.secondGrid.UnselectAll();
                CopyPasteModule.secondGrid.SelectItem(2);
                UpdateLayoutAndDoEvents();
                ((GridDemo.CopyPasteOutlookData)((DevExpress.Xpf.Grid.GridViewBase)CopyPasteModule.secondGrid.View).Grid.SelectedItems[0]).From = "QWERTY";
                ClickOnGrid(CopyPasteModule.secondGrid);
                UpdateLayoutAndDoEvents();
                UIAutomationActions.ClickButton(CopyPasteModule.CutButton);
                UpdateLayoutAndDoEvents();
                Assert.AreEqual(4, CopyPasteModule.secondGrid.VisibleRowCount);

                CopyPasteModule.firstGrid.View.FocusedRowHandle = 2;
                ClickOnGrid(CopyPasteModule.firstGrid);
                UpdateLayoutAndDoEvents();
                UIAutomationActions.ClickButton(CopyPasteModule.PasteButton);
            });
            AddEventAction(CopyPaste.PasteCompetedEvent, () => DemoBaseTesting.CurrentDemoModule, null, null);
            AddSimpleAction(delegate() {
                Assert.AreEqual(6, CopyPasteModule.firstGrid.VisibleRowCount);
                Assert.AreEqual("QWERTY", ((GridDemo.CopyPasteOutlookData)CopyPasteModule.firstGrid.GetRow(3)).From);

                CopyPasteModule.PasteRule.SelectedIndex = 1;
                UIAutomationActions.ClickButton(CopyPasteModule.PasteButton);
            });
            AddEventAction(CopyPaste.PasteCompetedEvent, () => DemoBaseTesting.CurrentDemoModule, null, null);
            AddSimpleAction(delegate() {
                Assert.AreEqual(7, CopyPasteModule.firstGrid.VisibleRowCount);
                Assert.AreEqual("QWERTY", ((GridDemo.CopyPasteOutlookData)CopyPasteModule.firstGrid.GetRow(6)).From);
            });
        }
        void ClickOnGrid(DevExpress.Xpf.Grid.GridControl grid) {
            MouseActions.LeftMouseDown(grid.View, 2, 2);
            MouseActions.LeftMouseUp(grid.View, 2, 2);
        }
        void AssertGridsAndButtonState(FocusedGrid focusedGrid, bool copyBtn, bool cutBtn, bool pasteBtn, bool delBtn) {
            Assert.AreEqual(focusedGrid, CopyPasteModule.FocusedGrid);
            Assert.AreEqual(copyBtn, CopyPasteModule.CopyButton.IsEnabled);
            Assert.AreEqual(cutBtn, CopyPasteModule.CutButton.IsEnabled);
            Assert.AreEqual(pasteBtn, CopyPasteModule.PasteButton.IsEnabled);
            Assert.AreEqual(delBtn, CopyPasteModule.DeleteButton.IsEnabled);
        }
    #endregion
    #region Filter Control
        void CreateCheckFilterControlDemoActions() {
            AddLoadModuleActions(typeof(FilterControl));
            AddSimpleAction(delegate() {
                Assert.IsTrue(View.AllowFilterEditor);
                CriteriaOperator filterCriteria = new BinaryOperator("OrderID", 10248, BinaryOperatorType.Equal);
                Assert.AreEqual(filterCriteria, FilterControlModule.filterEditor.FilterCriteria);
                Assert.AreEqual(filterCriteria, GridControl.FilterCriteria);
                Assert.AreEqual(false, FilterControlModule.showGroupCommandsIcon.IsChecked);
                Assert.AreEqual(false, FilterControlModule.showOperandTypeIcon.IsChecked);
                Assert.AreEqual(true, FilterControlModule.showToolTips.IsChecked);
                Assert.IsFalse(FilterControlModule.filterEditor.ShowGroupCommandsIcon);
                Assert.IsFalse(FilterControlModule.filterEditor.ShowOperandTypeIcon);
                Assert.IsTrue(FilterControlModule.filterEditor.ShowToolTips);
                EditorsActions.ToggleCheckEdit(FilterControlModule.showGroupCommandsIcon);
                UpdateLayoutAndDoEvents();
                Assert.IsTrue(FilterControlModule.filterEditor.ShowGroupCommandsIcon);
                EditorsActions.ToggleCheckEdit(FilterControlModule.showOperandTypeIcon);
                UpdateLayoutAndDoEvents();
                Assert.IsTrue(FilterControlModule.filterEditor.ShowOperandTypeIcon);
                EditorsActions.ToggleCheckEdit(FilterControlModule.showToolTips);
                UpdateLayoutAndDoEvents();
                Assert.IsFalse(FilterControlModule.filterEditor.ShowToolTips);

                filterCriteria = new BinaryOperator("OrderID", 10249, BinaryOperatorType.Equal);
                FilterControlModule.filterEditor.FilterCriteria = filterCriteria;
                UpdateLayoutAndDoEvents();
                UIAutomationActions.ClickButton(FilterControlModule.ApplyFilterButton);
                Assert.AreEqual(filterCriteria, GridControl.FilterCriteria);
                filterCriteria = new BinaryOperator("OrderID", 10250, BinaryOperatorType.Equal);
                GridControl.FilterCriteria = filterCriteria;
                UpdateLayoutAndDoEvents();
                Assert.AreEqual(filterCriteria, FilterControlModule.filterEditor.FilterCriteria);

                View.FilterEditorCreated += new DevExpress.Xpf.Grid.FilterEditorEventHandler(View_FilterEditorCreated);
                View.ShowFilterEditor(null);
                UpdateLayoutAndDoEvents();
                Assert.IsNotNull(FilterEditorFromGrid);
                Assert.IsTrue(FilterEditorFromGrid.ShowGroupCommandsIcon);
                Assert.IsTrue(FilterEditorFromGrid.ShowOperandTypeIcon);
                Assert.IsFalse(FilterEditorFromGrid.ShowToolTips);

                DialogControl filterDialogControl = LayoutHelper.FindParentObject<DialogControl>(FilterEditorFromGrid);
                Assert.IsNotNull(filterDialogControl);
                UIAutomationActions.ClickButton(filterDialogControl.CancelButton);
            });
        }
        DevExpress.Xpf.Editors.Filtering.FilterControl FilterEditorFromGrid = null;
        void View_FilterEditorCreated(object sender, DevExpress.Xpf.Grid.FilterEditorEventArgs e) {
            FilterEditorFromGrid = e.FilterControl;
        }
    #endregion
    #region Filtering
        void CreateCheckFilteringDemoActions() {
            AddLoadModuleActions(typeof(Filtering));
            AddSimpleAction(delegate() {
                Assert.IsTrue((bool)FilteringModule.allowFilterEditor.IsChecked);
                Assert.IsTrue((bool)FilteringModule.allowFilteringCheckEdit.IsChecked);
                Assert.AreEqual(0, FilteringModule.showFilterPanelModeListBox.SelectedIndex);
                Assert.AreEqual(0, FilteringModule.viewsListBox.SelectedIndex);
                Assert.AreEqual(DevExpress.Xpf.Grid.ShowFilterPanelMode.Default, View.ShowFilterPanelMode);
                FilteringModule.showFilterPanelModeListBox.SelectedIndex = 1;
                UpdateLayoutAndDoEvents();
                Assert.AreEqual(DevExpress.Xpf.Grid.ShowFilterPanelMode.ShowAlways, View.ShowFilterPanelMode);

                DevExpress.Xpf.Grid.GridColumn column = FilteringModule.colCountry;
                Assert.AreEqual(DefaultBoolean.Default, column.AllowColumnFiltering);

                Assert.AreEqual(DefaultBoolean.Default, column.AllowColumnFiltering);
                CheckEdit updateImmediatelyCheckBox = FilteringModule.immediateUpdateCountryColumnFilterCheckEdit;
                Assert.AreEqual(true, updateImmediatelyCheckBox.IsChecked);
                Assert.AreEqual(true, column.ImmediateUpdateColumnFilter);
                EditorsActions.ToggleCheckEdit(updateImmediatelyCheckBox);
                Assert.AreEqual(false, column.ImmediateUpdateColumnFilter);
                EditorsActions.ToggleCheckEdit(updateImmediatelyCheckBox);
                Assert.AreEqual(true, column.ImmediateUpdateColumnFilter);

                FilteringModule.showFilterPanelModeListBox.SelectedIndex = 2;
                UpdateLayoutAndDoEvents();
                Assert.AreEqual(DevExpress.Xpf.Grid.ShowFilterPanelMode.Never, View.ShowFilterPanelMode);
                FilteringModule.viewsListBox.SelectedIndex = 1;
                UpdateLayoutAndDoEvents();
                Assert.AreEqual(typeof(DevExpress.Xpf.Grid.CardView), CardView.GetType());
            });
        }
    #endregion

        void CreateCheckFixedColumnsDemoActions() {
            AddLoadModuleActions(typeof(FixedColumns));
        }
    }
    public class BugFixesFixture : BaseGridDemoTestingFixture {
        protected override void CreateActions() {
            base.CreateActions();
            AddSimpleAction(CreateCheckDemosActions);
        }
        void CreateCheckDemosActions() {
            Create_B144178_Actions();
            CreateSetCurrentDemoActions(null, false);
        }
    #region B144178
        void Create_B144178_Actions() {
            AddLoadModuleActions(typeof(LargeDataSet));
            AddSimpleAction(delegate() {
                AssertPrioritySorting("Priority(7)");
            });
            AddLoadModuleActions(typeof(InplaceEditors));
            AddSimpleAction(delegate() {
                AssertPrioritySorting("Priority");
            });
            AddLoadModuleActions(typeof(AutoFilterRow));
            AddSimpleAction(delegate() {
                AssertPrioritySorting("Priority");
            });
        }

        private void AssertPrioritySorting(string fieldName) {
            GridControl.SortBy(fieldName);
            for(int i = 0; i < 10; i++) {
                Assert.AreEqual(Priority.Low, (Priority)GridControl.GetCellValue(i, fieldName));
                Assert.AreEqual(Priority.High, (Priority)GridControl.GetCellValue(GridControl.VisibleRowCount - 1 - i, fieldName));
            }
        }
        #endregion
    }
}!�MSBAML```����\XPresentationFramework, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35RNWindowsBase, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35WSPresentationCore, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35RNSystem.Xaml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089eaDevExpress.Xpf.DemoBase.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a NumericTextEditDescriptionB<DevExpress.Xpf.DemoBase.DemosHelpers.Grid.ParagraphContainer	Paragraph TextEditDescription ComboBoxEditDescription LookUpEditDescription SearchLookUpEditDescription '#AutoCompleteComboBoxEditDescription SpinEditDescription TrackBarEditDescription ProgressBarEditDescription 	ZoomTrackBarEditDescription  
RangeTrackBarEditDescription CheckEditDescription RegExTextEditDescription 
MemoEditDescription DateEditDescription ListBoxEditDescription ButtonEditDescription PopupCalcEditDescription PasswordBoxEditDescription PopupColorEditDescription PopupImageEditDescription FontEditDescription�D9http://schemas.microsoft.com/winfx/2006/xaml/presentation:x,http://schemas.microsoft.com/winfx/2006/xamlFdxdb;http://schemas.devexpress.com/winfx/2008/xaml/demobase/grid%Y&	&	b&	*&	�&	f&	i&	�&	�&	-&		Q	&	

&	�
&	`&	
�&	�
&	�&	�&	&	C&	&	L&	���.R�.J�.*�.*���$
��Bold"�.�
Text Editor�� – a single line text editor with a numeric mask. Masks provide restricted data input and formatted data output. Numeric masks are the best option when you must restrict input to numeric values. To increase or decrease values, use the CTRL + UP and CTRL + DOWN arrows or the mouse wheel.��.R�.J�.*�.*���$
��Bold"�.�
Text Editor�� – a single line text editor with comprehensive text editing options including, selection and built-in context menu (cut/copy/paste).��.R�.J�.*�.*���$
��Bold"�.�	Combo Box^\ – a simple drop down editor allowing end users to specify values from a pre-defined list.��.R�.J�.*�.*���$
��Bold"�.�
LookUpEditge - a multi-column combo box that provides the lookup functionality, using an embedded DXGrid control.��.R�.J�.*�.*���$
��Bold"�.�SearchLookUpEdit�� - a multi-column combo box that provides the lookup functionality, using an embedded DXGrid control with the Find feature. It allows you to quickly locate records by the text they contain.��.R�.J�.*�.*���$
��Bold"�.�	Combo Box�� – With an integrated Auto Complete option, you can provide the ability for end-users to select items from a drop down list by entering characters within the grid cell. When text is entered into the editor, the control automatically searches for the item within the list and if found, highlights it and enters the value within the data cell.��.R�.J�.*�.*���$
��Bold"�.�	Spin Edit�� – Ships with a built in numeric mask that only allows the entry of numbers within it. The longer spin buttons are pressed, the faster values change.��.R�.J�.*�.*���$
��Bold"�.�	Track Bar�� – Built to present numeric information in an elegant manner, users can specify values by sliding the thumb across the control’s continuous line. Features include the ability to limit the range of values, horizontal and vertical orientation, and customizable position of ticks.��.R�.J�.*�.*���$
��Bold"�.�Progress Bar Edit�� – Used to indicate the progress of lengthy operations. Features include built in content display mode, ability to limit the range of values, display of values as percentages, and indeterminate progress style (marquee).��.R�.J�.*�.*���$
��Bold"�.�Zoom Track Barrp – Much like the track bar introduced in MS Office 2007, this editor gives you extensive data editing options.��.R�.J�.*�.*���$
��Bold"�.�Range Track Bar][ – Allows your end-users to specify a range of values in a straightforward visual manner.��.R�.J�.*�.*���$
��Bold"�.�Check Box Edit} – To better present Boolean values to end-users, the DevExpress WPF Grid allows you to embed a check box editor within it.��.R�.J�.*�.*���$
��Bold"�.�RegEx Mask Edit�� – A single line text editor with extended mask capabilities. Masks provide restricted data input as well as formatted data output. The RegEx mask allows you to construct masks using fully functional regular expressions - providing ultimate flexibility when it comes to data input control.��.R�.J�.*�.*���$
��Bold"�.�	Memo Edit�� – Deliver Memo field display and editing with the Memo Edit control. Features include optional ENTER and TAB key processing, customizable visibility for vertical and horizontal scrollbars, and optional text word-wrapping.��.R�.J�.*�.*���$
��Bold"�.�	Date Edit�� – Easily display and edit Date/Time values via a drop down calendar. Features include built in date/time mask, Windows® Vista style calendar views for easy date navigation and selection.��.R�.J�.*�.*���$
��Bold"�.�
List Box Edit�� – Allows you to display a list of items from which users can select a given value. Features include built in list styles (Native, Checked, Radio), optional item highlighting, and multiple item selection.��.R�.J�.*�.*���$
��Bold"�.�
Button Edit�� – A single line editor allowing you to display an unlimited number of buttons within the edit box. Features include multiple button support, customizable button arrangement, and full mask input support.��.R�.J�.*�.*���$
��Bold"�.�Calculator Edit�� – Allows you to activate a calculator dropdown window for data editing/modification. Features include a Windows® 7 display style, basic math functions, memory operations, keyboard and mouse wheel support, configurable precision and display format.��.R�.J�.*�.*���$
��Bold"�.�
Password Edit�� – Designed to enter and handle password data fields. Features include configurable password characters, maximum length, and input validation.��.R�.J�.*�.*���$
��Bold"�.�
Color Edit�� – End users can select values using the color edit drop down from the RGBA color space. Features include multiple present palettes, configurable palette layout, unlimited custom color palettes, customizable default color, and a localizable UI.��.R�.J�.*�.*���$
��Bold"�.�PopupImageEdit�� – displays an image within a dropdown window. Key features include: Supported Image Formats – JPEG and PNG; Configurable Image Size; Built-in Toolbar; Auto-Sizing Image Popup; Easy Image Loading – clicking within an image editor shows the Open File dialog allowing you to select an image; Custom menu appearance via Menu Templates; Localizable UI.��.R�.J�.*�.*���$
��Bold"�.�
FontEditQO – Displays available fonts and allows an end-user to select a specific font.!�(<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
                    xmlns:dxdb="http://schemas.devexpress.com/winfx/2008/xaml/demobase/grid">
    <ControlTemplate x:Key="NumericTextEditDescription">
        <dxdb:ParagraphContainer>
            <Paragraph>
                <Span FontWeight="Bold">Text Editor</Span> – a single line text editor with a numeric mask. Masks provide restricted data input and formatted data output.  Numeric masks are the best option when you must restrict input to numeric values. To increase or decrease values, use the CTRL + UP and CTRL + DOWN arrows or the mouse wheel.
            </Paragraph>
        </dxdb:ParagraphContainer>
    </ControlTemplate>
    <ControlTemplate x:Key="TextEditDescription">
        <dxdb:ParagraphContainer>
            <Paragraph>
                <Span FontWeight="Bold">Text Editor</Span> – a single line text editor with comprehensive text editing options including, selection and built-in context menu (cut/copy/paste).
            </Paragraph>
        </dxdb:ParagraphContainer>
    </ControlTemplate>
    <ControlTemplate x:Key="ComboBoxEditDescription">
        <dxdb:ParagraphContainer>
            <Paragraph>
                <Span FontWeight="Bold">Combo Box</Span> – a simple drop down editor allowing end users to specify values from a pre-defined list.
            </Paragraph>
        </dxdb:ParagraphContainer>
    </ControlTemplate>
    <ControlTemplate x:Key="LookUpEditDescription">
        <dxdb:ParagraphContainer>
            <Paragraph>
                <Span FontWeight="Bold">LookUpEdit</Span> - a multi-column combo box that provides the lookup functionality, using an embedded DXGrid control.
            </Paragraph>
        </dxdb:ParagraphContainer>
    </ControlTemplate>
    <ControlTemplate x:Key="SearchLookUpEditDescription">
        <dxdb:ParagraphContainer>
            <Paragraph>
                <Span FontWeight="Bold">SearchLookUpEdit</Span> - a multi-column combo box that provides the lookup functionality, using an embedded DXGrid control with the Find feature. It allows you to quickly locate records by the text they contain.
            </Paragraph>
        </dxdb:ParagraphContainer>
    </ControlTemplate>
    <ControlTemplate x:Key="AutoCompleteComboBoxEditDescription">
        <dxdb:ParagraphContainer>
            <Paragraph>
                <Span FontWeight="Bold">Combo Box</Span> – With an integrated Auto Complete option, you can provide the ability for end-users to select items from a drop down list by entering characters within the grid cell. When text is entered into the editor, the control automatically searches for the item within the list and if found, highlights it and enters the value within the data cell.
            </Paragraph>
        </dxdb:ParagraphContainer>
    </ControlTemplate>
    <ControlTemplate x:Key="SpinEditDescription">
        <dxdb:ParagraphContainer>
            <Paragraph>
                <Span FontWeight="Bold">Spin Edit</Span> – Ships with a built in numeric mask that only allows the entry of numbers within it. The longer spin buttons are pressed, the faster values change.
            </Paragraph>
        </dxdb:ParagraphContainer>
    </ControlTemplate>
    <ControlTemplate x:Key="TrackBarEditDescription">
        <dxdb:ParagraphContainer>
            <Paragraph>
                <Span FontWeight="Bold">Track Bar</Span> – Built to present numeric information in an elegant manner, users can specify values by sliding the thumb across the control’s continuous line. Features include the ability to limit the range of values, horizontal and vertical orientation, and customizable position of ticks.
            </Paragraph>
        </dxdb:ParagraphContainer>
    </ControlTemplate>
    <ControlTemplate x:Key="ProgressBarEditDescription">
        <dxdb:ParagraphContainer>
            <Paragraph>
                <Span FontWeight="Bold">Progress Bar Edit</Span> – Used to indicate the progress of lengthy operations. Features include built in content display mode, ability to limit the range of values, display of values as percentages, and indeterminate progress style (marquee).
            </Paragraph>
        </dxdb:ParagraphContainer>
    </ControlTemplate>
    <ControlTemplate x:Key="ZoomTrackBarEditDescription">
        <dxdb:ParagraphContainer>
            <Paragraph>
                <Span FontWeight="Bold">Zoom Track Bar</Span> – Much like the track bar introduced in MS Office 2007, this editor gives you extensive data editing options.
            </Paragraph>
        </dxdb:ParagraphContainer>
    </ControlTemplate>
    <ControlTemplate x:Key="RangeTrackBarEditDescription">
        <dxdb:ParagraphContainer>
            <Paragraph>
                <Span FontWeight="Bold">Range Track Bar</Span> – Allows your end-users to specify a range of values in a straightforward visual manner.
            </Paragraph>
        </dxdb:ParagraphContainer>
    </ControlTemplate>
    <ControlTemplate x:Key="CheckEditDescription">
        <dxdb:ParagraphContainer>
            <Paragraph>
                <Span FontWeight="Bold">Check Box Edit</Span> – To better present Boolean values to end-users, the DevExpress WPF Grid allows you to embed a check box editor within it.
            </Paragraph>
        </dxdb:ParagraphContainer>
    </ControlTemplate>
    <ControlTemplate x:Key="RegExTextEditDescription">
        <dxdb:ParagraphContainer>
            <Paragraph>
                <Span FontWeight="Bold">RegEx Mask Edit</Span> – A single line text editor with extended mask capabilities. Masks provide restricted data input as well as formatted data output. The RegEx mask allows you to construct masks using fully functional regular expressions - providing ultimate flexibility when it comes to data input control.
            </Paragraph>
        </dxdb:ParagraphContainer>
    </ControlTemplate>
    <ControlTemplate x:Key="MemoEditDescription">
        <dxdb:ParagraphContainer>
            <Paragraph>
                <Span FontWeight="Bold">Memo Edit</Span> – Deliver Memo field display and editing with the Memo Edit control.  Features include optional ENTER and TAB key processing, customizable visibility for vertical and horizontal scrollbars, and optional text word-wrapping.
            </Paragraph>
        </dxdb:ParagraphContainer>
    </ControlTemplate>
    <ControlTemplate x:Key="DateEditDescription">
        <dxdb:ParagraphContainer>
            <Paragraph>
                <Span FontWeight="Bold">Date Edit</Span> – Easily display and edit Date/Time values via a drop down calendar. Features include built in date/time mask, Windows® Vista style calendar views for easy date navigation and selection.
            </Paragraph>
        </dxdb:ParagraphContainer>
    </ControlTemplate>
    <ControlTemplate x:Key="ListBoxEditDescription">
        <dxdb:ParagraphContainer>
            <Paragraph>
                <Span FontWeight="Bold">List Box Edit</Span> – Allows you to display a list of items from which users can select a given value. Features include built in list styles (Native, Checked, Radio), optional item highlighting, and multiple item selection.
            </Paragraph>
        </dxdb:ParagraphContainer>
    </ControlTemplate>
    <ControlTemplate x:Key="ButtonEditDescription">
        <dxdb:ParagraphContainer>
            <Paragraph>
                <Span FontWeight="Bold">Button Edit</Span> – A single line editor allowing you to display an unlimited number of buttons within the edit box. Features include multiple button support, customizable button arrangement, and full mask input support.
            </Paragraph>
        </dxdb:ParagraphContainer>
    </ControlTemplate>
    <ControlTemplate x:Key="PopupCalcEditDescription">
        <dxdb:ParagraphContainer>
            <Paragraph>
                <Span FontWeight="Bold">Calculator Edit</Span> – Allows you to activate a calculator dropdown window for data editing/modification. Features include a Windows® 7 display style, basic math functions, memory operations, keyboard and mouse wheel support, configurable precision and display format.
            </Paragraph>
        </dxdb:ParagraphContainer>
    </ControlTemplate>
    <ControlTemplate x:Key="PasswordBoxEditDescription">
        <dxdb:ParagraphContainer>
            <Paragraph>
                <Span FontWeight="Bold">Password Edit</Span> – Designed to enter and handle password data fields. Features include configurable password characters, maximum length, and input validation.
            </Paragraph>
        </dxdb:ParagraphContainer>
    </ControlTemplate>
    <ControlTemplate x:Key="PopupColorEditDescription">
        <dxdb:ParagraphContainer>
            <Paragraph>
                <Span FontWeight="Bold">Color Edit</Span> – End users can select values using the color edit drop down from the RGBA color space. Features include multiple present palettes, configurable palette layout, unlimited custom color palettes, customizable default color, and a localizable UI.
            </Paragraph>
        </dxdb:ParagraphContainer>
    </ControlTemplate>
    <ControlTemplate x:Key="PopupImageEditDescription">
        <dxdb:ParagraphContainer>
            <Paragraph>
                <Span FontWeight="Bold">PopupImageEdit</Span> – displays an image within a dropdown window. Key features include: Supported Image Formats – JPEG and PNG; Configurable Image Size; Built-in Toolbar; Auto-Sizing Image Popup; Easy Image Loading – clicking within an image editor shows the Open File dialog allowing you to select an image; Custom menu appearance via Menu Templates; Localizable UI.
            </Paragraph>
        </dxdb:ParagraphContainer>
    </ControlTemplate>
    <ControlTemplate x:Key="FontEditDescription">
        <dxdb:ParagraphContainer>
            <Paragraph>
                <Span FontWeight="Bold">FontEdit</Span> –  Displays available fonts and allows an end-user to select a specific font.
            </Paragraph>
        </dxdb:ParagraphContainer>
    </ControlTemplate>
</ResourceDictionary>!�MSBAML```����D@GridDemo, Version=13.1.4.0, Culture=neutral, PublicKeyToken=null#clr-namespace:GridDemoGridDemo\XPresentationFramework, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35RNWindowsBase, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35WSPresentationCore, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35RNSystem.Xaml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089a]DevExpress.Xpf.Core.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a�MergedDictionaries
�Source�D9http://schemas.microsoft.com/winfx/2006/xaml/presentation:x,http://schemas.microsoft.com/winfx/2006/xaml;dx2http://schemas.devexpress.com/winfx/2008/xaml/core localclr-namespace:GridDemo�$B</DevExpress.Xpf.DemoBase.v13.1;component/Themes/Generic.xaml?��$E?/GridDemo;component/Controls/ControlStyles/SharedTemplates.xaml?��$;5/GridDemo;component/Controls/ControlStyles/Panel.xaml?��$HB/GridDemo;component/Controls/ControlStyles/InplaceProgressBar.xaml?��$NH/GridDemo;component/Controls/ControlStyles/DemoColumnChooserControl.xaml?��$E?/GridDemo;component/Controls/ControlStyles/NameTextControl.xaml?��$A;/GridDemo;component/Controls/ControlStyles/HintControl.xaml?��$E?/GridDemo;component/Controls/ControlStyles/SummaryComboBox.xaml?�%!`�PNG


IHDR�$q?#'IDATx^�[m�$G~�2~@B�I@1�QHdÜ�H�dD�ACf��F��.����_�+��5�In�$����O"�\��n7��U��a�������>PTw��5=3�<�G�s��:�*��ⰪN%�
Q�ɐ@�9PEb�� ����*z��Y��>�C\��CME�����{��M7�e�_`HG�䘄Ar,��
�Ad�"(ԒPB[I�s�;{v��‹��ǿ�P�
xK`59�&�>:s#�����NAc9�R$!�%��"X[�
�q����dV�1�a�o�>LOO�Df��?O��݊=0���
�Vʶ��`��W8~�&������3��k߃�?�D����\<��x��?��^������"��a�|`߀C��:�,��pG���:���{n����1u>�*ƃ�n��
��>	�:�N�Zcq���^�gN�PZQ�$*��x0�Sg"K��U�΄uVw�v>u�A<��?�;�b̑y�I�!	���<�x	�{)��i_D������iw�_�A�5���U��E�͓��Y�Y���	���D��I,9���Z������\�t�:�I��`�Qk�
tSo���K$�]�_�#J˻�U�Pmx�]X��K�sT�$�NQϜO$TȾžGҡf�"D	y+ �����5QD�n
�1�>�$v������@�N���=�=�5�g��F��JU-�f�|5c\�E'G]�lUa�$�k�7a���ϑt$q�9�P�����
$$�3O("#+�=R��yz.���Ș�܊��=wy���<?@����N�Z��-�,�:�s�*�q�:{LZ�H�&�D�Z�Mw���q^\�/m8��cQd�:�lT�ޏф����]'�X�� �|W:_�j����Y�-�z�d�g~�g�=�Рb����㵚X����߼�} �
�W�[L���vT��{x���=t3�} �v�Md�Pc0̓l�;[�Q��w7���Yq21Y��;����TY�D�ƀ�<� ᬱT�,y|X��mR��m�ɸR�n*[%y��x;�jY5[�q�$g���ױXN�Js��8��[�*F�+!5�R���\�j>�����gkg62\	�{�$��X�%ZD��9���6��o�!!ǁ&�TEL��Ql�w�ՊW�ʸ���r%
|+���	�XD�bm}�x͋ǘ������%x��C�l��q�GDq�F;*���<��LJ��H���Y�K��Jm�h
��$�B�H�)�Y�3�
�aӡ��X@5V�1��V�3��,y����
�B�ʉm����	vW�U�]�Y
jj-LdbR ^�ƅ�����}.��O�ۘP�{����&�<!��c��B1��Dk�b��!�.��F7�ReD3∖%��`2�(Z�I�*
�T�u9�.C�d�
q��
���ɲ��^��hbQd�.
"M����y����B��R�D0!�#*F;'h��5?��af�d蒪J�c�0���Ϲm>B7'
a���/?_{��c.&�~�[�%sr,�>��{��,��5����y_[���mƎ
�Qљ��Ra2`cE��P����2�E��)��TI��Ǣ<V0�pKW���1b���nb��T�`>y�R���"tO
Y��'I4Wn��[q!|������>YQ�r�#1ɞ�T.d��a�����hK95��Tas��h��bi�)�����D&Q:�Y�pc){U�?�O���rfR��E+���a�B��f-��0ط&�{̒�7���]�$���U�L��|�_;]3+X1hs�G������C/���)����*���͉����8�6�x�0�}�sǰ�����c��!��Ǿ�"�\z�;6]�Qp���IŁ~vCc������hG�����g?
������Gc
w�gν1��I�B��P k���D�����?�(ɨ�3��ױ�W�: I��Bl�Z��#�y>���y*��@V}[��v�1�1����B��UP�\Q66mx��D��
P��2��`-���X(��K�����Y8����1�
���41id��[�r?�ʉ���Xz�š��{�$����)�Nلc����o�8A2�I{�j"�.�\�ڜ?M�Y��63�y�D}�lM���j��I���@�"ᄵ4�{Yf��"�K"n�e���
���3�/P��5+U5�>�9dk9��br���������&�M��Ї���	X��I t�Qd b=	�~�U�P8�r�n��t%�����e�e��R�jV�j�r�خzj�H)������A̰�ݳ�W�W_scx���O�.���o�=�x�22��ٹI��/p��/c����<��_���j
=z�ԫ^y��:n1�:�#�`0�s1�K���?�u��=B�[{DS]<w��b���SW�m�@r98W'������k�(uT�cp��)��X�K,b����}�Á÷7��-ϝ.o�.���hw�v;_{�9�eͭ͹�(�"��i�Z`;�X;}�c��ϯY{e�0�SP�`�Q��Q��+)GS����4��P,j��	&%$kX��E7�޼��|4h�޴�۴��x1�+���n��K���Vfw���^9�'�l{pdeoׂW.�ټ���r��z�&�:e��.��N$+އ=��؎�onf�;�S�9�T�������v��'��G�V��m��<��jV�v��\]o�g8���L��6���\�r�����*"Z��{n��v�E�K���,�IEND�B`�!��PNG


IHDR��w&wIDATx^m�1�Q�ϛy��aê�Ȁ��i-�.c��"�--��`{�N�m����b!�뮫���d޼{���=p���r/�'���U�P��#�*\�zI��a}��籍��d�
'v��Yu�fչ;q�~�\-szS�Yz#����/m����a�QQ��Σ��E2��d�5���=���`b`G��N��$��L?����
�T��A2
�Zs�{i��$�?�t�&��Ӕw�Em��rw�¦�ѻ��ߎ���)����P�2���w�t{
9A=��^�S@���e�CNh�
���y��J
4���97T,��]�UZ��=�
ᮀ��hΰ�
���@���E`�@�
^X��?�vU/�PIEND�B`�!��PNG


IHDR��w&�IDATx^%�OKQ���@�dL&�d�&4�Q%;ѕ�
�~��u�]�uY�H�mV)�.J*:�I
�"�֠���dN/�����r�O��*262r��oNȾ���ߕ
ua��`N�Tj�,�0�E���Q�4u�i.���B�1m�a����41~~ưXDyw��
��NLn�[���:��cfI��魭1�i?<:�ǹ9�)�N�\��5���9����O�����o�ev��M��w33�pi����m��$�E�.?���Z��J���N�ֲz��y���c� ���%?�j|_,�ֽ\Dv~�!��
t����mg��\X����_$�2���M�Wgg�~xw{��[\lm�?8�{~�; Ȁ��,�;�c��r�A�����Q*��r�*ɂ�����>����:B[�
�?s��0�IEND�B`�!-�PNG


IHDR�a�IDATx^�Ͻo[U���{�u��ʋC�(U��*4��jT��d+C���"�2�v&�g���E@H)B�ΐ�B^�&�ul�q_����C�p'�;�>�Oc��>8��$���Ç�7�Cw���'f���'
��z� 2K&2�o�ǩ���-7���_��^�xs��	̴�h
��4ٵo�|�ɚH�}!�������ӏ���*��ꄥ���6�{(�2t��xM�*���G��Ls�����Ҍ�}���9�~��X�:%��.ad6�\�%�Yw�f�w��/��G��)��W/��~�Φ
Ù����PV��W��bQ�{r���,��.��3���ȝ�����J/�����z���^k��5�n:D�3D���{8ZF�A�Ȣ����ӋѕGx|�qrH�#n��q}�ޫ��H
Aa 
�	��x��0t�+
D&Gx^��;�;��w#!�3Y�;�v�Z��}��u��*WX�c��&�<z����v����"�G_^�>:�O�04[�0\֝6��#K!DܩQ�;wn6�����M6�� ��4�|J���X9�=�%=7�;?Kjv���$ݨ��j3Т,�.Y�������q�����qܙIt��y��
��s�	 �����n����c�*ʌ$5���]�߈_��ڍ�k�Ս�{3$@6�X��KmH[�H�Ui�юe���˔زl�)�T���ΌJfOj$A���EZf�����IEND�B`�!��PNG


IHDR�a^IDATx^��?O�P�Ͻ��
 �j�7�7��.,���	����ąY&&gv��-	`��^�n�@8ɓ��Γsn.��1%n��wAu�yu6טm��'6�>l��mY�t[�CUEm)w����%��!�6��*Fb�ID���.A�4X>@Hh�hj=�����%	|�����8!@R)3�Z���}��,Ú1L�@�$H�,$N��V�y�-��.�T����
P
PL�+"ލD�C՟A�wP-"�fG=3���)9����Es��_���4��Tt�������򁭌gW��zDn8Tp�\�&���[��W�3�;F�#���7呂��f,IEND�B`�!�PNG


IHDR�a�IDATx^��?kTQ���ؚJ�P,l�vK��.��~?����eJAW��B�UT���`c
W
Qɒ�
�&���3>���a�p��7s�r�́�	��?�n,�z�e�&f��E^����R���׮ֽY
coL8���oNG�'��g@k�-�W��<q��3���ϫ�IQ�K�����>�X��:@�U���f 3Lpy�A���wr��}��X�ʉ���:T��P1I
p��,+�ǎ̢��w������JFL2r `�no�u���z�Ç���5�>8Y2�)��,.��v�5�C��_�yЦ��ޣv�b9�˱����kn��}�tɲ�#xS���~����:�+N��)A2���L��|,`���)qe'���&�!)�吁TN4����{#23%o�LD���E��q<�~��釦d�CP1	a�D�o�;�z������Sz����?�$|d-�J�IEND�B`�!��PNG


IHDR�aXIDATx^5�}H]u�?��s�:�W���\b�D�(YY-XV�0-ZQ�4���dXi��#�(�6���^Fw�6i�r6s�6��o���;��s�=���:�}�|���|�/կ�b[�/Խs��?�@d@T m}���e�?�k9l:���t
�/��'��f�'�qdp�>64g�������5/���i=5��CJc���wO��9*����b$�m]������D�ɑ��Ξ����[��p�@�oG�w����+K������.b��l���ޔW\��Sm_=�B���m�*j�7*Yy�w����f!D��7��`zڠ2�J �䃲G�N�=<�J�m��syCA(�,2�X�Mۉ@A�]{��",H��e�ؾ��G�@u$�6Ӗ�O̓.�؋?͇�XH��p��b�.����`(��@�(�#�a��TU�`)^�EB�d.)�%�Y]u0t�o�6��)�J�3,���;H�S]q��M}L�?�L���f�WI�&��b��2 L]��l;i1{�K�"����`��و�ص�X��f!,�d|��ʀ���]'�� R6�Cpma���Xʧ�W�"3qL�lU�X5H,�����ᮛQ-��)
Ch��h�)vSci�`x"J�/�Mñ,b+ft���'�ly��t�7�v�Y��1 ����z7��c���;���΋b�s�l��"���6 �d@���ѽt�L㥿&����+�D$�/ ��1ve�?/]�EG����w	�\�	�� �잂Z���=y�κ�pk�T�����-���ˬe%OX�zV �����$k�y}�u�����IEND�B`�!��PNG


IHDR�acIDATx^�SMJ�@��� n"� Xxy.D*�=�k/�7���P(
z�jg�q��3U�Mi2�$���"#3P�m�cY��+��^�I0��l�*&�Oj5F�z��]K&�Ӎ.���?���ݾ���$�V7iJ�<�W4��<	��92:��Ej�ˏ��b-�E�<bX�٬�,�"��A,!ɽ��M�1�8�M$y���g"ca��/�]�{�@*������  ��l�|8�RTQ[�2
����;�X2�Hn	AGb;�)L�����{�c{$��Lu��+J2�9�+[����򡔫��%�Q'���~~̟���qԅ?~,��������/���r��IEND�B`�!��PNG


IHDR  szz��IDATx^ŕ{��U����9sΙ���N�K[-�t
��T�~�R@jE$��U�b��_@l#�H��&R%4�����M�$ҚT��^�v�s���y�{�e8�6�D�8�$Ov�_뷞���%"�7�r�a�
�"�tHֹx�v�˶f#3�H}?:Q��>ϋ��h�R&������e񻻖!�t(�������Sf1u�bR�F�i*�ݓ�z���8��R�>$���Z�gY�.e��Hk3�r����]�ڊ��/pު�h�:�T]�8�I�3Li�p᲋X�d>Ӛ�Po����G+��sf�4f26���ؑ�?�
Fc>��H�����I�h�Î��\��\:Q���Mqp�ё2{v���/�r��QľG\.��B�adp�sF�	'�z�
|r�cT��I���u��j�.��v�0&�B�"����ř0@�����N!_�L�>��ݿx��o�"�j�\��B9Д���bĕ�����Yds���bY���H�3�x��ش�y���03�j����X��b�?p?�&�`DzkB	J���;s*�ŢUW�e�@�…�-��@GU�=��A���B%0vܐB���G�zW�$7&��� ,� 
T���%�e�l���<������qR�yr t\3*�(��c"/ �ګȦ�(zFW��0�[�E�p����s�T���D5KPDTD�{�0@���3�u�&�����E�eY�E2V�6���_�{:�tS+" :B���8",���qR�%
Ãq1�~ʸ�]
��M�`[��p������}/�����t�g���`��A�����7�fth������}c/��ۑ�`N���7���%��g������{}j9z�@ �<�Rc,���'�̅�1`�mI�A�1��e�""�!���C�z:O:�N�:�j�B�*R8�,��*}��t�r��R1Z)��Qq͵�G���՗��x�~N������/��7��y;�m�4�IA]�d��pp��
~���cS�`�F��(C���/�cm,�jq!|DF���8�=��O�?�Ӵ`%f����^8��2�t�$8�{�RJ�1�ژZ���4�ŀ"��`6�����W���xt����/�_�Ķ�8F�:"��9S�qaV��͒�yg`�G�0�|����F"f�h��1(���Ov���-Ig�����r��˛춙Y3.{_�Ka,_{���63�2��2Q��`��:?5�+<�yl� �-�׀\w�F1��m��'9��$�^���_���7�r�˖m/Ȯ�*mzBN��))�!��ay��u���[d�o���j�~�jY{�W塟�V�ò�[�•k^Y~�M7��,���7}뮍����
�:N|q݃ק��ܼ��1M2�Ґm$�#zz���k7�,��C��
�Q�XT�o���k��#;��d�c�W.ctD��J����޺���wU ��'O���bͺ_�͞�f��45d�q�P��̦T����m�U�/�O�s����Cyhw�e,��n�~��Ǟ|�LC#b�����M�-X"�E
���z��E ���O����ӧ���6�Xi:���� �ryĘZW���G���V����w���}�����(���K6Z	�\�|�D2� ����}��nR�}
 ��;['���?�;;+�0Fp�### �|�X'ƀ��B�\�X(S�R�G�t`[��bDm�UH�JU����@p�S	#��SI��G�U��H�uS�T�z,���:��=:��8$��z������q��i�+D�O�.E�cLlj	�d���u�}
�Qq��0B+
���1qR*y���d��L�J8	�D�%�ۏ����(¯�1Ơ����u-M�@kU8��F�1�Q��ض�6�ڎ�۱ɏ�Hק�,x��Q�.N�!�ؔ�w]!�=|���&�VH�1b0f<][Bi@R��O7�)�/^�:�Z�d}�J�DQ�R� �|m��ўv��Ty�d90:L.W�-&�XF+jV�Q�h��ۙ}���� 8s���@j���۲��|"��?׭K-���1&�W+ X�V檰4���D9أo7NΧ�My�vE�x�
��;�^W�2z<?��T�2����k�����A�������?r�qN( ��S�a
�?eXt�έIEND�B`�!��PNG


IHDR  szz�pIDATx^��{l���gfv׻��v���JBB���OIH�"̥�@K�VB+��*��Җ?*$�"!!��Q����E�+RKR@�A)Dh(�^N_ױ�ޝٙ9��f�J��(ȏ��gi��=g.G�ӡ���_�9�[�+�C7�^�r���\�]�DV�5���%��?4���s���]}_7"¹p��c��77/{��������{�|�<��s����q��|y�ا'����۲ X�.��[��^��lܸQ�ܖ��{5�>��Pl��͗X��j|����#De�7�Д	(��9qb~�x��_Z�ly.�p�g�dw*�d'ASg<t�ҁW����T�{'�G�t���#��c���#G9r�]�9/�k�=:���@F2^X�}��0�%\�rtT�߿_���6� �X��F�\at��N5��I�U���3
�›���%�K�v,Q%�0��G��18c�KU;2Y�D�c��Ӫ��������U��˜�R��Wv���;(��D�����՞��	F�ʚ$�D5K�R��X�R�&�E��Zl��Y,�h5�V�;oeö.��!L-&�V(W=�~�yf�
�RD�~�PJ�x%~�Y<Z5̿d	��6�L���S�g�^\21dp��q�¾2Ij��Nkmf �˹�1�\���J�M�W��eA4  ��Ou��9Xq�r^8��όL�Y��J�bg��ah�V=;T1���� �Sx6�6�9K\����Z`՚,_��O*W�8x��� Pg~X���+j�\�E�d�\ -C������h����L\��)����:Ӝ�[�� "g_���ns` >|�lo��G��6���cƎa҄p�LRKQ^���0�a�w+��w�6|B��E΄o_�������W�e��D��M��Z�s�T3�7�ц�y��J��=xD�4�{�{��gЕ?&��[㱚��?�|뎵�Z��#��0:4J��s���a<�}Ukǟ�y���B*�D���>���q����9w:���~o���NLe�)���7�.]蹪�V#�$���v���>�w%�H�TJ:n|4s�o��!�NO�4
��߼�u�U[g��W��"�/����l�6Ge�̻�^g,v\vi��7�|A�D����u#�n�� �^����W�
�p,���n
x@p���]�̶�q�mת�?�̋/�G�NZ2��DN�Z�<��3��5+i�={DP<q,��p}�ߡed�9�n��Οm\��ֻ��[���̜b;W^��m-|8@8>Aަd=��%C��)�8lj��_�����"[��;���7}v�Ž�b�W�/\ǜ����l[�yڼC����%�VI�]�+����$���!z�S�΁���.pQCwt�qr�xǃ>3oQ���s�,[������Q�G�i�?eE~14�G���Ó��{��&�4qŎ�#=�,  ¾g��~��E�6��_�� �����%��]�rcˬ�"�Z?�O����&�p��v��x��0�R�$1YE��:fa�8]C��5�\'��(�ମk.��ڢ��=����/��L����Ċ&5��F3�Ω��Za�2D�j�(t����q��= 2e���E��o����Z��m���.�7�MM���R�b�AΫ�;���$��2�:�e���'�T�"��t�QOm
Mt��T���S����y<��W"Bj�hbmH�F�C\P7硵�h���G%
AP�(������X;�86��)8q�8D��u7IAM���N�ī��8�$%����{����ɽ\�u-{�p�
�y�/�|
Iu}���
 il8��G�B�����ǖ�ѭHCsS���k&�T�*�	�(BkMX�0�R��8��ش�5���}��{��zK&�wM�)h
2>A6��Qd2S�!ubHB�5R�j�8�9GX
1�P�c��'���%� ۱�вz�ܵ��`����Ly�|q ���Bi�h9��&ڮ��o^G��~N��Fy
��w�`��屗��%�ӟƆ�:C-
�<u�����yf�8���ؘ74����_G��9�
������/؝��F爓F"�k��
!L�5�'�:��	�N;��9��
�@�G�+IEND�B`�!��PNG


IHDR  szz��IDATx^��pT���sv���nB!"��`�bR������h�Q�V+��Z�j��V�/�ة�юc�#j���c��� !$$��z9�|��4�NeF��g�sv������>��^�>��q  E�.�\!FϴCh��j�Q��BN�~�Q�W���,y�Ϫ �)/�äJ׺�T�벊�G�4���H±*�d��;���ζ_�x⡂����32��o>��q����������#���4�D�ƥjt-��
����:��㒍/�����"�0ʐ�m�[j&4EE,��I#:U ������ ���۔^f���q��8�};��2��2��z1IPIdǪ8�De�'���w
g��T^�;��@{fqm]�Ґ���8n1`�:ׇN���{�Mz�h{�b`�	Py}n��buG��!�k��輇��P�,^2����pH���=����ԒQ�<�ʡ�F���PW���8(?�Q.��ǟ���=i[��Ent�h�	�d@҈̓��H0�qp��!=����s�O��/��Gsf͢�q5)��$:��p,��J���#�sp��t�~���|��
m9�z�qQs������{qUD�ш1��|m1�
�s$C����qV����]�g/�:f�`κ�Sga��xlр&��Sn
^6�
v
vR)"���gO����'�g��F5������}�A��Cx�Gn�ŊK֔����\�۶o�k�q�S2��-
�,��`�g�t�)�$޵?�0���0�H��L��`6���,
��U
�{��_p��G�sƃ�\<��.����Љn�z�v�L�԰��o�����o�Hf��@(}Z���	R*����|r$��s��[��9񲘁�g�d�)�u��>�	(�bLIQJ�]�Nj��Y��G�>i߿�o'���2��}M�<Ƒx���z���/�
(J��Ak] �Bi
@PJN�^p�p�ǰ���;���+/��t��do;ʇp�(|ei�p�}��0��>�+Xǁ�#�ߺk��h���Sq@�7[�r^ݾ�~V��3�>��3��3�Vlܴ���)��ά�t�r � (e
�0Z#��c�T�0���}�}�N.?�p�ܯ�����X�5��o�P{�X���}����Z�以�͙�G- ��+q��jmܢ�8&L~�gf�O�Z?���Yu{��(U� ��@|�(F�TT�ԍ��Яb�ڙ^�|�e��o}l�3Kv>�f��rﲗ�R��Oo��o1l�! r�=��]��7n|l�\x�Jٴu��|�U�ܸB�+���/���bym�"y������\$7�Kٴ�W���\��{�|�o,��W�Q@�����U�J)n_|~iDŽ���~��W�Mnn^3�i�#c!B� 9��2sk�ԱvK����~,#�c�l�mɱl	�ͷ������2\ Du���[f�t��O���{����K�����)�kn���)M�6��X$��G�ߓb�G{�m~3cǍ'RfO[m�ttt���U;�I�1cJA*�������u[+��o"T^Igw/��^\��[o�,.X�O�ܰ�� �̒L�����!��xn�ƂXS�p@�%�S��>�l���s$S�{��l���*�4��Rj�Wݹ��>	��Bee�55֑Jy�<��>�T�(��)�q�*�R@)M6�A�`�!�y�R��d�|��hj�cTV��X	d�%`E���I�s(#�h�i�7he�</�a
E���ѾŠ�X�[/P|6�|e0�P|[�s�7�e��0��=]n��-�X�{���K]�D�ߡۅ�R+e)ދ���R24D�|k���xn�PHAk��R��7�v�e)�R3:��>�'�#��0�E�D�������eR4a��8�@��n�L��=C2�$X�I&2X#@,�o۵q�`�e��K#��I���Gӌ��1�'�ץ�Yp�ʂ(�)�Җ|._LĘҌ���z�|�p�a�ޞ��#�D���}��`��za�(�:�gL˔P��1~44�
�'8n �����ǰ�:�+���H�"�5~�Շw{��N��j�d���@�$�|����+n?f�Dpe���
��v�'@
�K]��o�l���QQIEND�B`�!�	�PNG


IHDR  szz�	qIDATx^��{�UUv��<�/�y��ͣ��@$A���Ȍ�Mt�cJ)�G�IE5ј��LBY�U1�G���1>�88dD�ѡ{�����mn�y�C�
--��Uk������^���Z�y!8�ûPJs߮IA��s[�J��_URwj�V(���R2ԟ�ͣUO��Ч�FT���n���h��"X\l6/���d��5~G�r+��7�&��I<�B<GU��cC��r�{|t��6��V6�?����y\�'`Æ
�[7G[M�މ6�iM�H���o�4MT �*Z�ēu�l�T]�����tv߭��M���}��`p	�=����-�X�;1L��0nեp���d�l�P�3�9�Tf���12�9��O$jD��X`�e;`kۨ��ߍ�a>��}sZ�G�����dZCJ�U�r�D.W �J�3��&, �,�bə���>��+D������PR�$�@aGZC57M>O��	pYW��gĪ�2N�%�uX����q��ג�
��狼�z|Z��.x���H
%gಯ@�B�O�9�DFf0o�rR��4����{Ǐ:.n�D�l�^�),aA�
}��:_r?�G���!sV\A��ӶI�&�xȠ�
ʼn%%ͳZ���|���A��- ��ܴ�o��ق˵˗�F@�-A��c�
wu�_���=Ul��R�$/�*����Z��D)�xFs3�.�������$n�A���ˮ\L��e{E4Q���S_�q�f�===�X��mK�ջ^���/�e���J��K5_¨K▋�"��T����\�����v��a�{�tA�=52��L��i��'�"�=*S<�G��I2�/�K���|IX��s�K�ᯯ����?<�;<�+T��T�)QJ!����a�+��D�r���
U@?��(���Բ�'��F=�!��[�N;j��ݳrUڝ"�Br9܊��'3�&���R�֝Voa(kdh�������
�h�a�3���G���:��?jo�g�r�S��+y ,�d#'��L�,G�v]������K�B��1�y}>/@J5���s���‡[~�&?^|���hL5a4(J����]ArnW�o���ع�ݯn�+k,�X��CR�����qb/��_(_��14���`v2R#�z䡿����?��[�3�;Df`�WQZhmƈ�0�q�IC��芁��ϛ�s������8Sebz�_ftr���G�o���Ǔ�����4O~���&`���g��x��)u���a:�cYz�c��1*�"H������0b�%�9��k�ؽGe��|�'f55[H��?�������ap@�9�=���
��?8���u]���o�#'���MV��ӣ��3x�2^�Bฌ�c���𵛮bŲvƜ�1
���!� 4g�J\1{ã��;�|����ך��z���n����hт'6u�-�ؽ3b3�HR����d�!Q�`V"�́L�����sY�x�6�'S|�󽮅Fh@(^}�C��``���7_������,o���|��}qכׯk���RGѓ�]��R*�����f����&' Y�eI#��n�Ռ���*4h�V��]GI����2;��ͩ�_��u
'>:�����w���_Y���,yՓ�Z㇚Pj�UK
Ԇ���J>��~�{/���u��I��Y���e��%�p�2�|�Iy#ۿ���{X�6ɢ���}~�g��浩�8٢�/U��5R��r��
$�J@�ں��������y���q�������6^y/��ox�'��С�3E����PRGk�@6��E:[B��L0���R�7	�R��(�`�0�S|��~��Q���|p�v��]E��	?�����P��k�NG�=Us��E�	�N{n����s{�|��`����<7dv{�|����+��Χ�<�O���k�{B�R�>^5��h�9qj���B����
."��Rs@���_��_?����*#,]=�w�ϞCO�ٶ3�#�j��K�J3���M�rA�@|��;�I4�nG=�x,�G�#6�h+b�U����F�J]p�s}|��s��\�����6R4%�ʾ>Ns�[0�Ѐ%LƆ$���o���fX�
DR�;���ue���Jӎ�V�C悚h"){������:��iݷ�����ͬ�2�&�K�xaS�Oz|���[���}�s����qў�D�/
{�5
�;�4<��j����i�cb���̸$�뀉������Ⱦ���B\"�j}њ�a͸����u�-v�X~'�T�[Q�{:��J!������C��`��8?�5 ��+���K`ʅe�IEND�B`�!i	�PNG


IHDR  szz�	0IDATx^�V{�T�~�s�������R.���Pv�ĭ�R)����Rk����`�lL01�GS��/�Ml#ު�@���"���B�������}f�~�ܾKg�Aٍf�����M��y�|�B�RB��m�\��(�go�iVd��3� _ƅXLw_�P�f/|�K�~>��G[	���kL�_?�";o�X���Oqʮ�,���x���������p��L�X924����n�_<�����`�&�����N˄Ѓ3�>��?���k!�28u��<Q᭨�GU��!200���޺�n�����-�0
�E�;�x���b����[H�t"7-� r�$�=�G�064�h�Y�t��K�k���+O�	�B����#�,��b��	!�C�He�Z�k!�2��&r�,�4\�E66�\�m�T��N�R&k�y�
P�IZ���$���A�l��(�fȹ�FJ��$R)T!0�!HA�'��4,Db&V\ӎ�[i-�"�c	��<��ͫH�]�6C�dHg�$LyLbH��?�<�b`Z5f56��B0|Z�k�5-X�,�9	���6jh!�[�qb�!"���VA�K�(f.���*YU�e���(�c 3J�Chz-��4l����u���I�Gqݭ����M��� �s�	pV�t-.i�;]�d5����l6˦��0�e��Yz�:�W'��P�ypJ�9��5��@�ʇ�K��i�D�e:;;�w�ج���=�	���1�?�3i�4�ȀF�u���,��
X�<q���K�P��(1ο�%L���zx���O�;�CF�L��)�d�cÈ�a��� 1:���<r,�޻w/�w��ȳ�b"<����ag�hb�u8md�~���q������]��CB�(ם������>V��o���K0��L8Y��X�	Y�B�l)K��1���pL
!�ħ�ޛ7^�����ԈݥU<�?x��gI<Ga����6@HA���#ѝ�dYV���@|��B0p�A9/d�#�z'?�ee�^>J�y���ky��}�]�X�A
�Gv,�c�>A�|����{�Jt~rp��{O3F�\�x|t���y��Aܷ�)��Г`�]��+��(��)�=x��˪�����M�c��x��C N\p�B��=�F����~z�_^�WQシ-n��nh��w �H���s�<��qۯ���\L,��?�
�~T	��-_MQ;���W�p�ý�0Rx�M�����%h�w��o��؋DR�����YS�o���Ӊ��̺�m���ם��I/t|�C;���mMM�ƕK�1+\����ĶUB���!E��s9�y�ia$#0T�M���7۲��y֬j�m;���8�u��NR�i�̰t꫞���G�R&W~v��/��==�6ض�@<{�4$�YD�0�v:���~4�p� P�pa/>�0�!8�F\��-�/Æu�c}ކi�����aH�L�,mnIJ��P��2HM���)��w�X2�~��m��+k
�z"C%�X��8���W���D��Y�"TEA�?���$�F��2���~���8��E�X��MՐJ�3
���B�$��7ϼ����=�^���R
�v�:�������X�i��y��GÜزy#�����^D�o��C�%,i��ukW�0l�~�?���̭:^~S 3��z=:�����EɜL|#��B��e#���u�ҵ`�Y�E<�B�σ����`��C�< D ��"�F*=�L&���pJ
�B�H��7
BMU!R
�q�:��qY+e�)T������mQ̛7���׫b��j
l�B�4Һ��|��{pL�ua[��q�y�s��D�t�(fƿ���d\�b���j���2��Zq�ȉ�7Ʊ�~6֬^��a�o��M��z	���@�MOO�,."��E>`���p�+~%8刎$`�b�X�f%j�+��:2Y��(\�E�Ix�d–��ޤ��m���ˊ��$C�!I�9 @�|�e�bANm̙Fcc=Μ�e�hl�����rʼn'q���I�H0��ѡ�_|c)TZU`z��˚5o�R���ȳ���B"�\q�Ź�p�s^�O�e||�W����7^�~}K���q�T:��:�{��|.=R7��j׵��|�g�%o�Rȗ�=2�Z�]sdæ��X��ʧW]�o��_�r������2_L��/o�r.G���kb��t�B瑮�1��ܫ��%LLPhRL�(�V ����K��=K��IEND�B`�!	�PNG


IHDR  szz��IDATx^��y������r�9sf��n �S��D��L�b
nI?�6&M�MmL?���I���hh5��k#jk�~�d����0��3��9s��˻=KgC&\:wr�~޼�{_�<O���Z��0���R�����g6��ږ�CIݥ�Z��^"�
��''�h͓/�<-��Q��
����kM�|I���Ww��nS�)%��Xf$�6�hs��vb�����ά,U�+S������z���g��?ɓ���իW���tZ�� ��������X�j�e�D�tkh#D,�H4d����ٳ�̛{k��{�ׄ�Ebҝak�1�h��>Kf�nܚK����I�Pɜ%?|���3���1|��������2֬w �Cf����LD!��}N崶��5
��h
���j�b�\�H��3Y*�`-&6�Jf��̏iD@:�n[hdL���!�!PS<I%P��ZC-��P aD
`VG��6&Dk�
N�e0���>V��
=�1�[8�3�`��Q�ӵ�b��Ij��Xv��>iJ�/ՌX�n����	����j}"uḸ�2Ŋ���A�(c578�Y0C��zA�"��|!�DV(D�e��(�J)-PR�6���Hϗ�������H$�ry�������u=W��A�-A�c�
/�⭃��Vh��~�_�岜��V���o�8���F,b`J�?�J���e%4�DK�-��g�F��400��a�������\���M��+�`[�5��A>��R+�1㸕Ѱ�W��C��%�/h�&_���b��{l�(�EW'�N��3ߣ:Q�s|�&�g�j�ߡrd�����0��~�(�eOo����ߝ��+VK��7
R��B���	D �I&��,�����ugwf�;�qq�z��}�B�(�u��U2C)ܪ�I0|j���wU�,��0��u���C)��������4L�|R��w0���O���KLU8�<^��ƌ'9�g�>V	?�n�
@w�\Z'L4z��ZZ1�ï0��[[e�3���6+�]J���EQ/rh�G�76����&���ZIɷ�<���_��	V+�Z?}j]n2��7���~6������Ӆ�?�p�-�N��U����N���k(�tmE��h������q� &���?HC{�����A���ǖRp����[Sx��=]����ƻ/]�M�#�ͷ��[;=F�P"&}¦�)&�Xfs.�����{���ij��x�y!Zk���X�V��Q�"��R|��[��ۗ�4�<�l��ֻ�Dg�������!�C���U*x�*���ej��\��z+.�K��w�e�[~����M��M?�q^~~����Jvp�l6;C�Ҧ��,ln�mӜֵm˖�4�?�B����S$��C|A�A11�"b���b�ʒË́"!"��-I܊��-S���t�ȭ\t��-Ȟ���{^G�ʕ2`����e�v-�3���XS� �"(�@H��"=�&;V�$.�M<����h��ARJ�PHÆx#:���%Ct�~/�]+��Ӝy�'��NL`�w�絫���6|D>���uP~��4z&���M���Xj�T%Bh<!�E��m�M��A��7��{#��R:��ds9l�2��.��TPC�BR���uqsy�TQ����\�FHE�t�i�{�I�mǶ��8��|��Vn��he~��?'@���DP>q�2��Y��
Z�ɴ�s�yh�9�R#�BȺ{�p��$�s;��h��Yp���>�w/q���2���O�D�h�����mדF����>������A�p|���RGiٓ��
��T(�l�BB�l}��-���S��@`��3�uHJ+��q>1�)bq>+Ob�QBR-2G�=�F��>�O}z�$��Fl ,����wܲ�"���LE�R�X� �h�1�D�s_Ϟ�@� ����AU�����Q��K�>�˻i�VH?��
��^<�6t^��	/����\2�˴�9�'���J�)yVi]9wi
���
߳��l�#4�F��M�����H�l(J2��)�G��/\�	�a]��w�E�z0��v>�����f�w��a�QR��r���(�P�g
��	D=���X�/���r-O�y$���JȈ��X�?6��h�K3��>��oM 
$�pޤ���33�?珸�Qw�IEND�B`�!V�PNG


IHDR�aIDATx^u�oh[U��߹Ivg�t��4��ً��i�)�ƨs�Q��R�n��E7��"#����ҵb�i�R�ƴE��O�M۱��]g��
�4izo�{or�y<���/|8��y�È�c��RO#�<U���R�\���(�:122B�g�(����y�2���w?�+߰	$�����̋���|����4�d�&������}����=`"
�n���:�,�;��](ɍ�����w��
,��;�2������y~� ��8@J�l�Aֻ�j(���k�_ܚ����@n�h\ü�Y0Ÿ4IH�LdlN2yg�-Z�C�AD
�t&�RN_u���ٗ�v:3q�T
�L���Y&e��Xɥ\��~�_���p�1�QU[���x++�i�sm���R)���R�$���!�I�XV.�,"�G/�
AB௫��3�o,��H�����|��$>������ou?z�Ĺ������!�lz��^�C�����;px7��Qػ�SV��N��:��ct������Q�v�F��C�ʉq��g�Z���m�`�rť����}�t��h!�B�bt��E:���~���|O-��z"E��j�����}`��p;c�^ݳk�iH�-,%Ml��P"�_{ǐ1�{��x�q+��B�����훰��Et:�� �T!$�$�\�<�n��br��?�n���\�����č&�g�欿~=s�U��y���=�̥�䕅%�Z���L|�`
܊^|]w�Ka%HE�b+��5��Q�pIEND�B`�!J�PNG


IHDR�aIDATx^u�;hQ���هA� �Ѡ#6�4ƍ�A�`#v)"
�����Kkg;�����(H6b�,
�,ٝݹ��=wf�+�\�������3PUH�JA������ڣť�[w�޸9?`����3���|y2��%���_'�ޣV;�4�`y�髅�wA�0�͜��u=@�%�cg��m~����/^���������8:qh5p�~�9����1\¸|�7�ZM��<C�GĄݻv��\=��ZRQ{��0�z��\�t��62�Q�9�Ke�|��&`��G„J���4*����Be��
@]0D5T�M��z��MCU��/b1�F�evI��`u�|4{�8+�D1I�+���?A!��
^bl"�� �	(O�>���`)dP�P��w�LP���L��kܓm�Ę����3�V��%�;8�hB���̬f�ܤ�����%f�;>�|=e�	��b�ġ*���G�A@Z_�t@up��d�jP�
�?��$mr)�IEND�B`�!#�PNG


IHDR00W���IDATx^�ylUe�ǿ��K{�х.��@�LiY�
�0���&D�
�"�l���c&8��щ��f�8�83$��3�a�@6dkii{�s�9g�Ϲ��6X�?
.ɜ��}�=�>��>��V1?�ˁ���"P�z��=��/Y�N��+D��7��v6o�|��ϟo����fee�
�]���y���g֯_����"��s�Z�ʕ+�Ol�~������Wh�0M� 8�梢��?����ĪU��
6�6}�G����E~�1>�[׿���P聎���c�=�S�����lz��'���ޞ�J�L��lelѢEwmܸ�uIUU�r����J떼O&��})
�a�]��gV�7�]�v]zꩧF�A,X�@�lll�`�4
//�Ǹ1Հ�¿><�Ϗ�eL[���gQ���H$��	X�p��:3f���|ki<=����ؑ�(�?1Q�'�#��:�G���C��nڴ)�t�R㇊��ɓ'/��!iIX�� k�*�X��O������
x��(h�L��oo�ŋ��_�zu���]lOT���G�#JRi���X�=�N��΂1c�}��ݟ�����y��;
qUVV6�;Ex4�@ð0J��@�
��FUQV������.ю������h[�l�fϞm|/��f�pU�f�/���}�ω��R@��=�����hDŽ�����h���J���,d*�e����茎�}������iSH��1jx5J�����B���+P�V���a%��A(�.�*`�(Im۶͘6m�q]#�|�r�k֬ip�����$�/�J)͏7�ڇm�wCUS��X�����b��"|��Q\��NR�\s���^:p�.+
�N!q������v婯+G���X�_���8x�O1�<M���>�;�[�_�ӡ�������$w�ءO�4ɸjb�7]+V�0Sg�ڵ��sw���ۉ񣫁T'`8�o�I���Rh`z�h�14�X��s�qk)�z�0:"*]���Emm�Ç�)&D�Q횟�h�Y6����P�_tEb5�
����
F�4��}��(q�B'j��p��rtv&d\���etJH���ꐹ�}J!��Y�o勚(���"/7��S�t�Q�(�HZɊ��̱B�9�q-Ŷ��b��~|�U'\NCN�����iǏ�*^سg����`\�*��ʜ������1��&1lh
��x�hgZT���̲
8��%TU�dqK�vT��1uB1^�s+����W2�ޣh	e��0��pϲe����<*���������>�|h��w������e@��T輀9S*��~�;�)=���xf����ӛ$
L4��S�v��~SSS������59yn A�=-������|||�
�QrI
�U
�j���0�����
7 �fi����
�>G���/)dz��8�y:\r[R"��?a|�Uyt��"�ŸC�|��m4;10\JQWb<�J��:�����ko�p�R�NPKwS������
��KEDr�YJ�?d��h$��c� 7ϙ�(RDK��Ts+QY�C�:g�U����Xz���H
#�s�����Mا7)����U�ǩS��N#�?��;z��%��h,����jF��p]ZbEA�����^��A@뤀v a�]Ѐ�Y̜���p6E��^I�N�_�!b���x�'d�=}��!<�< �یl�FA�_�o���$b�*�#��E�"�]@�P/�Za�%�D�PQ܂Y���@d��gq�W @����J��p�X����,g_���yA~��?Ht��G*�A`y6Ev���=Ma(D�`�D�$MZ��O�&/�˳�PMbG.'�"y�K�ޤ��B<3g��	5���u'����H���-R4I��
/E]M���x��9�"�0W�~Y���2`g�,nM\4��"�X,�|��u�֙�xXy�����$��r1n�@@�`�MXD�&�+�u̙Z�����'m��n	��(N r�&qCU6ߕ�(��̅;
����yyP����b�J$|�&�#��Z�}�"�LuyK�ᅝX��;X�n/��ĝ�)�mM`͞/�#0����YUք��	}E� D\
�o�7ɢ����tٌ���cGTɈml&�d������/�Ʊ/;q�T'~�����s�t�F�6
���7�1���,�v*�,!��O�$���>��`n�%C~�:�\``��v#]�瀮}��@�<r:��0�"bȿ?mRb��z� M��Ǒj��a�M3# pɵ���i%V��J�_���"�7s?��DWz��	
J��g�����Tr�0�,�X"	�I��ې���RG��5�,pm��|�Hlښ�}�/�#N2��O:��8�������h�D�/
��q��Rx�\���4��I�$�1���{(�������S)���.�B�{>�WX1��~c
�Bn'_�(����&�ǻ��w
+�惺�)��L�Li
���_��l���+�x�.��^(��@����F2�Z'*J�{*�ͤ���#��Շu�ARǎ����V�����%If�%a�GQq�0o:�	�S��"@�x������k��2[��d���K�q����0��I�دS��Y"�X}9��D�y�FԺ7�/��-�#ƴ�석>l�{�N)�?eFY Z.�q�vfLZT�tI�>��2��g�@@�����шqe
i$�곙��荀��5
nd_#��}"Lʜ	����<�����~
�<B�뽼�U�FR=E@'����prz#QC^ۓ���
/�v+ڭ=.�6��ӬjU���Wl�����\��3/Y_�w�O����3�2now#�e|��GOt'I�A��{D���U�� �Ƭ�=	�n���k�A�1<��٣��O����߲|TIEND�B`�!�using System;
using System.Windows;
using System.Windows.Data;

namespace GridDemo {
    public class AutoFilterConditionVisibilityConverter : IValueConverter {
        public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) {
            string strValue = (string)value;
            return (strValue == "ToId" || strValue == "HasAttachment" || strValue == "Sent") ? Visibility.Collapsed : Visibility.Visible;
        }
        public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) {
            throw new NotImplementedException();
        }
    }
}!jMSBAML```����D@GridDemo, Version=13.1.4.0, Culture=neutral, PublicKeyToken=null#clr-namespace:GridDemoGridDemo\XPresentationFramework, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35RNWindowsBase, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35WSPresentationCore, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35RNSystem.Xaml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089a]DevExpress.Xpf.Core.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49afbDevExpress.Xpf.Grid.v13.1.Core, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49aa]DevExpress.Xpf.Grid.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49alhDevExpress.Xpf.Grid.v13.1.Extensions, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a columnOptionsTemplate��Orientation%DevExpress.Xpf.Core.DragManagerIsStartDragPlace-'DevExpress.Xpf.Grid.OptionsToggleButtonName^�ToolTip#DevExpress.Xpf.Core.PopupBase�	StaysOpen�ElementName�Path�Mode�PlacementTarget	�AllowsTransparency-'DevExpress.Xpf.Core.MouseEventsEndPoint,&DevExpress.Xpf.Core.PopupBorderControl
�	Resources5/GridDemo.AutoFilterConditionVisibilityConverter Key$DevExpress.Xpf.Core.GroupFrame& DevExpress.Xpf.Editors.CheckEditContent)#DevExpress.Xpf.Core.ObjectConverter	IsChecked
Name *&AutoFilterConditionVisibilityConverter�	Converter(	"DevExpress.Xpf.Editors.ListBoxEdit%
DevExpress.Xpf.Editors.BaseEdit

ShowBorder	SelectedItem	
StyleSettings:4DevExpress.Xpf.Editors.RadioListBoxEditStyleSettings	Items-'DevExpress.Xpf.Grid.AutoFilterCondition�D9http://schemas.microsoft.com/winfx/2006/xaml/presentation:x,http://schemas.microsoft.com/winfx/2006/xaml;dx2http://schemas.devexpress.com/winfx/2008/xaml/core?dxe5http://schemas.devexpress.com/winfx/2008/xaml/editors@dxg2http://schemas.devexpress.com/winfx/2008/xaml/grid localclr-namespace:GridDemo%�&	7��.R���$
�options��$�Right=�$
Horizontal=�..+�$showOptionsButton��$�15��$�15��$
�0,0,3,0q�$Show filtering options��$�optionsPopup��$��Bottom=�.���$showOptionsButton��$	IsChecked�$TwoWay=��$showOptionsButton��	.$
��Fade=�.��._�.���$�11q�
�*&AutoFilterConditionVisibilityConverter.+�$
��Options��$�0q�.���$Vertical=�.+�$
�0,0,0,4q�$Allow Auto Filter�$Column.AllowAutoFilter�$TwoWay=�$
�0,0,0,4q�$"Immediate Update Auto Filter�$& Column.ImmediateUpdateAutoFilter�$TwoWay=�$
autoFilterCondition��$��Auto Filter Condition��$
�0,8,0,0q�y��$Column.FieldName�8.�	.�Z��$ Column.AutoFilterCondition�$TwoWay=�Default=�Like=�
Equals=�Contains=�!<ResourceDictionary
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:dx="http://schemas.devexpress.com/winfx/2008/xaml/core"
    xmlns:dxe="http://schemas.devexpress.com/winfx/2008/xaml/editors"
    xmlns:dxg="http://schemas.devexpress.com/winfx/2008/xaml/grid"
    xmlns:local="clr-namespace:GridDemo">

    <DataTemplate x:Key="columnOptionsTemplate">
        <StackPanel Name="options" dx:DXDockPanel.Dock="Right" Orientation="Horizontal" dx:DragManager.IsStartDragPlace="false">
            <dxg:OptionsToggleButton x:Name="showOptionsButton" Width="15" Height="15" Margin="0,0,3,0" ToolTipService.ToolTip="Show filtering options" />
            <dx:PopupBase Name="optionsPopup" IsOpen="{Binding ElementName=showOptionsButton, Path=IsChecked, Mode=TwoWay}"
                                    PlacementTarget="{Binding ElementName=showOptionsButton}" Placement="Bottom"
                                    StaysOpen="False">
                <dx:PopupBase.AllowsTransparency>True</dx:PopupBase.AllowsTransparency>
                <dx:PopupBase.PopupAnimation>Fade</dx:PopupBase.PopupAnimation>
                <dx:MouseEventsEndPoint>
                    <dx:PopupBorderControl>
                        <StackPanel Margin="11">
                            <StackPanel.Resources>
                                <local:AutoFilterConditionVisibilityConverter x:Key="AutoFilterConditionVisibilityConverter" />
                            </StackPanel.Resources>
                            <dx:GroupFrame Header="Options" Margin="0">
                                <StackPanel Orientation="Vertical">
                                    <dxe:CheckEdit Margin="0,0,0,4" IsChecked="{Binding Path=Column.AllowAutoFilter, Mode=TwoWay}" Content="Allow Auto Filter" />
                                    <dxe:CheckEdit Margin="0,0,0,4" IsChecked="{Binding Path=Column.ImmediateUpdateAutoFilter, Mode=TwoWay}" Content="Immediate Update Auto Filter" />
                                </StackPanel>
                            </dx:GroupFrame>
                            <dx:GroupFrame x:Name="autoFilterCondition" Header="Auto Filter Condition" Margin="0,8,0,0" Visibility="{Binding Path=Column.FieldName, Converter={StaticResource AutoFilterConditionVisibilityConverter}}">
                                <dxe:ListBoxEdit Background="{x:Null}" SelectedItem="{Binding Path=Column.AutoFilterCondition, Mode=TwoWay}" ShowBorder="False">
                                    <dxe:ListBoxEdit.StyleSettings>
                                        <dxe:RadioListBoxEditStyleSettings />
                                    </dxe:ListBoxEdit.StyleSettings>
                                    <dxe:ListBoxEdit.Items>
                                        <dxg:AutoFilterCondition>Default</dxg:AutoFilterCondition>
                                        <dxg:AutoFilterCondition>Like</dxg:AutoFilterCondition>
                                        <dxg:AutoFilterCondition>Equals</dxg:AutoFilterCondition>
                                        <dxg:AutoFilterCondition>Contains</dxg:AutoFilterCondition>
                                    </dxe:ListBoxEdit.Items>
                                </dxe:ListBoxEdit>
                            </dx:GroupFrame>
                        </StackPanel>
                    </dx:PopupBorderControl>
                </dx:MouseEventsEndPoint>
            </dx:PopupBase>
        </StackPanel>
    </DataTemplate>
</ResourceDictionary>!�using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.ComponentModel;
using System.Dynamic;
using System.Windows.Data;

namespace GridDemo {
    public class DynamicBindingList : ObservableCollection<DynamicDictionary> {
    }
    public class DynamicDictionary : DynamicObject, INotifyPropertyChanged {
        public event PropertyChangedEventHandler PropertyChanged;
        #region inner classes
        class SetMemberValueBinder : SetMemberBinder {
            public SetMemberValueBinder(string propertyName)
                : base(propertyName, false) {
            }
            public override DynamicMetaObject FallbackSetMember(DynamicMetaObject target, DynamicMetaObject value, DynamicMetaObject errorSuggestion) {
                return errorSuggestion;
            }
        }
        class GetMemberValueBinder : GetMemberBinder {
            public GetMemberValueBinder(string propertyName)
                : base(propertyName, false) {
            }
            public override DynamicMetaObject FallbackGetMember(DynamicMetaObject target, DynamicMetaObject errorSuggestion) {
                return errorSuggestion;
            }
        }
        #endregion

        public DynamicDictionary() {
            SetValue("Id", 0);
            SetValue("FirstName", "");
            SetValue("LastName", "");
        }
        Dictionary<string, object> dictionary = new Dictionary<string, object>();
        public int Count { get { return dictionary.Count; } }
        public void SetValue(string propertyName, object value) {
            TrySetMember(new SetMemberValueBinder(propertyName), value);
        }
        public object GetValue(string propertyName) {
            object value = null;
            TryGetMember(new GetMemberValueBinder(propertyName), out value);
            return value;
        }
        public override bool TryGetMember(GetMemberBinder binder, out object result) {
            string name = binder.Name.ToLower();
            return dictionary.TryGetValue(name, out result);
        }

        public override bool TrySetMember(SetMemberBinder binder, object value) {
            dictionary[binder.Name.ToLower()] = value;
            NotifyPropertyChanged(binder.Name);
            return true;
        }
        void NotifyPropertyChanged(String info) {
            if(PropertyChanged != null)
                PropertyChanged(this, new PropertyChangedEventArgs(info));
        }
    }
    public class StringStateToBoolConverter : IValueConverter {
        public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) {
            return !string.IsNullOrEmpty((string)value);
        }

        public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) {
            throw new NotImplementedException();
        }
    }
    public class NewColumnModel : INotifyPropertyChanged {
        string columnName;
        int typeIndex = 1;

        public string ColumnName {
            get { return columnName; }
            set {
                columnName = value;
                RaisePropertyChanged("ColumnName");
            }
        }
        public int TypeIndex {
            get { return typeIndex; }
            set {
                typeIndex = value;
                RaisePropertyChanged("TypeIndex");
            }
        }

        void RaisePropertyChanged(string name) {
            if(PropertyChanged != null)
                PropertyChanged(this, new PropertyChangedEventArgs(name));
        }

        public event PropertyChangedEventHandler PropertyChanged;
    }

}!�using System;
using System.Globalization;
using System.Windows.Data;

namespace GridDemo {
    public class XmlIntegerConverter : IValueConverter {
        public object Convert(object value, Type targetType, object parameter, CultureInfo culture) {
            CultureInfo InvariantCulture = new CultureInfo("");
            int i = int.Parse((string)value, InvariantCulture);
            return i;
        }
        public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) {
            return ((int)value).ToString();
        }
    }
    public class XmlDateTimeConverter : IValueConverter {
        public object Convert(object value, Type targetType, object parameter, CultureInfo culture) {
            if(string.IsNullOrEmpty((string)value))
                return null;
            DateTime dt = DateTime.Parse((string)value, CultureInfo.InvariantCulture);
            return dt;
        }
        public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) {
            return value != null ? ((DateTime)value).ToString(CultureInfo.InvariantCulture) : null;
        }
    }
}!�using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Controls;
using System.Windows;
using DevExpress.Xpf.Grid;

namespace GridDemo {
    public class EMailCardRowTemplateSelector : DataTemplateSelector {
        DataTemplate template;
        public EMailCardRowTemplateSelector(DataTemplate template) {
            this.template = template;
        }
        public override DataTemplate SelectTemplate(object item, DependencyObject container) {
            GridCellData data = (GridCellData)item;
            return data.Column.FieldName == "EMail" ? template : null;
        }
    }
}!�MSBAML```����D@GridDemo, Version=13.1.4.0, Culture=neutral, PublicKeyToken=null#clr-namespace:GridDemoGridDemo\XPresentationFramework, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35RNWindowsBase, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35WSPresentationCore, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35RNSystem.Xaml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089a]DevExpress.Xpf.Core.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49aeaDevExpress.Xpf.DemoBase.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a headerTemplateFullName��Orientation�Path "headerTemplateFullNameWithIcon 
cardTemplate1�ColumnDefinitions& DevExpress.Xpf.Editors.ImageEditStretchShowMenu
Source& DevExpress.Xpf.Core.DXTabControl demoTabControl
SelectedIndex�Mode#DevExpress.Xpf.Core.DXTabItem
Header)#DevExpress.Xpf.Core.ObjectConverter demoTabItem%DevExpress.Xpf.Editors.TextEdit)#DevExpress.Xpf.Editors.TextEditBase"	VerticalScrollBarVisibility
TextWrapping%DevExpress.Xpf.Editors.BaseEdit
IsReadOnly	EditValue 
cardTemplate2*$DevExpress.Xpf.DemoBase.DemoExpander
9�
IsExpanded�D9http://schemas.microsoft.com/winfx/2006/xaml/presentation:x,http://schemas.microsoft.com/winfx/2006/xaml;dx2http://schemas.devexpress.com/winfx/2008/xaml/coreAdxdb6http://schemas.devexpress.com/winfx/2008/xaml/demobase?dxe5http://schemas.devexpress.com/winfx/2008/xaml/editors localclr-namespace:GridDemo%
&	&	s&	�&	M��.R���$
Horizontal=�.+������$Data.FirstName���$�� �������$
Data.LastName���.R���$
Horizontal=�.+��$��1q����	#FF303030$
�0,1,0,1q�._��$��
UniformToFill=�$�16��$�16�����$
Data.Photo���$
�4,0,0,0q�$�Center=����$Data.FirstName���$�� ��$�Center=���$�Center=����$
Data.LastName���.R���$Vertical=�.+��$�0q���$
�Auto���$�*�.+�$�0�$
UniformToFill=�$�70��$�64��.�$DataContext.Photo���$Vertical=�$	�Top=�$�	12,0,12,0q�$�1�.+���$
Horizontal=�$
�0,0,0,4q�.+���$
��Bold"�$
��Title: ����$��CharacterEllipsis=����$DataContext.Title���$
Horizontal=�$
�0,0,0,4q�.+���$
��Bold"�$��First Name: ����$��CharacterEllipsis=����$DataContext.FirstName���$
Horizontal=�.+���$
��Bold"�$��Last Name: ����$��CharacterEllipsis=����$DataContext.LastName�$	�160��#��$�0,12,0,0q��$5/RowState.(local:CardTemplates.SelectedTabIndex)�$TwoWay=�.@�$Contact Info#��.���$Vertical=�.+���$
Horizontal=�$
�0,0,0,4q�.+���$
��Bold"�$��	Address: ����$
��Wrap=����$DataContext.Address���$
Horizontal=�$
�0,0,0,4q�.+���$
��Bold"�$��City: �������$DataContext.City���$
Horizontal=�$
�0,0,0,4q�.+���$
��Bold"�$��
Postal Code: �������$DataContext.PostalCode���$
Horizontal=�$
�0,0,0,4q�.+���$
��Bold"�$��	Country: �������$DataContext.Country���$
Horizontal=�.+���$
��Bold"�$��Home Phone: �������$DataContext.HomePhone�$Notes#��.�$
	Auto=�$	�Top=�$
WrapWithOverflow=�.�$DataContext.Notes���.R���$Vertical=�.+��$�0q���$
�Auto���$�*�.+�$�0�$
UniformToFill=�$�70��$�64��.�$DataContext.Photo���$Vertical=�$	�Top=�$�	12,0,12,0q�$�1�.+���$
Horizontal=�$
�0,0,0,4q�.+���$
��Bold"�$
��Title: ����$��CharacterEllipsis=����$DataContext.Title���$
Horizontal=�$
�0,0,0,4q�.+���$
��Bold"�$��First Name: ����$��CharacterEllipsis=����$DataContext.FirstName���$
Horizontal=�.+���$
��Bold"�$��Last Name: ����$��CharacterEllipsis=����$DataContext.LastName���$��Contact Info��$�0,12,0,0q�.���$Vertical=�.+���$
Horizontal=�$
�0,0,0,4q�.+���$
��Bold"�$��	Address: ����$
��Wrap=����$DataContext.Address���$
Horizontal=�$
�0,0,0,4q�.+���$
��Bold"�$��City: �������$DataContext.City���$
Horizontal=�$
�0,0,0,4q�.+���$
��Bold"�$��
Postal Code: �������$DataContext.PostalCode���$
Horizontal=�$
�0,0,0,4q�.+���$
��Bold"�$��	Country: �������$DataContext.Country���$
Horizontal=�.+���$
��Bold"�$��Home Phone: �������$DataContext.HomePhone�$��Notes��$�0,12,0,0q�
�$4.RowState.(local:CardTemplates.IsNotesExpanded)�$TwoWay=�.�.$
	Auto=�$
WrapWithOverflow=�$
�Left=��$DataContext.Notes�!�!<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
                    xmlns:dx="http://schemas.devexpress.com/winfx/2008/xaml/core"
                    xmlns:dxdb="http://schemas.devexpress.com/winfx/2008/xaml/demobase"
                    xmlns:dxe="http://schemas.devexpress.com/winfx/2008/xaml/editors"
                    xmlns:local="clr-namespace:GridDemo">

    <DataTemplate x:Key="headerTemplateFullName">
        <StackPanel Orientation="Horizontal">
            <TextBlock Text="{Binding Path=Data.FirstName}" />
            <TextBlock Text=" " />
            <TextBlock Text="{Binding Path=Data.LastName}" />
        </StackPanel>
    </DataTemplate>
    <DataTemplate x:Key="headerTemplateFullNameWithIcon">
        <StackPanel Orientation="Horizontal">
            <Border BorderThickness="1" BorderBrush="#FF303030" Margin="0,1,0,1">
                <Image Source="{Binding Path=Data.Photo}" Stretch="UniformToFill" Width="16" Height="16" />
            </Border>
            <TextBlock Margin="4,0,0,0" Text="{Binding Path=Data.FirstName}" VerticalAlignment="Center" />
            <TextBlock Text=" " VerticalAlignment="Center" />
            <TextBlock Text="{Binding Path=Data.LastName}" VerticalAlignment="Center" />
        </StackPanel>
    </DataTemplate>
    <DataTemplate x:Key="cardTemplate1">
        <StackPanel Orientation="Vertical">
            <Grid Margin="0">
                <Grid.ColumnDefinitions>
                    <ColumnDefinition Width="Auto" />
                    <ColumnDefinition Width="*" />
                </Grid.ColumnDefinitions>
                <dxe:ImageEdit Grid.Column="0" Stretch="UniformToFill" Height="70" Width="64" Source="{Binding Path=DataContext.Photo}" ShowMenu="False" />
                <StackPanel Orientation="Vertical" VerticalAlignment="Top" Margin="12,0,12,0" Grid.Column="1">
                    <StackPanel Orientation="Horizontal" Margin="0,0,0,4">
                        <TextBlock FontWeight="Bold" Text="Title: " />
                        <TextBlock Text="{Binding Path=DataContext.Title}" TextTrimming="CharacterEllipsis" />
                    </StackPanel>
                    <StackPanel Orientation="Horizontal" Margin="0,0,0,4">
                        <TextBlock FontWeight="Bold" Text="First Name: " />
                        <TextBlock Text="{Binding Path=DataContext.FirstName}" TextTrimming="CharacterEllipsis" />
                    </StackPanel>
                    <StackPanel Orientation="Horizontal">
                        <TextBlock FontWeight="Bold" Text="Last Name: " />
                        <TextBlock Text="{Binding Path=DataContext.LastName}" TextTrimming="CharacterEllipsis" />
                    </StackPanel>
                </StackPanel>
            </Grid>
            <dx:DXTabControl Height="160" SelectedIndex="{Binding Path=RowState.(local:CardTemplates.SelectedTabIndex), Mode=TwoWay}" Style="{DynamicResource demoTabControl}" Margin="0,12,0,0">
                <dx:DXTabItem Header="Contact Info" Style="{DynamicResource demoTabItem}">
                    <StackPanel Orientation="Vertical">
                        <StackPanel Orientation="Horizontal" Margin="0,0,0,4">
                            <TextBlock FontWeight="Bold" Text="Address: " />
                            <TextBlock Text="{Binding Path=DataContext.Address}" TextWrapping="Wrap" />
                        </StackPanel>
                        <StackPanel Orientation="Horizontal" Margin="0,0,0,4">
                            <TextBlock FontWeight="Bold" Text="City: " />
                            <TextBlock Text="{Binding Path=DataContext.City}" />
                        </StackPanel>
                        <StackPanel Orientation="Horizontal" Margin="0,0,0,4">
                            <TextBlock FontWeight="Bold" Text="Postal Code: " />
                            <TextBlock Text="{Binding Path=DataContext.PostalCode}" />
                        </StackPanel>
                        <StackPanel Orientation="Horizontal" Margin="0,0,0,4">
                            <TextBlock FontWeight="Bold" Text="Country: " />
                            <TextBlock Text="{Binding Path=DataContext.Country}" />
                        </StackPanel>
                        <StackPanel Orientation="Horizontal">
                            <TextBlock FontWeight="Bold" Text="Home Phone: " />
                            <TextBlock Text="{Binding Path=DataContext.HomePhone}" />
                        </StackPanel>
                    </StackPanel>
                </dx:DXTabItem>
                <dx:DXTabItem Header="Notes" Style="{DynamicResource demoTabItem}">
                    <dxe:TextEdit VerticalScrollBarVisibility="Auto" VerticalContentAlignment="Top" EditValue="{Binding Path=DataContext.Notes}" TextWrapping="WrapWithOverflow" IsReadOnly="True" />
                </dx:DXTabItem>
            </dx:DXTabControl>
        </StackPanel>
    </DataTemplate>
    <DataTemplate x:Key="cardTemplate2">
        <StackPanel Orientation="Vertical">
            <Grid Margin="0">
                <Grid.ColumnDefinitions>
                    <ColumnDefinition Width="Auto" />
                    <ColumnDefinition Width="*" />
                </Grid.ColumnDefinitions>
                <dxe:ImageEdit Grid.Column="0" Stretch="UniformToFill" Height="70" Width="64" Source="{Binding Path=DataContext.Photo}" ShowMenu="False" />
                <StackPanel Orientation="Vertical" VerticalAlignment="Top" Margin="12,0,12,0" Grid.Column="1">
                    <StackPanel Orientation="Horizontal" Margin="0,0,0,4">
                        <TextBlock FontWeight="Bold" Text="Title: " />
                        <TextBlock Text="{Binding Path=DataContext.Title}" TextTrimming="CharacterEllipsis" />
                    </StackPanel>
                    <StackPanel Orientation="Horizontal" Margin="0,0,0,4">
                        <TextBlock FontWeight="Bold" Text="First Name: " />
                        <TextBlock Text="{Binding Path=DataContext.FirstName}" TextTrimming="CharacterEllipsis" />
                    </StackPanel>
                    <StackPanel Orientation="Horizontal">
                        <TextBlock FontWeight="Bold" Text="Last Name: " />
                        <TextBlock Text="{Binding Path=DataContext.LastName}" TextTrimming="CharacterEllipsis" />
                    </StackPanel>
                </StackPanel>
            </Grid>
            <GroupBox Header="Contact Info" Margin="0,12,0,0">
                <StackPanel Orientation="Vertical">
                    <StackPanel Orientation="Horizontal" Margin="0,0,0,4">
                        <TextBlock FontWeight="Bold" Text="Address: " />
                        <TextBlock Text="{Binding Path=DataContext.Address}" TextWrapping="Wrap" />
                    </StackPanel>
                    <StackPanel Orientation="Horizontal" Margin="0,0,0,4">
                        <TextBlock FontWeight="Bold" Text="City: " />
                        <TextBlock Text="{Binding Path=DataContext.City}" />
                    </StackPanel>
                    <StackPanel Orientation="Horizontal" Margin="0,0,0,4">
                        <TextBlock FontWeight="Bold" Text="Postal Code: " />
                        <TextBlock Text="{Binding Path=DataContext.PostalCode}" />
                    </StackPanel>
                    <StackPanel Orientation="Horizontal" Margin="0,0,0,4">
                        <TextBlock FontWeight="Bold" Text="Country: " />
                        <TextBlock Text="{Binding Path=DataContext.Country}" />
                    </StackPanel>
                    <StackPanel Orientation="Horizontal">
                        <TextBlock FontWeight="Bold" Text="Home Phone: " />
                        <TextBlock Text="{Binding Path=DataContext.HomePhone}" />
                    </StackPanel>
                </StackPanel>
            </GroupBox>
            <dxdb:DemoExpander Header="Notes" IsExpanded="{Binding Path=RowState.(local:CardTemplates.IsNotesExpanded), Mode=TwoWay}" Margin="0,12,0,0">
                <dxe:TextEdit IsReadOnly="True" VerticalScrollBarVisibility="Auto" EditValue="{Binding Path=DataContext.Notes}" TextWrapping="WrapWithOverflow" HorizontalContentAlignment="Left" />
            </dxdb:DemoExpander>
        </StackPanel>
    </DataTemplate>
</ResourceDictionary>!�MSBAML```����D@GridDemo, Version=13.1.4.0, Culture=neutral, PublicKeyToken=null#clr-namespace:GridDemoGridDemo\XPresentationFramework, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35RNWindowsBase, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35WSPresentationCore, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35RNSystem.Xaml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089a]DevExpress.Xpf.Core.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a-'GridDemo.NavigationStyleToTextConverter "NavigationStyleToTextConverter navigationStyleTemplate�	Converter iconTemplate& DevExpress.Xpf.Editors.ImageEditStretchShowMenu
Source�Path�D9http://schemas.microsoft.com/winfx/2006/xaml/presentation:x,http://schemas.microsoft.com/winfx/2006/xaml?dxe5http://schemas.devexpress.com/winfx/2008/xaml/editors localclr-namespace:GridDemo%�&	&	7&	 ��.R������8��.R�$
�Left=�$
�8,3,0,3q�$
None=�.�$Value�!<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
                    xmlns:dxe="http://schemas.devexpress.com/winfx/2008/xaml/editors"
                    xmlns:local="clr-namespace:GridDemo">
    <local:NavigationStyleToTextConverter x:Key="NavigationStyleToTextConverter" />

    <DataTemplate x:Key="navigationStyleTemplate">
        <TextBlock Text="{Binding Converter={StaticResource NavigationStyleToTextConverter}}" />
    </DataTemplate>
    <DataTemplate x:Key="iconTemplate">
        <dxe:ImageEdit Source="{Binding Path=Value}" HorizontalAlignment="Left" Margin="8,3,0,3" Stretch="None" ShowMenu="False" />
    </DataTemplate>
</ResourceDictionary>!5using System.Collections;
using System.ComponentModel;
using System.Windows.Data;
using DevExpress.Xpf.DemoBase.DataClasses;

namespace GridDemo {
    public class CollectionViewViewModel : INotifyPropertyChanged {
        IList employees = EmployeesWithPhotoData.DataSource;
        public IList Employees { get { return employees; } }
        public ICollectionView CollectionView { get; private set; }

        public CollectionViewViewModel() {
            CollectionView = new CollectionViewSource() { Source = Employees }.View;
            CollectionView.GroupDescriptions.Add(new PropertyGroupDescription("JobTitle"));
            CollectionView.SortDescriptions.Add(new SortDescription("JobTitle", ListSortDirection.Ascending));
            CollectionView.MoveCurrentToFirst();
        }

        public event PropertyChangedEventHandler PropertyChanged;
        internal void RaisePropertyChanged(string name) {
            if(PropertyChanged != null)
                PropertyChanged(this, new PropertyChangedEventArgs(name));
        }
    }
}!�using System;
using System.Globalization;
using System.Windows;
using System.Windows.Data;

namespace GridDemo {
    public enum ColumnChooserType { Default, Custom }
    public class GridColumnChooserToExpanderVisible : IValueConverter {
        #region IValueConverter Members
        public object Convert(object value, Type targetType, object parameter, CultureInfo culture) {
            return value != null && (ColumnChooserType)value == ColumnChooserType.Custom ? Visibility.Visible : Visibility.Collapsed;
        }
        public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) {
            throw new NotImplementedException();
        }
        #endregion
    }
}!�using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Media;
using System.Windows.Media.Animation;
using DevExpress.Xpf.Grid;
using System.ComponentModel;

namespace GridDemo {
    public enum FocusedGrid { First, Second, None }
    public class RowsAnimationElement : FrameworkContentElement {
        public static readonly DependencyProperty NewRowsProgressProperty;
        public static readonly DependencyProperty NewRowsColorProperty;
        static RowsAnimationElement() {
            NewRowsProgressProperty = DependencyProperty.Register("NewRowsProgress", typeof(double), typeof(RowsAnimationElement), new PropertyMetadata(1d));
            NewRowsColorProperty = DependencyProperty.Register("NewRowsColor", typeof(Color), typeof(RowsAnimationElement),
                new PropertyMetadata(Color.FromArgb(0x00, 0xDE, 0xF8, 0xCB)));
        }
        public double NewRowsProgress {
            get { return (double)GetValue(NewRowsProgressProperty); }
            set { SetValue(NewRowsProgressProperty, value); }
        }
        public Color NewRowsColor {
            get { return (Color)GetValue(NewRowsColorProperty); }
            set { SetValue(NewRowsColorProperty, value); }
        }
    }
    [Serializable]
    public class CopyPasteOutlookData {
        public int UniqueID { get; set; }
        public int? OID { get; set; }
        public string From { get; set; }
        public DateTime? Sent { get; set; }
        public bool? HasAttachment { get; set; }
        public double? HoursActive { get; set; }

        static public CopyPasteOutlookData ConvertOutlookDataToCopyPasteOutlookData(OutlookData outlookDataObject, CopyPaste owner) {
            return new CopyPasteOutlookData() { UniqueID = ++owner.Counter, From = outlookDataObject.From, HasAttachment = outlookDataObject.HasAttachment,
                HoursActive = outlookDataObject.HoursActive, OID = outlookDataObject.OID, Sent = outlookDataObject.Sent };
        }
    }
    class PasteCompetedHelper {
        public CopyPaste Owner { get; set; }
        public Storyboard ColorStoryboard { get; set; }
        public void ColorStoryboardCompleted(object sender, EventArgs e) {
            ColorStoryboard.Completed -= new EventHandler(ColorStoryboardCompleted);
            Owner.RaisePasteCompetedEvent(new RoutedEventArgs(CopyPaste.PasteCompetedEvent));
        }
    }
    class PasteHelper {
        public GridViewBase View { get; set; }
        public BindingList<CopyPasteOutlookData> List { get; set; }
        public int PositionNewRow { get; set; }
        public object[] ObjectsForCopy { get; set; }
        public CopyPaste Owner { get; set; }
        public Storyboard ColorStoryboard { get; set; }

        public void ColorStoryboardCompleted(object sender, EventArgs e) {
            ColorStoryboard.Completed -= new EventHandler(ColorStoryboardCompleted);
            int posNewRow = PositionNewRow;
            Owner.PasteRowsWithoutAnimation(ref posNewRow, View, List, ObjectsForCopy, Owner.MaxAnimationRows, ObjectsForCopy.Length);
            Owner.EndPasteForCanCommands();
        }
    }
}!�MSBAML```����\XPresentationFramework, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35RNWindowsBase, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35WSPresentationCore, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35RNSystem.Xaml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089a]DevExpress.Xpf.Core.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49aa]DevExpress.Xpf.Grid.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a newRowStoryboardO�KeyTimeO�Value��	KeySpline newRowColorStoryboardg�	BeginTime��KeyTime��Value rowTemplate��Color�Path$DevExpress.Xpf.Core.DXExpanderHorizontalExpand	VerticalExpand
AnimationProgress93DevExpress.Xpf.Grid.Themes.GridRowThemeKeyExtension��DevExpress.Xpf.Utils.Themes.ThemeKeyExtensionInternalBase`1[[DevExpress.Xpf.Grid.Themes.GridRowThemeKeys, DevExpress.Xpf.Grid.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a]]ResourceKey�D9http://schemas.microsoft.com/winfx/2006/xaml/presentation:x,http://schemas.microsoft.com/winfx/2006/xaml;dx2http://schemas.devexpress.com/winfx/2008/xaml/coreGdxgt<http://schemas.devexpress.com/winfx/2008/xaml/grid/themekeys%&	&	R&	���.��U�.\���$0:0:0��$0Q���$
0:0:0.5��$1Q�$
0,0,0,1����.����$00:00:00X�.g���$0:0:0��$	#FFDEF8CB����$
0:0:0.5��$	#FFDEF8CB����$
0:0:1.5��$	#00DEF8CB����.R��$�border�������$/)DataContext.AnimationElement.NewRowsColor�._�$�reveal��$
None=�$	FromBottomToTop=�
�$2,DataContext.AnimationElement.NewRowsProgress�._���$
�content���C�*$DataRowTemplate=�+!�<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
                    xmlns:dx="http://schemas.devexpress.com/winfx/2008/xaml/core"
                    xmlns:dxgt="http://schemas.devexpress.com/winfx/2008/xaml/grid/themekeys">

    <Storyboard x:Key="newRowStoryboard">
        <DoubleAnimationUsingKeyFrames>
            <SplineDoubleKeyFrame KeyTime="0:0:0" Value="0"/>
            <SplineDoubleKeyFrame KeyTime="0:0:0.5" Value="1" KeySpline="0,0,0,1"/>
        </DoubleAnimationUsingKeyFrames>
    </Storyboard>
    <Storyboard x:Key="newRowColorStoryboard">
        <ColorAnimationUsingKeyFrames BeginTime="00:00:00">
            <SplineColorKeyFrame KeyTime="0:0:0" Value="#FFDEF8CB"/>
            <SplineColorKeyFrame KeyTime="0:0:0.5" Value="#FFDEF8CB"/>
            <SplineColorKeyFrame KeyTime="0:0:1.5" Value="#00DEF8CB"/>
        </ColorAnimationUsingKeyFrames>
    </Storyboard>
    <DataTemplate x:Key="rowTemplate">
        <Border Name="border">
            <Border.Background>
                <SolidColorBrush Color="{Binding Path=DataContext.AnimationElement.NewRowsColor}"/>
            </Border.Background>
            <dx:DXExpander Name="reveal" AnimationProgress="{Binding Path=DataContext.AnimationElement.NewRowsProgress}" HorizontalExpand="None" VerticalExpand="FromBottomToTop">
                <ContentPresenter Name="content" ContentTemplate="{DynamicResource {dxgt:GridRowThemeKey ResourceKey=DataRowTemplate}}"/>
            </dx:DXExpander>
        </Border>
    </DataTemplate>
</ResourceDictionary>!�MSBAML```����\XPresentationFramework, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35RNWindowsBase, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35WSPresentationCore, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35RNSystem.Xaml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089a]DevExpress.Xpf.Core.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49aeaDevExpress.Xpf.DemoBase.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a/)DevExpress.Xpf.Core.FormatStringConverter FormatStringConverterFormatString,&DevExpress.Xpf.Core.ImageDataConverter ImageDataConverter rowDetailTemplate$DevExpress.Xpf.Core.GroupFrameName�ColumnDefinitions*$DevExpress.Xpf.DemoBase.ImageControl
Source�Path�	Converter�RowDefinitions�D9http://schemas.microsoft.com/winfx/2006/xaml/presentation:x,http://schemas.microsoft.com/winfx/2006/xaml;dx2http://schemas.devexpress.com/winfx/2008/xaml/coreAdxdb6http://schemas.devexpress.com/winfx/2008/xaml/demobase%/&	&	
&	77$D����.R�$panel��$	�200��$�0,12,0,0q�.����$
�Auto���$�*�.+�$
�Left=�$	�Top=�$�0��$Photo�8�$�1�$�16,0,0,0q���$
�Auto���$�6����$
��Auto��$��4��$
��Auto��$��4��$
��Auto��$��4��$
��Auto��$��4��$��*�.+���$�0�$��0�$��Name:����$�0�$��2�$��	Position:����$�0�$��4�$��
Hire Date:����$�0�$��6�$��About:����$�0�$��8�$��Address:����$�2�$��0����*	FirstName+��$�2�$��2����*Title+��$�2�$��4����*
HireDate+8��$�2�$��6�$
��Wrap=����*Notes+��$�2�$��8����*	Address+!W<ResourceDictionary
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:dx="http://schemas.devexpress.com/winfx/2008/xaml/core"
    xmlns:dxdb="http://schemas.devexpress.com/winfx/2008/xaml/demobase">

    <dx:FormatStringConverter x:Key="FormatStringConverter" FormatString="D" />
    <dx:ImageDataConverter x:Key="ImageDataConverter" />
    <DataTemplate x:Key="rowDetailTemplate">
        <dx:GroupFrame Height="200" x:Name="panel" Margin="0,12,0,0">
            <Grid>
                <Grid.ColumnDefinitions>
                    <ColumnDefinition Width="Auto"></ColumnDefinition>
                    <ColumnDefinition Width="*"></ColumnDefinition>
                </Grid.ColumnDefinitions>
                <dxdb:ImageControl Source="{Binding Path=Photo, Converter={StaticResource ImageDataConverter}}" HorizontalAlignment="Left" VerticalAlignment="Top" Grid.Column="0" />
                <Grid Grid.Column="1" Margin="16,0,0,0">
                    <Grid.ColumnDefinitions>
                        <ColumnDefinition Width="Auto" />
                        <ColumnDefinition Width="6" />
                        <ColumnDefinition />
                    </Grid.ColumnDefinitions>
                    <Grid.RowDefinitions>
                        <RowDefinition Height="Auto" />
                        <RowDefinition Height="4" />
                        <RowDefinition Height="Auto" />
                        <RowDefinition Height="4" />
                        <RowDefinition Height="Auto" />
                        <RowDefinition Height="4" />
                        <RowDefinition Height="Auto" />
                        <RowDefinition Height="4" />
                        <RowDefinition Height="*" />
                    </Grid.RowDefinitions>
                    <TextBlock Grid.Column="0" Grid.Row="0" Text="Name:" />
                    <TextBlock Grid.Column="0" Grid.Row="2" Text="Position:" />
                    <TextBlock Grid.Column="0" Grid.Row="4" Text="Hire Date:" />
                    <TextBlock Grid.Column="0" Grid.Row="6" Text="About:" />
                    <TextBlock Grid.Column="0" Grid.Row="8" Text="Address:" />
                    <TextBlock Grid.Column="2" Grid.Row="0" Text="{Binding FirstName}" />
                    <TextBlock Grid.Column="2" Grid.Row="2" Text="{Binding Title}" />
                    <TextBlock Grid.Column="2" Grid.Row="4" Text="{Binding HireDate, Converter={StaticResource FormatStringConverter}}" />
                    <TextBlock Grid.Column="2" Grid.Row="6" Text="{Binding Notes}" TextWrapping="Wrap" />
                    <TextBlock Grid.Column="2" Grid.Row="8" Text="{Binding Address}" />
                </Grid>
            </Grid>
        </dx:GroupFrame>
    </DataTemplate>
</ResourceDictionary>!�MSBAML```����\XPresentationFramework, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35RNWindowsBase, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35WSPresentationCore, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35RNSystem.Xaml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089a]DevExpress.Xpf.Core.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49afbDevExpress.Xpf.Grid.v13.1.Core, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49aa]DevExpress.Xpf.Grid.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49alhDevExpress.Xpf.Grid.v13.1.Extensions, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a�MergedDictionaries
�Source headerTemplateFullName��Orientation�Path 
cardTemplate2& DevExpress.Xpf.Editors.ImageEditStretchShowMenu
Source�ColumnDefinitions�RowDefinitions2,DevExpress.Xpf.Grid.CardCellContentPresenter.(DevExpress.Xpf.Grid.CellContentPresenter	NavigationIndex
	FieldName�D9http://schemas.microsoft.com/winfx/2006/xaml/presentation:x,http://schemas.microsoft.com/winfx/2006/xaml;dx2http://schemas.devexpress.com/winfx/2008/xaml/core@dxg2http://schemas.devexpress.com/winfx/2008/xaml/grid?dxe5http://schemas.devexpress.com/winfx/2008/xaml/editors�$-'/GridDemo;component/Themes/generic.xaml?�%�&	&	s��.R���$
Horizontal=�.+������$Data.FirstName���$�� �������$
Data.LastName���.R���$Vertical=�.+���$
Horizontal=�.+�$
Fill=�$�70��$�64��$	�Top=�.�$DataContext.Photo��$�12,0,0,0q���$
�Auto���$	�150������.+���$��0�$
��Title: ��$�Center=��$��0�$�1�._�$	0�$
Title����$View.CellStyle���$��1�$��First Name: ��$�Center=��$��1�$�1�._�$	1�$
	FirstName����$View.CellStyle���$��2�$��Last Name: ��$�Center=��$��2�$�1�._�$	2�$
LastName����$View.CellStyle���$��3�$��Birth Date: ��$�Center=��$��3�$�1�._�$	3�$
	BirthDate����$View.CellStyle���$��4�$
��Notes: ��$�Center=��$��4�$�1�._�$	�200��$	4�$
Notes����$View.CellStyle���$��Contact Info��$�0,12,0,0q�.����$
�Auto���$�*������.+���$��0�$��	Address: ��$�Center=��$��0�$�1�._�$	5�$
Address����$View.CellStyle���$��1�$��City: ��$�Center=��$��1�$�1�._�$	6�$

City����$View.CellStyle���$��2�$��
Postal Code: ��$�Center=��$��2�$�1�._�$	7�$

PostalCode����$View.CellStyle���$��3�$��	Country: ��$�Center=��$��3�$�1�._�$	8�$
Country����$View.CellStyle���$��4�$��Home Phone: ��$�Center=��$��4�$�1�._�$	9�$
	HomePhone����$View.CellStyle�!S<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
                    xmlns:dx="http://schemas.devexpress.com/winfx/2008/xaml/core"
                    xmlns:dxg="http://schemas.devexpress.com/winfx/2008/xaml/grid"
                 xmlns:dxe="http://schemas.devexpress.com/winfx/2008/xaml/editors">

    <ResourceDictionary.MergedDictionaries>
        <ResourceDictionary Source="/GridDemo;component/Themes/generic.xaml" />
    </ResourceDictionary.MergedDictionaries>

    <DataTemplate x:Key="headerTemplateFullName">
        <StackPanel Orientation="Horizontal">
            <TextBlock Text="{Binding Path=Data.FirstName}" />
            <TextBlock Text=" " />
            <TextBlock Text="{Binding Path=Data.LastName}" />
        </StackPanel>
    </DataTemplate>
    <DataTemplate x:Key="cardTemplate2">
        <StackPanel Orientation="Vertical">
            <StackPanel Orientation="Horizontal">
                <dxe:ImageEdit Stretch="Fill" Height="70" Width="64" VerticalAlignment="Top" Source="{Binding Path=DataContext.Photo}" ShowMenu="False" />
                <Grid Margin="12,0,0,0">
                    <Grid.ColumnDefinitions>
                        <ColumnDefinition Width="Auto" />
                        <ColumnDefinition Width="150" />
                    </Grid.ColumnDefinitions>
                    <Grid.RowDefinitions>
                        <RowDefinition />
                        <RowDefinition />
                        <RowDefinition />
                        <RowDefinition />
                        <RowDefinition />
                    </Grid.RowDefinitions>
                    <TextBlock Grid.Row="0" Text="Title: " VerticalAlignment="Center" />
                    <Border Grid.Row="0" Grid.Column="1">
                        <dxg:CardCellContentPresenter NavigationIndex="0" FieldName="Title" Style="{Binding Path=View.CellStyle}" />
                    </Border>
                    <TextBlock Grid.Row="1" Text="First Name: " VerticalAlignment="Center" />
                    <Border Grid.Row="1" Grid.Column="1">
                        <dxg:CardCellContentPresenter NavigationIndex="1" FieldName="FirstName" Style="{Binding Path=View.CellStyle}" />
                    </Border>
                    <TextBlock Grid.Row="2" Text="Last Name: " VerticalAlignment="Center" />
                    <Border Grid.Row="2" Grid.Column="1">
                        <dxg:CardCellContentPresenter NavigationIndex="2" FieldName="LastName" Style="{Binding Path=View.CellStyle}" />
                    </Border>
                    <TextBlock Grid.Row="3" Text="Birth Date: " VerticalAlignment="Center" />
                    <Border Grid.Row="3" Grid.Column="1">
                        <dxg:CardCellContentPresenter NavigationIndex="3" FieldName="BirthDate" Style="{Binding Path=View.CellStyle}" />
                    </Border>
                    <TextBlock Grid.Row="4" Text="Notes: " VerticalAlignment="Center" />
                    <Border Grid.Row="4" Grid.Column="1">
                        <dxg:CardCellContentPresenter MaxWidth="200" NavigationIndex="4" FieldName="Notes" Style="{Binding Path=View.CellStyle}" />
                    </Border>
                </Grid>
            </StackPanel>
            <GroupBox Header="Contact Info" Margin="0,12,0,0">
                <Grid>
                    <Grid.ColumnDefinitions>
                        <ColumnDefinition Width="Auto" />
                        <ColumnDefinition Width="*" />
                    </Grid.ColumnDefinitions>
                    <Grid.RowDefinitions>
                        <RowDefinition />
                        <RowDefinition />
                        <RowDefinition />
                        <RowDefinition />
                        <RowDefinition />
                    </Grid.RowDefinitions>
                    <TextBlock Grid.Row="0" Text="Address: " VerticalAlignment="Center" />
                    <Border Grid.Row="0" Grid.Column="1">
                        <dxg:CardCellContentPresenter NavigationIndex="5" FieldName="Address" Style="{Binding Path=View.CellStyle}" />
                    </Border>
                    <TextBlock Grid.Row="1" Text="City: " VerticalAlignment="Center" />
                    <Border Grid.Row="1" Grid.Column="1">
                        <dxg:CardCellContentPresenter NavigationIndex="6" FieldName="City" Style="{Binding Path=View.CellStyle}" />
                    </Border>
                    <TextBlock Grid.Row="2" Text="Postal Code: " VerticalAlignment="Center" />
                    <Border Grid.Row="2" Grid.Column="1">
                        <dxg:CardCellContentPresenter NavigationIndex="7" FieldName="PostalCode" Style="{Binding Path=View.CellStyle}" />
                    </Border>
                    <TextBlock Grid.Row="3" Text="Country: " VerticalAlignment="Center" />
                    <Border Grid.Row="3" Grid.Column="1">
                        <dxg:CardCellContentPresenter NavigationIndex="8" FieldName="Country" Style="{Binding Path=View.CellStyle}" />
                    </Border>
                    <TextBlock Grid.Row="4" Text="Home Phone: " VerticalAlignment="Center" />
                    <Border Grid.Row="4" Grid.Column="1">
                        <dxg:CardCellContentPresenter NavigationIndex="9" FieldName="HomePhone" Style="{Binding Path=View.CellStyle}" />
                    </Border>
                </Grid>
            </GroupBox>
        </StackPanel>
    </DataTemplate>
</ResourceDictionary>!�	using DevExpress.XtraEditors.DXErrorProvider;

namespace GridDemo {
    public class Person : object, IDXDataErrorInfo {
        public Person(string firstName, string lastName, string address, string phoneNumber, string email) {
            this.FirstName = firstName;
            this.LastName = lastName;
            this.Address = address;
            this.PhoneNumber = phoneNumber;
            this.Email = email;
        }
        public string FirstName { get; set; }
        public string LastName { get; set; }
        public string Address { get; set; }
        public string PhoneNumber { get; set; }
        public string Email { get; set; }
        #region IDXDataErrorInfo Members
        void IDXDataErrorInfo.GetPropertyError(string propertyName, ErrorInfo info) {
            switch(propertyName) {
                case "FirstName":
                case "LastName":
                    if(IsStringEmpty(propertyName == "FirstName" ? FirstName : LastName)) {
                        SetErrorInfo(info, propertyName + " field can't be empty", ErrorType.Critical);
                    }
                    break;
                case "Address":
                    if(IsStringEmpty(Address)) {
                        SetErrorInfo(info, "Address hasn't been entered", ErrorType.Information);
                    }
                    break;
                case "Email":
                    if(IsStringEmpty(Email)) {
                        SetErrorInfo(info, "Email hasn't been entered", ErrorType.Information);
                    } else if(Email != "none" && !IsEmailCorrect(Email)) {
                        SetErrorInfo(info, "Wrong email address", ErrorType.Warning);
                    }
                    break;
            }
        }
        void IDXDataErrorInfo.GetError(ErrorInfo info) {
            if(IsStringEmpty(PhoneNumber) && (Email == "none" || !IsEmailCorrect(Email)))
                SetErrorInfo(info, "Either Phone Number or Email should be specified", ErrorType.Information);
        }
        #endregion
        bool IsStringEmpty(string str) {
            return str == null || str.Trim().Length == 0;
        }
        bool IsEmailCorrect(string email) {
            return email == null || (email.IndexOf("@") >= 1 && email.Length > email.IndexOf("@") + 1);
        }
        void SetErrorInfo(ErrorInfo info, string errorText, ErrorType errorType) {
            info.ErrorText = errorText;
            info.ErrorType = errorType;
        }
    }
}!MMSBAML```����D@GridDemo, Version=13.1.4.0, Culture=neutral, PublicKeyToken=null#clr-namespace:GridDemoGridDemo\XPresentationFramework, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35RNWindowsBase, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35WSPresentationCore, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35RNSystem.Xaml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089a]DevExpress.Xpf.Core.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a'!GridDemo.MultiSelectModeConverter multiSelectConverter/)DevExpress.Xpf.Core.EnumToObjectConverter countToEnabledConverterDefaultValue
ValuesOKmscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089��System.Collections.Generic.Dictionary`2[[System.Object, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089],[System.Object, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]],&DevExpress.Xpf.Core.EnumObjectProvider KeyValue recycleBinItemTemplate��Orientation�Path�D9http://schemas.microsoft.com/winfx/2006/xaml/presentation:x,http://schemas.microsoft.com/winfx/2006/xaml;dx2http://schemas.devexpress.com/winfx/2008/xaml/core localclr-namespace:GridDemo%�&	&	&	5$
True��
0$False����.R���$
Horizontal=�.+������$	OID���$
�4,0,0,0q����$
Subject�!{<ResourceDictionary
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:dx="http://schemas.devexpress.com/winfx/2008/xaml/core"
    xmlns:local="clr-namespace:GridDemo">

    <local:MultiSelectModeConverter x:Key="multiSelectConverter"/>
    <dx:EnumToObjectConverter x:Key="countToEnabledConverter" DefaultValue="True">
        <dx:EnumToObjectConverter.Values>
            <dx:EnumObjectProvider x:Key="0" Value="False" />
        </dx:EnumToObjectConverter.Values>
    </dx:EnumToObjectConverter>

    <DataTemplate x:Key="recycleBinItemTemplate">
        <StackPanel Orientation="Horizontal">
            <TextBlock Text="{Binding Path=OID}" />
            <TextBlock Margin="4,0,0,0" Text="{Binding Path=Subject}" />
        </StackPanel>
    </DataTemplate>
</ResourceDictionary>!�using System;
using System.Collections.ObjectModel;
using System.Linq;
using System.Windows.Input;
using DevExpress.Xpf.Core.Commands;

namespace GridDemo {
    public class DragDropViewModel {
        public ICommand ClearRecycleBin { get; private set; }
        public DragDropViewModel() {
            DataSource = new ObservableCollection<OutlookData>(OutlookDataGenerator.CreateOutlookArrayList(200).Cast<OutlookData>());
            RecycleBinSource = new ObservableCollection<OutlookData>(OutlookDataGenerator.CreateOutlookArrayList(5).Cast<OutlookData>());
            ClearRecycleBin = new DelegateCommand<Object>(OnClearRecycleBin);
        }
        public ObservableCollection<OutlookData> DataSource { get; private set; }
        public ObservableCollection<OutlookData> RecycleBinSource { get; private set; }
        void OnClearRecycleBin(object parameter) {
            RecycleBinSource.Clear();
        }
    }
}!�MSBAML```����D@GridDemo, Version=13.1.4.0, Culture=neutral, PublicKeyToken=null#clr-namespace:GridDemoGridDemo\XPresentationFramework, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35RNWindowsBase, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35WSPresentationCore, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35RNSystem.Xaml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089a]DevExpress.Xpf.Core.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49afbDevExpress.Xpf.Grid.v13.1.Core, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49aa]DevExpress.Xpf.Grid.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49alhDevExpress.Xpf.Grid.v13.1.Extensions, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a�MergedDictionaries
�Source-'DevExpress.Xpf.Grid.DetailHeaderControl��
TargetType�Property�Value invoicesTemplate%DevExpress.Xpf.Grid.GridControl)#DevExpress.Xpf.Grid.DataControlBaseAutoGenerateColumnsItemsSourceColumns$DevExpress.Xpf.Grid.GridColumn$DevExpress.Xpf.Grid.ColumnBase	FieldName	View#DevExpress.Xpf.Grid.TableView"
VerticalScrollbarVisibility	AutoWidth& DevExpress.Xpf.Grid.DataViewBaseNavigationStyle& DevExpress.Xpf.Grid.GridViewBase
ShowGroupPanel ordersTemplateDetailDescriptor1+DevExpress.Xpf.Grid.ContentDetailDescriptor.	(DevExpress.Xpf.Grid.DetailDescriptorBase	
ShowHeader	ContentTemplateDetailHeaderContent headerTemplate-
'DevExpress.Xpf.Core.MeasurePixelSnapper�DataContext�RelativeSource�ColumnDefinitions�RowDefinitions& DevExpress.Xpf.Editors.ImageEditShowMenu
Source�Path ImageDataConverter�	Converter contentTemplate& DevExpress.Xpf.Core.DXTabControl
SelectedIndex�Mode#
DevExpress.Xpf.Core.DXTabItem

Header)#DevExpress.Xpf.Core.ObjectConverterGroupSummary)#DevExpress.Xpf.Grid.GridSummaryItem)#DevExpress.Xpf.Grid.SummaryItemBase	FieldNameSummaryType AllowPerPixelScrolling�D9http://schemas.microsoft.com/winfx/2006/xaml/presentation:x,http://schemas.microsoft.com/winfx/2006/xaml;dx2http://schemas.devexpress.com/winfx/2008/xaml/core?dxe5http://schemas.devexpress.com/winfx/2008/xaml/editors@dxg2http://schemas.devexpress.com/winfx/2008/xaml/grid localclr-namespace:GridDemo�$>8/GridDemo;component/ModuleResources/SharedResources.xaml?�%�'&	'&	�7&	�7&	�77��".����$Normal"���.R�$
KeepOld=�$	�200���*
Invoices+$ProductName��$	UnitPrice��$Quantity��$Discount��	$

Auto=�.$	Row=�
.��.R�$	�200���*Orders+.8$	OrderDate��$
Freight��$ShipName��$ShipCountry��$ShipCity��$ShipAddress��	$

Auto=�.$	Row=�$
Info��
.��.R�
$�	5,5,10,10q�._���*MasterRowData.Row+��*TemplatedParent+��$
�Auto���$�12���$�*���.+�$	�150��$
�Left=�$	�Top=�$�80��.�$Photo�8�$�2���$
�Auto���$�12��������.+���$�0�$��0�$��Name:����$�0�$��1�$��	Position:����$�0�$��2�$��
Hire Date:����$�0�$��3�$��About:����$�0�$��4�$��Address:����$�2�$��0����*	FirstName+��$�2�$��1����*Title+��$�2�$��2����*
HireDate+��$�2�$��3�$
�Left=�$
��Wrap=����*Notes+��$�2�$��4����*	Address+��.R�
$�	5,5,10,10q�._�$�0q��$GAMasterRowData.RowState.(local:EmbeddedTableView.SelectedTabIndex)�$TwoWay=���*TemplatedParent+.@�
$Orders.�$	�200���*Orders+.8$	OrderDate��$
Freight��$ShipName��$ShipCountry��$ShipCity��$ShipAddress��	$

Auto=�.$	Row=�$
Info��
.
$	Customers.�$
KeepOld=�$	�200���*	Customers+.8$ContactName��$
Country��$
City��$
Address��$Phone��$Orders.Count��$	Sum=�	$

Auto=�.$	Row=�
. .!� <ResourceDictionary
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:dx="http://schemas.devexpress.com/winfx/2008/xaml/core"
    xmlns:dxe="http://schemas.devexpress.com/winfx/2008/xaml/editors"
    xmlns:dxg="http://schemas.devexpress.com/winfx/2008/xaml/grid"
    xmlns:local="clr-namespace:GridDemo">

    <ResourceDictionary.MergedDictionaries>
        <ResourceDictionary Source="/GridDemo;component/ModuleResources/SharedResources.xaml" />
    </ResourceDictionary.MergedDictionaries>

    <Style TargetType="dxg:DetailHeaderControl">
        <Setter Property="FontWeight" Value="Normal"/>
    </Style>
    <DataTemplate x:Key="invoicesTemplate">
        <dxg:GridControl ItemsSource="{Binding Invoices}" AutoGenerateColumns="KeepOld" MaxHeight="200">
            <dxg:GridControl.Columns>
                <dxg:GridColumn FieldName="ProductName" />
                <dxg:GridColumn FieldName="UnitPrice" />
                <dxg:GridColumn FieldName="Quantity" />
                <dxg:GridColumn FieldName="Discount" />
            </dxg:GridControl.Columns>
            <dxg:GridControl.View>
                <dxg:TableView VerticalScrollbarVisibility="Auto" AutoWidth="True"
                                       NavigationStyle="Row" ShowGroupPanel="False" />
            </dxg:GridControl.View>
        </dxg:GridControl>
    </DataTemplate>
    <DataTemplate x:Key="ordersTemplate">
        <dxg:GridControl ItemsSource="{Binding Orders}" MaxHeight="200" >
            <dxg:GridControl.DetailDescriptor>
                <dxg:ContentDetailDescriptor ShowHeader="False" ContentTemplate="{StaticResource invoicesTemplate}" />
            </dxg:GridControl.DetailDescriptor>
            <dxg:GridControl.Columns>
                <dxg:GridColumn FieldName="OrderDate"/>
                <dxg:GridColumn FieldName="Freight"/>
                <dxg:GridColumn FieldName="ShipName"/>
                <dxg:GridColumn FieldName="ShipCountry"/>
                <dxg:GridColumn FieldName="ShipCity"/>
                <dxg:GridColumn FieldName="ShipAddress"/>
            </dxg:GridControl.Columns>
            <dxg:GridControl.View>
                <dxg:TableView VerticalScrollbarVisibility="Auto" AutoWidth="True" NavigationStyle="Row"
                                       DetailHeaderContent="Info" ShowGroupPanel="False" />
            </dxg:GridControl.View>
        </dxg:GridControl>
    </DataTemplate>
    <DataTemplate x:Key="headerTemplate">
        <dx:MeasurePixelSnapper Margin="5,5,10,10">
            <Grid DataContext="{Binding MasterRowData.Row, RelativeSource={RelativeSource TemplatedParent}}">
                <Grid.ColumnDefinitions>
                    <ColumnDefinition Width="Auto" />
                    <ColumnDefinition Width="12" />
                    <ColumnDefinition Width="*"/>
                </Grid.ColumnDefinitions>
                <Grid.RowDefinitions>
                    <RowDefinition />
                    <RowDefinition />
                </Grid.RowDefinitions>
                <dxe:ImageEdit MaxWidth="150" HorizontalAlignment="Left" VerticalAlignment="Top"
                                        Source="{Binding Path=Photo, Converter={StaticResource ImageDataConverter}}"
                                        Width="80" ShowMenu="False" />
                <Grid Grid.Column="2">
                    <Grid.ColumnDefinitions>
                        <ColumnDefinition Width="Auto" />
                        <ColumnDefinition Width="12" />
                        <ColumnDefinition />
                    </Grid.ColumnDefinitions>
                    <Grid.RowDefinitions>
                        <RowDefinition />
                        <RowDefinition />
                        <RowDefinition />
                        <RowDefinition />
                        <RowDefinition />
                    </Grid.RowDefinitions>
                    <TextBlock Grid.Column="0" Grid.Row="0" Text="Name:" />
                    <TextBlock Grid.Column="0" Grid.Row="1" Text="Position:" />
                    <TextBlock Grid.Column="0" Grid.Row="2" Text="Hire Date:" />
                    <TextBlock Grid.Column="0" Grid.Row="3" Text="About:" />
                    <TextBlock Grid.Column="0" Grid.Row="4" Text="Address:" />
                    <TextBlock Grid.Column="2" Grid.Row="0"
                                        Text="{Binding FirstName}" />
                    <TextBlock Grid.Column="2" Grid.Row="1"
                                        Text="{Binding Title}" />
                    <TextBlock Grid.Column="2" Grid.Row="2"
                                        Text="{Binding HireDate}" />
                    <TextBlock Grid.Column="2" Grid.Row="3" HorizontalAlignment="Left" Text="{Binding Notes}" TextWrapping="Wrap" />
                    <TextBlock Grid.Column="2" Grid.Row="4"
                                        Text="{Binding Address}" />
                </Grid>
            </Grid>
        </dx:MeasurePixelSnapper>
    </DataTemplate>
    <DataTemplate x:Key="contentTemplate">
        <dx:MeasurePixelSnapper Margin="5,5,10,10">
            <dx:DXTabControl Margin="0" SelectedIndex="{Binding Path=MasterRowData.RowState.(local:EmbeddedTableView.SelectedTabIndex), Mode=TwoWay, RelativeSource={RelativeSource TemplatedParent}}">
                <dx:DXTabItem Header="Orders">
                    <dxg:GridControl ItemsSource="{Binding Orders}" MaxHeight="200" >
                        <dxg:GridControl.DetailDescriptor>
                            <dxg:ContentDetailDescriptor ShowHeader="False" ContentTemplate="{StaticResource invoicesTemplate}" />
                        </dxg:GridControl.DetailDescriptor>
                        <dxg:GridControl.Columns>
                            <dxg:GridColumn FieldName="OrderDate"/>
                            <dxg:GridColumn FieldName="Freight"/>
                            <dxg:GridColumn FieldName="ShipName"/>
                            <dxg:GridColumn FieldName="ShipCountry"/>
                            <dxg:GridColumn FieldName="ShipCity"/>
                            <dxg:GridColumn FieldName="ShipAddress"/>
                        </dxg:GridControl.Columns>
                        <dxg:GridControl.View>
                            <dxg:TableView VerticalScrollbarVisibility="Auto" AutoWidth="True" NavigationStyle="Row"
                                       DetailHeaderContent="Info" ShowGroupPanel="False" />
                        </dxg:GridControl.View>
                    </dxg:GridControl>
                </dx:DXTabItem>
                <dx:DXTabItem Header="Customers">
                    <dxg:GridControl AutoGenerateColumns="KeepOld" ItemsSource="{Binding Customers}" MaxHeight="200">
                        <dxg:GridControl.DetailDescriptor>
                            <dxg:ContentDetailDescriptor ShowHeader="False" ContentTemplate="{StaticResource ordersTemplate}" />
                        </dxg:GridControl.DetailDescriptor>
                        <dxg:GridControl.Columns>
                            <dxg:GridColumn FieldName="ContactName"/>
                            <dxg:GridColumn FieldName="Country" />
                            <dxg:GridColumn FieldName="City"/>
                            <dxg:GridColumn FieldName="Address"/>
                            <dxg:GridColumn FieldName="Phone"/>
                        </dxg:GridControl.Columns>
                        <dxg:GridControl.GroupSummary>
                            <dxg:GridSummaryItem FieldName="Orders.Count" SummaryType="Sum"/>
                        </dxg:GridControl.GroupSummary>
                        <dxg:GridControl.View>
                            <dxg:TableView VerticalScrollbarVisibility="Auto" AutoWidth="True"
                                                           NavigationStyle="Row" ShowGroupPanel="False"
                                                           AllowPerPixelScrolling="True" />
                        </dxg:GridControl.View>
                    </dxg:GridControl>
                </dx:DXTabItem>
            </dx:DXTabControl>
        </dx:MeasurePixelSnapper>
    </DataTemplate>
</ResourceDictionary>!�using System.Windows;
using System.Windows.Controls;

namespace GridDemo {
    public class DXExpanderDecorator : ContentControl {
        public static readonly DependencyProperty IsItemVisibleProperty = DependencyProperty.Register("IsItemVisible", typeof(bool), typeof(DXExpanderDecorator),
            new PropertyMetadata(true, new PropertyChangedCallback(OnIsItemVisibleChanged)));
        static void OnIsItemVisibleChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) {
            ((DXExpanderDecorator)d).OnIsItemVisibleChangedCore();
        }
        public bool IsItemVisible {
            get { return (bool)GetValue(IsItemVisibleProperty); }
            set { SetValue(IsItemVisibleProperty, value); }
        }
        void OnIsItemVisibleChangedCore() {
            VisualStateManager.GoToState(this, IsItemVisible ? "VisibleInGroup" : "HiddenInGroup", false);
        }
    }
}!q
MSBAML```����fbDevExpress.Xpf.Grid.v13.1.Core, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49auSclr-namespace:DevExpress.Xpf.Grid.Hierarchy;assembly=DevExpress.Xpf.Grid.v13.1.CoreDevExpress.Xpf.Grid.HierarchyD@GridDemo, Version=13.1.4.0, Culture=neutral, PublicKeyToken=null#clr-namespace:GridDemoGridDemo\XPresentationFramework, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35RNWindowsBase, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35WSPresentationCore, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35RNSystem.Xaml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089a]DevExpress.Xpf.Core.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a expandStoryborad��TargetPropertyO�ValueO�KeyTime collapseStoryborad blindsTemplate��
TargetType"GridDemo.DXExpanderDecorator
IsItemVisible�Path$DevExpress.Xpf.Core.DXExpanderTracksRevealing'!System.Windows.VisualStateManagerVisualStateGroups%System.Windows.VisualStateGroup
States System.Windows.VisualState	
Storyboard
��
TargetNameg�	BeginTimeW�From	
W�Tog�Duration fadeInTemplate�D9http://schemas.microsoft.com/winfx/2006/xaml/presentation:x,http://schemas.microsoft.com/winfx/2006/xaml;dx2http://schemas.devexpress.com/winfx/2008/xaml/core\dxghSclr-namespace:DevExpress.Xpf.Grid.Hierarchy;assembly=DevExpress.Xpf.Grid.v13.1.Core localclr-namespace:GridDemo%�&	&	=&	z&	c��.��U�$AnimationProgress�.\�n�$1Q�$0����.��U�$AnimationProgress�.\�n�$0Q�$0����"��.R�#�z��$)#(dxgh:HierarchyPanel.IsItemVisible)����"��.R���$�contentPresenter��.z��IsRevealedState��.VisibleInGroup��.	��.��W�$
contentPresenter��$@:(FrameworkElement.RenderTransform).(ScaleTransform.ScaleY)�$0:0:0X�$0X�$
1X�$0:0:.2D�
HiddenInGroup��.	��.��U�$
contentPresenter��$@:(FrameworkElement.RenderTransform).(ScaleTransform.ScaleY)�.\�n�$0Q�$0����"��.R�#�z��$)#(dxgh:HierarchyPanel.IsItemVisible)����"��.R���$�contentPresenter��IsRevealedState��.VisibleInGroup��.	��.��W�$
contentPresenter��$
Opacity�$0:0:0X�$0X�$
1X�$
0:0:1.5D�
HiddenInGroup��.	��.��U�$
contentPresenter��$
Opacity�.\�n�$0Q�$0��!0<ResourceDictionary
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:dx="http://schemas.devexpress.com/winfx/2008/xaml/core"
    xmlns:dxgh="clr-namespace:DevExpress.Xpf.Grid.Hierarchy;assembly=DevExpress.Xpf.Grid.v13.1.Core"
    xmlns:local="clr-namespace:GridDemo">
    <Storyboard x:Key="expandStoryborad">
        <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="AnimationProgress">
            <DiscreteDoubleKeyFrame Value="1" KeyTime="0" />
        </DoubleAnimationUsingKeyFrames>
    </Storyboard>
    <Storyboard x:Key="collapseStoryborad">
        <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="AnimationProgress">
            <DiscreteDoubleKeyFrame Value="0" KeyTime="0" />
        </DoubleAnimationUsingKeyFrames>
    </Storyboard>
    <ControlTemplate x:Key="blindsTemplate" TargetType="{x:Type ContentControl}">
        <local:DXExpanderDecorator IsItemVisible="{Binding Path=(dxgh:HierarchyPanel.IsItemVisible)}" Content="{TemplateBinding Content}">
            <local:DXExpanderDecorator.Template>
                <ControlTemplate TargetType="{x:Type ContentControl}">
                    <ContentPresenter Name="contentPresenter" dx:DXExpander.TracksRevealing="True">
                        <ContentPresenter.RenderTransform>
                            <ScaleTransform />
                        </ContentPresenter.RenderTransform>
                        <VisualStateManager.VisualStateGroups>
                            <VisualStateGroup x:Name="IsRevealedState">
                                <VisualState x:Name="VisibleInGroup">
                                    <Storyboard>
                                        <DoubleAnimation Storyboard.TargetName="contentPresenter" Storyboard.TargetProperty="(FrameworkElement.RenderTransform).(ScaleTransform.ScaleY)" BeginTime="0:0:0" From="0" To="1" Duration="0:0:.2">
                                        </DoubleAnimation>
                                    </Storyboard>
                                </VisualState>
                                <VisualState x:Name="HiddenInGroup">
                                    <Storyboard>
                                        <DoubleAnimationUsingKeyFrames Storyboard.TargetName="contentPresenter" Storyboard.TargetProperty="(FrameworkElement.RenderTransform).(ScaleTransform.ScaleY)">
                                            <DiscreteDoubleKeyFrame Value="0" KeyTime="0" />
                                        </DoubleAnimationUsingKeyFrames>
                                    </Storyboard>
                                </VisualState>
                            </VisualStateGroup>
                        </VisualStateManager.VisualStateGroups>
                    </ContentPresenter>
                </ControlTemplate>
            </local:DXExpanderDecorator.Template>
        </local:DXExpanderDecorator>
    </ControlTemplate>
    <ControlTemplate x:Key="fadeInTemplate" TargetType="{x:Type ContentControl}">
        <local:DXExpanderDecorator IsItemVisible="{Binding Path=(dxgh:HierarchyPanel.IsItemVisible)}" Content="{TemplateBinding Content}">
            <local:DXExpanderDecorator.Template>
                <ControlTemplate TargetType="{x:Type ContentControl}">
                    <ContentPresenter Name="contentPresenter">
                        <VisualStateManager.VisualStateGroups>
                            <VisualStateGroup x:Name="IsRevealedState">
                                <VisualState x:Name="VisibleInGroup">
                                    <Storyboard>
                                        <DoubleAnimation Storyboard.TargetName="contentPresenter" Storyboard.TargetProperty="Opacity" BeginTime="0:0:0" From="0" To="1" Duration="0:0:1.5">
                                        </DoubleAnimation>
                                    </Storyboard>
                                </VisualState>
                                <VisualState x:Name="HiddenInGroup">
                                    <Storyboard>
                                        <DoubleAnimationUsingKeyFrames Storyboard.TargetName="contentPresenter" Storyboard.TargetProperty="Opacity">
                                            <DiscreteDoubleKeyFrame Value="0" KeyTime="0" />
                                        </DoubleAnimationUsingKeyFrames>
                                    </Storyboard>
                                </VisualState>
                            </VisualStateGroup>
                        </VisualStateManager.VisualStateGroups>
                    </ContentPresenter>
                </ControlTemplate>
            </local:DXExpanderDecorator.Template>
        </local:DXExpanderDecorator>
    </ControlTemplate>
</ResourceDictionary>!{using System;
using System.Windows.Data;
using DevExpress.Data.Filtering;

namespace GridDemo {
    public class DoubleToCriteriaOperatorConverter : IValueConverter {
        #region IValueConverter Members
        object IValueConverter.Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) {
            BinaryOperator op = value as BinaryOperator;
            if(object.ReferenceEquals(op, null))
                return 0d;
            OperandValue operandValue = op.RightOperand as OperandValue;
            return operandValue.Value;
        }
        object IValueConverter.ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) {
            return new BinaryOperator("Quantity", Math.Round((double)value), BinaryOperatorType.Greater);
        }
        #endregion
    }
}!!
MSBAML```����D@GridDemo, Version=13.1.4.0, Culture=neutral, PublicKeyToken=null#clr-namespace:GridDemoGridDemo\XPresentationFramework, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35RNWindowsBase, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35WSPresentationCore, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35RNSystem.Xaml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089a]DevExpress.Xpf.Core.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49afbDevExpress.Xpf.Grid.v13.1.Core, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49aa]DevExpress.Xpf.Grid.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49alhDevExpress.Xpf.Grid.v13.1.Extensions, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49ae	aDevExpress.Xpf.DemoBase.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a0*GridDemo.DoubleToCriteriaOperatorConverter %!DoubleToCriteriaOperatorConverterB<DevExpress.Xpf.Core.DefaultBooleanToNullableBooleanConverter ,(DefaultBooleanToNullableBooleanConverter"DevExpress.Xpf.Grid.CardView cardView& DevExpress.Xpf.Grid.GridViewBaseShowGroupedColumns& DevExpress.Xpf.Grid.DataViewBaseNavigationStyleShowFixedTotalSummaryCardHeaderBinding�Path�RelativeSource�	Converter/)DevExpress.Xpf.Core.FormatStringConverterFormatString#DevExpress.Xpf.Grid.TableView 
columnView	AutoWidth %!quantityColumnFilterPopupTemplate)#DevExpress.Xpf.Core.BackgroundPanel+	%DevExpress.Xpf.DemoBase.SliderControl
	Header
MinimumMaximum	SmallStep

ValueMinWidth	EditValue�Mode�D9http://schemas.microsoft.com/winfx/2006/xaml/presentation:x,http://schemas.microsoft.com/winfx/2006/xaml;dx2http://schemas.devexpress.com/winfx/2008/xaml/core@dxg2http://schemas.devexpress.com/winfx/2008/xaml/gridAdxdb6http://schemas.devexpress.com/winfx/2008/xaml/demobase	 localclr-namespace:GridDemo%&	&	&	
&	r&	�7.$	Row=�.�$Data.OrderID���*Self+$
Order ID: {0}��.$	Row=�..��.R�.�$�11q�$	Minimum Quantity��$
0Q�$	100Q�$	�200��$1Q�$
17Q��$CustomColumnFilter���*TemplatedParent+8$TwoWay=�!�<ResourceDictionary
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:dx="http://schemas.devexpress.com/winfx/2008/xaml/core"
    xmlns:dxg="http://schemas.devexpress.com/winfx/2008/xaml/grid"
    xmlns:dxdb="http://schemas.devexpress.com/winfx/2008/xaml/demobase"
    xmlns:local="clr-namespace:GridDemo">

    <local:DoubleToCriteriaOperatorConverter x:Key="DoubleToCriteriaOperatorConverter" />
    <dx:DefaultBooleanToNullableBooleanConverter x:Key="DefaultBooleanToNullableBooleanConverter" />
    <dxg:CardView x:Key="cardView" ShowGroupedColumns="True" NavigationStyle="Row" ShowFixedTotalSummary="True">
        <dxg:CardView.CardHeaderBinding>
            <Binding Path="Data.OrderID" RelativeSource="{RelativeSource Self}">
                <Binding.Converter>
                    <dx:FormatStringConverter FormatString="{}Order ID: {0}" />
                </Binding.Converter>
            </Binding>
        </dxg:CardView.CardHeaderBinding>
    </dxg:CardView>
    <dxg:TableView x:Key="columnView" ShowGroupedColumns="True" NavigationStyle="Row" AutoWidth="True" ShowFixedTotalSummary="True"/>
    <DataTemplate x:Key="quantityColumnFilterPopupTemplate">
        <dx:BackgroundPanel>
            <dxdb:SliderControl EditValue="{Binding Path=CustomColumnFilter, RelativeSource={RelativeSource TemplatedParent}, Converter={StaticResource DoubleToCriteriaOperatorConverter}, Mode=TwoWay}" Margin="11" Header="Minimum Quantity" Minimum="0" Maximum="100" Width="200" SmallStep="1" ValueMinWidth="17" />
        </dx:BackgroundPanel>
    </DataTemplate>
</ResourceDictionary>!�MSBAML```����D@GridDemo, Version=13.1.4.0, Culture=neutral, PublicKeyToken=null#clr-namespace:GridDemoGridDemo\XPresentationFramework, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35RNWindowsBase, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35WSPresentationCore, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35RNSystem.Xaml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089a]DevExpress.Xpf.Core.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49afbDevExpress.Xpf.Grid.v13.1.Core, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49aa]DevExpress.Xpf.Grid.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49alhDevExpress.Xpf.Grid.v13.1.Extensions, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49ac	_System.Windows.Interactivity, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35�MergedDictionaries
�Source"GridDemo.RoundValueConverter RoundValueConverter columnOptionsTemplate��Name��Orientation%DevExpress.Xpf.Core.DragManagerIsStartDragPlace-'DevExpress.Xpf.Grid.OptionsToggleButtonName^�ToolTip#DevExpress.Xpf.Core.PopupBaseName�	StaysOpen	�ElementName
�Path�Mode�PlacementTarget
�AllowsTransparency-'DevExpress.Xpf.Core.MouseEventsEndPoint,&DevExpress.Xpf.Core.PopupBorderControl$DevExpress.Xpf.Core.GroupFrame("DevExpress.Xpf.Editors.ListBoxEdit%DevExpress.Xpf.Editors.BaseEdit
ShowBorderSelectedItem
StyleSettings:	4DevExpress.Xpf.Editors.RadioListBoxEditStyleSettingsItems$
DevExpress.Xpf.Grid.FixedStyle.	(System.Windows.Interactivity.Interaction	Behaviors'!GridDemo.RoutedEventCommandHelperRoutedEvent-
'GridDemo.EditValueChangedEventExtensionCommand��Triggers$DevExpress.Xpf.Grid.BaseColumnP�PropertyP�Value�
TargetName�Property�Value�D9http://schemas.microsoft.com/winfx/2006/xaml/presentation:x,http://schemas.microsoft.com/winfx/2006/xaml;dx2http://schemas.devexpress.com/winfx/2008/xaml/core@dxg2http://schemas.devexpress.com/winfx/2008/xaml/grid?dxe5http://schemas.devexpress.com/winfx/2008/xaml/editors localclr-namespace:GridDemoBi:http://schemas.microsoft.com/expression/2010/interactivity	�$-'/GridDemo;component/Themes/generic.xaml?�%�&	&	��.R���$
options��$�Right=�$
Horizontal=�..+�$showOptionsButton��$�15��$�15��$�0q�$%Choose the column's fixed style��$optionsPopup��$��Bottom=�.���$	showOptionsButton��$
	IsChecked�$TwoWay=��$	showOptionsButton��
.$
��Fade=�.��._�.�$�11q�$��Fixed Style��.�$�0,0,41,0q�.�$
Column.Fixed�$TwoWay=��Z�	
None=�
Left=�
	Right=�
�*$"View.DataContext.ClosePopupCommand+P��@ColumnPosition$Single=�.��$
options���y�$	Collapsed=�!�<ResourceDictionary
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:dx="http://schemas.devexpress.com/winfx/2008/xaml/core"
    xmlns:dxg="http://schemas.devexpress.com/winfx/2008/xaml/grid"
 xmlns:dxe="http://schemas.devexpress.com/winfx/2008/xaml/editors"
    xmlns:local="clr-namespace:GridDemo"
    xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity">

    <ResourceDictionary.MergedDictionaries>
        <ResourceDictionary Source="/GridDemo;component/Themes/generic.xaml" />
    </ResourceDictionary.MergedDictionaries>

    <local:RoundValueConverter x:Key="RoundValueConverter" />
    <DataTemplate x:Key="columnOptionsTemplate">
        <StackPanel x:Name="options" dx:DXDockPanel.Dock="Right" Orientation="Horizontal" dx:DragManager.IsStartDragPlace="false">
            <dxg:OptionsToggleButton x:Name="showOptionsButton" Width="15" Height="15" Margin="0" ToolTipService.ToolTip="Choose the column's fixed style" />
            <dx:PopupBase x:Name="optionsPopup" IsOpen="{Binding ElementName=showOptionsButton, Path=IsChecked, Mode=TwoWay}"
                                    PlacementTarget="{Binding ElementName=showOptionsButton}" Placement="Bottom"
                                    StaysOpen="False">
                <dx:PopupBase.AllowsTransparency>True</dx:PopupBase.AllowsTransparency>
                <dx:PopupBase.PopupAnimation>Fade</dx:PopupBase.PopupAnimation>
                <dx:MouseEventsEndPoint>
                    <dx:PopupBorderControl>
                        <dx:GroupFrame Margin="11" Header="Fixed Style">
                            <dxe:ListBoxEdit Margin="0,0,41,0" ShowBorder="False" SelectedItem="{Binding Path=Column.Fixed, Mode=TwoWay}" Background="{x:Null}">
                                <dxe:ListBoxEdit.StyleSettings>
                                    <dxe:RadioListBoxEditStyleSettings />
                                </dxe:ListBoxEdit.StyleSettings>
                                <dxe:ListBoxEdit.Items>
                                    <dxg:FixedStyle>None</dxg:FixedStyle>
                                    <dxg:FixedStyle>Left</dxg:FixedStyle>
                                    <dxg:FixedStyle>Right</dxg:FixedStyle>
                                </dxe:ListBoxEdit.Items>
                                <i:Interaction.Behaviors>
                                    <local:RoutedEventCommandHelper RoutedEvent="{local:EditValueChangedEvent}" Command="{Binding View.DataContext.ClosePopupCommand}" />
                                </i:Interaction.Behaviors>
                            </dxe:ListBoxEdit>
                        </dx:GroupFrame>
                    </dx:PopupBorderControl>
                </dx:MouseEventsEndPoint>
            </dx:PopupBase>
        </StackPanel>
        <DataTemplate.Triggers>
            <Trigger Property="dxg:GridColumn.ColumnPosition" Value="Single">
                <Setter TargetName="options" Property="Visibility" Value="Collapsed" />
            </Trigger>
        </DataTemplate.Triggers>
    </DataTemplate>
</ResourceDictionary>!
using System;
using System.Collections.Generic;
using System.Data;
using DevExpress.Xpf.DemoBase;

namespace GridDemo {
    #region GroupIntervalData

    public class GroupIntervalData {
        public static Random rnd = new Random();
        public static DataView Invoices { get { return CreateInvoicesDataTable().DefaultView; } }
        public static DataView Products { get { return CreateProductsDataTable().DefaultView; } }
        static DateTime GetDate(bool range) {
            DateTime ret = DateTime.Now;
            int r = rnd.Next(20);
            if(range) {
                if(r > 1) ret = ret.AddDays(rnd.Next(80) - 40);
                if(r > 18) ret = ret.AddMonths(rnd.Next(18));
            } else {
                ret = ret.AddDays(rnd.Next(r * 30) - r * 15);
            }
            return ret;
        }
        static decimal GetCount() {
            return rnd.Next(50) + 10;
        }
        static DataTable CreateInvoicesDataTable() {
            DataTable employees = NWindData.Invoices.Table;
            DataTable tbl = new DataTable("GroupInterval");
            tbl.Columns.Add("Country", typeof(string));
            tbl.Columns.Add("City", typeof(string));
            tbl.Columns.Add("OrderDate", typeof(DateTime));
            tbl.Columns.Add("UnitPrice", typeof(decimal));
            tbl.Columns.Add("Region", typeof(string));
            for(int i = 0; i < employees.Rows.Count; i++) {
                DataRow row = employees.Rows[rnd.Next(employees.Rows.Count - 1)];
                tbl.Rows.Add(new object[] { row["Country"], row["City"], GetDate(true), row["UnitPrice"], row["Region"] });
            }
            return tbl;
        }
        static DataTable CreateProductsDataTable() {
            const int rowCount = 1000;
            DataTable products = NWindData.Products.Table;
            DataTable tbl = new DataTable("GroupInterval");
            tbl.Columns.Add("ProductName", typeof(string));
            tbl.Columns.Add("UnitPrice", typeof(decimal));
            tbl.Columns.Add("Count", typeof(int));
            tbl.Columns.Add("OrderDate", typeof(DateTime));
            tbl.Columns.Add("OrderSum", typeof(decimal), "[UnitPrice] * [Count]");
            for(int i = 0; i < rowCount; i++) {
                DataRow row = products.Rows[rnd.Next(products.Rows.Count - 1)];
                tbl.Rows.Add(new object[] { row["ProductName"], row["UnitPrice"], GetCount(), GetDate(false) });
            }
            return tbl;
        }
    }


    #endregion
}!Ousing System.Collections;
using DevExpress.Xpf.DemoBase.Helpers;

namespace GridDemo {
    public class GroupSummariesAlignmentViewModel : DemoViewModelBase {
        public IList SalesByYearReport { get; private set; }
        public IList SalesByMonthReport { get; private set; }
        public string[] ReportTypes { get { return new string[] { "by Year", "by Month" }; } }
        IList actualSalesReport;
        public IList ActualSalesReport {
            get { return actualSalesReport; }
            set { ChangeProperty<IList>(ref actualSalesReport, value, "ActualSalesReport"); }
        }
        int reportTypeIndex;
        public int ReportTypeIndex {
            get { return reportTypeIndex; }
            set {
                ChangeProperty<int>(ref reportTypeIndex, value, "ReportTypeIndex");
                UpdateActualSalesReport();
            }
        }
        bool allowCascadeUpdate;
        public bool AllowCascadeUpdate {
            get { return allowCascadeUpdate; }
            set {
                ChangeProperty<bool>(ref allowCascadeUpdate, value, "AllowCascadeUpdate");
            }
        }
        public GroupSummariesAlignmentViewModel() {
            SalesByYearReport = SalesByYearData.GetSalesByYearData(false);
            SalesByMonthReport = SalesByYearData.GetSalesByYearData(true);
            UpdateActualSalesReport();
            allowCascadeUpdate = true;
        }
        void UpdateActualSalesReport() {
            ActualSalesReport = ReportTypeIndex == 0 ? SalesByYearReport : SalesByMonthReport;
        }
    }
}!Tusing System;
using System.Windows;
using System.Windows.Controls;
using DevExpress.Xpf.Grid;

namespace GridDemo {
    public class ConditionalGroupSummaryItemTemplateSelector : DataTemplateSelector {
        readonly DataTemplate smallValueTemplate;
        readonly DataTemplate largeValueTemplate;
        public ConditionalGroupSummaryItemTemplateSelector(DataTemplate smallValueTemplate, DataTemplate largeValueTemplate) {
            this.smallValueTemplate = smallValueTemplate;
            this.largeValueTemplate = largeValueTemplate;
        }
        public override DataTemplate SelectTemplate(object item, DependencyObject container) {
            GridGroupSummaryData data = (GridGroupSummaryData)item;
            if(data.SummaryItem.SummaryType == DevExpress.Data.SummaryItemType.Sum) {
                double value = Convert.ToDouble(data.Value);
                if(value < 5000)
                    return smallValueTemplate;
                if(value >= 10000)
                    return largeValueTemplate;
            }
            return null;
        }
    }
}!
MSBAML```����D@GridDemo, Version=13.1.4.0, Culture=neutral, PublicKeyToken=null#clr-namespace:GridDemoGridDemo\XPresentationFramework, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35RNWindowsBase, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35WSPresentationCore, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35RNSystem.Xaml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089a]DevExpress.Xpf.Core.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a�MergedDictionaries
�SourceGridDemo.DemoDataProvider DemoDataProvider/)DevExpress.Xpf.Core.FormatStringConverter FormatStringConverterFormatString:4DevExpress.Xpf.Core.BoolToVisibilityInverseConverter $ BoolToVisibilityInverseConverter/)DevExpress.Xpf.Core.BoolToObjectConverter *&BoolToGroupSummaryDisplayModeConverter	TrueValue
FalseValue *&customTemplateWithSummaryCustomization��Orientation)#DevExpress.Xpf.Editors.ComboBoxEdit GroupSummaryComboBoxEdit^�ToolTip+%DevExpress.Xpf.Editors.LookUpEditBaseItemsSource
�Source%DevExpress.Xpf.Editors.BaseEdit		EditValue
�Path�Mode�UpdateSourceTrigger
�	Converter customTemplate smallValueTemplate largeValueTemplate�D9http://schemas.microsoft.com/winfx/2006/xaml/presentation:x,http://schemas.microsoft.com/winfx/2006/xaml;dx2http://schemas.devexpress.com/winfx/2008/xaml/core?dxe5http://schemas.devexpress.com/winfx/2008/xaml/editors localclr-namespace:GridDemo�$-'/GridDemo;component/Themes/generic.xaml?�%,&	&	&	&	&	B777&	7&	&	s$
0.##��$AlignByColumns��$
Default����.R���$
Horizontal=�$�Center=�$�0,0,10,0q�.+�#��$Select summary type���*SummaryItemTypes+8	�$
SummaryItem.SummaryType�$TwoWay=�$PropertyChanged=���$�Center=�$��(��#��$Select summary column���*SummaryFieldNames+8	�$
SummaryItem.FieldName�$TwoWay=�$PropertyChanged=���$�Center=�$��)=����$�Center=����*SummaryValue+8
��.R���$
Horizontal=�$�Center=�$�0,0,10,0q�.+���$�Center=����*SummaryItem.SummaryType+��$�Center=�$��(����$�Center=����*Column.HeaderCaption+��$�Center=�$��)=����$�Center=����*SummaryValue+8
��.R�����	#FF238F06����*&$View.DefaultGroupSummaryItemTemplate+��.R�����	#FFBB4646����*&$View.DefaultGroupSummaryItemTemplate+!�<ResourceDictionary
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:dx="http://schemas.devexpress.com/winfx/2008/xaml/core"
    xmlns:dxe="http://schemas.devexpress.com/winfx/2008/xaml/editors"
    xmlns:local="clr-namespace:GridDemo">

    <ResourceDictionary.MergedDictionaries>
        <ResourceDictionary Source="/GridDemo;component/Themes/generic.xaml" />
    </ResourceDictionary.MergedDictionaries>

    <local:DemoDataProvider x:Key="DemoDataProvider" />
    <dx:FormatStringConverter x:Key="FormatStringConverter" FormatString="0.##" />
    <dx:BoolToVisibilityInverseConverter x:Key="BoolToVisibilityInverseConverter"/>
    <dx:BoolToObjectConverter x:Key="BoolToGroupSummaryDisplayModeConverter" TrueValue="AlignByColumns" FalseValue="Default"/>

    <DataTemplate x:Key="customTemplateWithSummaryCustomization">
        <StackPanel Orientation="Horizontal" VerticalAlignment="Center" Margin="0,0,10,0">
            <dxe:ComboBoxEdit Style="{DynamicResource GroupSummaryComboBoxEdit}" ItemsSource="{Binding SummaryItemTypes, Source={StaticResource DemoDataProvider}}" EditValue="{Binding Path=SummaryItem.SummaryType, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" ToolTipService.ToolTip="Select summary type"/>
            <TextBlock VerticalAlignment="Center" Text="("/>
            <dxe:ComboBoxEdit Style="{DynamicResource GroupSummaryComboBoxEdit}" ItemsSource="{Binding SummaryFieldNames, Source={StaticResource DemoDataProvider}}" EditValue="{Binding Path=SummaryItem.FieldName, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" ToolTipService.ToolTip="Select summary column"/>
            <TextBlock VerticalAlignment="Center" Text=")="/>
            <TextBlock VerticalAlignment="Center" Text="{Binding SummaryValue, Converter={StaticResource FormatStringConverter}}"/>
        </StackPanel>
    </DataTemplate>
    <DataTemplate x:Key="customTemplate">
        <StackPanel Orientation="Horizontal" VerticalAlignment="Center" Margin="0,0,10,0">
            <TextBlock VerticalAlignment="Center" Text="{Binding SummaryItem.SummaryType}" />
            <TextBlock VerticalAlignment="Center" Text="(" />
            <TextBlock VerticalAlignment="Center" Text="{Binding Column.HeaderCaption}" />
            <TextBlock VerticalAlignment="Center" Text=")=" />
            <TextBlock VerticalAlignment="Center" Text="{Binding SummaryValue, Converter={StaticResource FormatStringConverter}}" />
        </StackPanel>
    </DataTemplate>
    <DataTemplate x:Key="smallValueTemplate">
        <ContentControl Content="{Binding}" ContentTemplate="{Binding View.DefaultGroupSummaryItemTemplate}" Foreground="#FF238F06" />
    </DataTemplate>
    <DataTemplate x:Key="largeValueTemplate">
        <ContentControl Content="{Binding}" ContentTemplate="{Binding View.DefaultGroupSummaryItemTemplate}" Foreground="#FFBB4646" />
    </DataTemplate>
</ResourceDictionary>!9
using DevExpress.Xpf.DemoBase.Helpers;

namespace GridDemo {
    public class GroupSummaryViewModel : DemoViewModelBase {
        GridSummaryList defaultDisplayModeSummaries;
        public GridSummaryList DefaultDisplayModeSummaries {
            get { return defaultDisplayModeSummaries; }
            set {
                ChangeProperty<GridSummaryList>(ref defaultDisplayModeSummaries, value, "DefaultDisplayModeSummaries");
                UpdateSummarySource();
            }
        }
        GridSummaryList alignByColumnsDisplayModeSummaries;
        public GridSummaryList AlignByColumnsDisplayModeSummaries {
            get { return alignByColumnsDisplayModeSummaries; }
            set {
                ChangeProperty<GridSummaryList>(ref alignByColumnsDisplayModeSummaries, value, "AlignByColumnsDisplayModeSummaries");
                UpdateSummarySource();
            }
        }
        bool alignSummariesByColumns;
        public bool AlignSummariesByColumns {
            get { return alignSummariesByColumns; }
            set {
                ChangeProperty<bool>(ref alignSummariesByColumns, value, "AlignSummariesByColumns");
                UpdateSummarySource();
                UpdateCityColumn();
            }
        }
        bool allowCascadeUpdate;
        public bool AllowCascadeUpdate {
            get { return allowCascadeUpdate; }
            set {
                ChangeProperty<bool>(ref allowCascadeUpdate, value, "AllowCascadeUpdate");
            }
        }
        GridSummaryList summarySource;
        public GridSummaryList SummarySource {
            get { return summarySource; }
            set { ChangeProperty<GridSummaryList>(ref summarySource, value, "SummarySource"); }
        }
        int cityColumnVisibleIndex;
        public int CityColumnVisibleIndex {
            get { return cityColumnVisibleIndex; }
            set { ChangeProperty<int>(ref cityColumnVisibleIndex, value, "CityColumnVisibleIndex"); }
        }
        int cityColumnGroupIndex;
        public int CityColumnGroupIndex {
            get { return cityColumnGroupIndex; }
            set { ChangeProperty<int>(ref cityColumnGroupIndex, value, "CityColumnGroupIndex"); }
        }
        void UpdateSummarySource() {
            SummarySource = AlignSummariesByColumns ? AlignByColumnsDisplayModeSummaries : DefaultDisplayModeSummaries;
        }
        void UpdateCityColumn() {
            if(AlignSummariesByColumns)
                CityColumnVisibleIndex = 0;
            CityColumnGroupIndex = 0;
        }
    }
}!B
using System;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Ink;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;
using DevExpress.Xpf.Grid;
using DevExpress.Xpf.DemoBase;
using System.Collections.ObjectModel;
using System.Collections.Generic;
using DevExpress.Xpf.DemoBase.NWind;

namespace GridDemo {
    public class DemoTableViewHitTestVisitor : TableViewHitTestVisitorBase {
        readonly HitTest hitTest;
        public DemoTableViewHitTestVisitor(HitTest hitTest) {
            this.hitTest = hitTest;
        }
        public override void VisitRowIndicator(int rowHandle, IndicatorState indicatorState) {
            hitTest.AddHitInfo("RowIndicatorState", indicatorState.ToString());
            StopHitTesting();
        }
        public override void VisitTotalSummary(ColumnBase column) {
            hitTest.AddTotalSummaryInfo(column);
        }
        public override void VisitFixedTotalSummary(string summaryText) {
            hitTest.AddFixedTotalSummaryInfo(summaryText);
        }
        public override void VisitGroupValue(int rowHandle, GridColumnData columnData) {
            hitTest.AddGroupValueInfo(columnData);
        }
        public override void VisitGroupSummary(int rowHandle, GridGroupSummaryData summaryData) {
            hitTest.AddGroupSummaryInfo(summaryData);
        }
    }
    public class DemoCardViewHitTestVisitor : CardViewHitTestVisitorBase {
        readonly HitTest hitTest;
        public DemoCardViewHitTestVisitor(HitTest hitTest) {
            this.hitTest = hitTest;
        }
        public override void VisitTotalSummary(ColumnBase column) {
            hitTest.AddTotalSummaryInfo(column);
        }
        public override void VisitFixedTotalSummary(string summaryText) {
            hitTest.AddFixedTotalSummaryInfo(summaryText);
        }
        public override void VisitGroupValue(int rowHandle, GridColumnData columnData) {
            hitTest.AddGroupValueInfo(columnData);
        }
        public override void VisitGroupSummary(int rowHandle, GridGroupSummaryData summaryData) {
            hitTest.AddGroupSummaryInfo(summaryData);
        }
    }
    public class HitTestInfo : DependencyObject {
        public string Name { get; private set; }
        public string Text { get; private set; }
        public HitTestInfo(string name, string text) {
            this.Name = name;
            this.Text = text;
        }
    }
}!�	MSBAML```����D@GridDemo, Version=13.1.4.0, Culture=neutral, PublicKeyToken=null#clr-namespace:GridDemoGridDemo\XPresentationFramework, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35RNWindowsBase, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35WSPresentationCore, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35RNSystem.Xaml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089a]DevExpress.Xpf.Core.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49afbDevExpress.Xpf.Grid.v13.1.Core, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49aa]DevExpress.Xpf.Grid.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49alhDevExpress.Xpf.Grid.v13.1.Extensions, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49ae	aDevExpress.Xpf.DemoBase.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a?9DevExpress.Xpf.Core.BooleanToVisibilityConverterExtension  booleanToVisibilityConverter#DevExpress.Xpf.Grid.TableView 
	tableView& DevExpress.Xpf.Grid.DataViewBaseShowFixedTotalSummary IsTotalSummaryMenuEnabled& DevExpress.Xpf.Grid.GridViewBaseShowGroupedColumns	AutoWidthShowAutoFilterRowNewItemRowPositionJ�	AllowDrop"DevExpress.Xpf.Grid.CardView cardView	FixedSizeMinFixedSize	AllowCardResizing
NavigationStyleCardHeaderBinding�Path
�RelativeSource�	Converter/)DevExpress.Xpf.Core.FormatStringConverterFormatString hitInfoTemplateGridDemo.NameTextControl	NameValue	TextValue�D9http://schemas.microsoft.com/winfx/2006/xaml/presentation:x,http://schemas.microsoft.com/winfx/2006/xaml;dx2http://schemas.devexpress.com/winfx/2008/xaml/core@dxg2http://schemas.devexpress.com/winfx/2008/xaml/grid?dxe5http://schemas.devexpress.com/winfx/2008/xaml/editorsAdxdb6http://schemas.devexpress.com/winfx/2008/xaml/demobase	 localclr-namespace:GridDemo%(&	&	&	>&	�.....$	Top=�.$	300Q�$	200Q�	....$	
Row=�.�$Data.OrderID�
��*Self+$
Order ID: {0}����.R��*Name+�*Text+!
<ResourceDictionary
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:dx="http://schemas.devexpress.com/winfx/2008/xaml/core"
    xmlns:dxg="http://schemas.devexpress.com/winfx/2008/xaml/grid"
 xmlns:dxe="http://schemas.devexpress.com/winfx/2008/xaml/editors"
 xmlns:dxdb="http://schemas.devexpress.com/winfx/2008/xaml/demobase"
 xmlns:local="clr-namespace:GridDemo">

    <dx:BooleanToVisibilityConverter x:Key="booleanToVisibilityConverter" />
    <dxg:TableView x:Key="tableView" ShowFixedTotalSummary="True" IsTotalSummaryMenuEnabled="False" ShowGroupedColumns="True"
          AutoWidth="False" ShowAutoFilterRow="True" NewItemRowPosition="Top" AllowDrop="True" />
    <dxg:CardView x:Key="cardView" FixedSize="300" MinFixedSize="200" AllowCardResizing="True" ShowFixedTotalSummary="True" IsTotalSummaryMenuEnabled="False"
         ShowGroupedColumns="True" NavigationStyle="Row" AllowDrop="True">
        <dxg:CardView.CardHeaderBinding>
            <Binding Path="Data.OrderID" RelativeSource="{RelativeSource Self}">
                <Binding.Converter>
                    <dx:FormatStringConverter FormatString="{}Order ID: {0}" />
                </Binding.Converter>
            </Binding>
        </dxg:CardView.CardHeaderBinding>
    </dxg:CardView>
    <DataTemplate x:Key="hitInfoTemplate">
        <local:NameTextControl NameValue="{Binding Name}" TextValue="{Binding Text}" />
    </DataTemplate>
</ResourceDictionary>!�using System.Diagnostics;
using System.Windows.Documents;
using System.Windows.Interactivity;
using System.Windows.Navigation;

namespace GridDemo {
    public class HyperLinkAttachedBehavior : Behavior<Hyperlink> {
        protected override void OnAttached() {
            base.OnAttached();
            AssociatedObject.RequestNavigate += OnRequestNavigate;
        }
        protected override void OnDetaching() {
            AssociatedObject.RequestNavigate -= OnRequestNavigate;
            base.OnDetaching();
        }
        private void OnRequestNavigate(object sender, RequestNavigateEventArgs e) {
            Process.Start(new ProcessStartInfo(e.Uri.AbsoluteUri));
            e.Handled = true;
        }
    }
}!�MSBAML```����D@GridDemo, Version=13.1.4.0, Culture=neutral, PublicKeyToken=null#clr-namespace:GridDemoGridDemo\XPresentationFramework, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35RNWindowsBase, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35WSPresentationCore, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35RNSystem.Xaml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089a]DevExpress.Xpf.Core.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a�MergedDictionaries
�Source#GridDemo.IntToDoubleConverter IntToDoubleConverter )%alternativeHoursActiveDisplayTemplate InplaceProgressBarTemplate�Minimum�Maximum�Value�	Converter�RelativeSource &"alternativeHoursActiveEditTemplate��Name�SmallChange	�LargeChange
�Path�Mode�FocusVisualStyle4.DevExpress.Xpf.Core.NegationConverterExtension
J�
InputBindings��
IncreaseSmall�Command
��Key��
DecreaseSmall��
IncreaseLarge��	Modifiers��
DecreaseLarge�Padding�CornerRadiusJ�IsHitTestVisible�ElementName clipTemplate^�ToolTip�StretchB<DevExpress.Xpf.Core.DefaultBooleanToNullableBooleanConverter ,(DefaultBooleanToNullableBooleanConverter�D9http://schemas.microsoft.com/winfx/2006/xaml/presentation:x,http://schemas.microsoft.com/winfx/2006/xaml;dx2http://schemas.devexpress.com/winfx/2008/xaml/core?dxe5http://schemas.devexpress.com/winfx/2008/xaml/editors localclr-namespace:GridDemo�$-'/GridDemo;component/Themes/generic.xaml?�%�&	&	77&	~7&	^&	���.R��
������._��$�1q�8�$0Q�$
1000Q��*	EditValue+8��*TemplatedParent+��.R��$�Center=�.+���$PART_Editor��$
-100Q�$
1000Q�$10Q�$	50Q��$(
"(dxe:BaseEdit.OwnerEdit).EditValue�$TwoWay=�8��*Self+Z�{��$)
#(dxe:BaseEdit.OwnerEdit).IsReadOnly���*Self+
��#Z$	Add����#Z$Subtract����#Z$
Plus����#Z$Minus����#Z$	Add��$
Controlf���#Z$Subtract��$
Controlf���#Z$
Plus��$
Controlf���#Z$Minus��$
Controlf���$NotACommand��$
Left����$NotACommand��$Right����$NotACommand��$Up����$NotACommand��$
Down����$NotACommand��$PageUp����$NotACommand��$PageDown����$NotACommand��$
Home����$NotACommand��$	End���$
5,0,5,0q����	#1F000000$��1q�$2�����	#AFFFFFFF.$�Center=�$�Center=�._���
����$�Center=�$�Center=�$��NoWrap=����$
Value�$PART_Editor����.R��$�7��$�15��
�������.+�F�$
Fill=����	#FF000000������H�h�.Ӡt�H���.@s�Hp��.�v�H���.�0S�H8L�.�[�H 9�.�[�HH”.р4�H�.�v�H�.�Н�HH”.�0��HH�.�]�H��.��H(*�.��I��.0�IH�.�mIH”.рFIp��-�5I@ �-@�I���-� �H��-Ӏ[�H���-��H@ �-@��Hp��-�@��H�89.�@��H`�@.P"�H aK.�/�H��R.���HP|Z.�[�H��^.���HhZ_.�a�H��^.@�HP|Z.���H��R.���H aK.��H`�@.��H�89.���Hp�.���H��.��H�.��H�.�@I�.�@I�.@I��).@I�89.�@I��@.P+I.M.p��H��X.�x�H�8d.��HP�n.���H��n.�@��HP�n.�D�H�8d.�%�H��X.��H.M.��H��@.��H�89.���H��).��H�q.��Hp��-���H�z�-�׻H(��-�t�H�-�-Ӏ��H���- ��H�y�-� �H���-Ӡ��H�y�-@WI���- �I�-�-�jI(��-��"I�z�-��"Ip��-�Я"IH”.�Я"I 9�. �I8L�.��I���.� �I��.н�H�h�.�z�H�h�.Ѱ�H�h�.!O<ResourceDictionary
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:dx="http://schemas.devexpress.com/winfx/2008/xaml/core"
    xmlns:dxe="http://schemas.devexpress.com/winfx/2008/xaml/editors"
    xmlns:local="clr-namespace:GridDemo">

    <ResourceDictionary.MergedDictionaries>
        <ResourceDictionary Source="/GridDemo;component/Themes/generic.xaml" />
    </ResourceDictionary.MergedDictionaries>

    <local:IntToDoubleConverter x:Key="IntToDoubleConverter" />
    <ControlTemplate x:Key="alternativeHoursActiveDisplayTemplate">
        <Border Background="Transparent">
            <ProgressBar Margin="1" Template="{StaticResource InplaceProgressBarTemplate}" Minimum="0" Maximum="1000" Value="{Binding EditValue, Converter={StaticResource IntToDoubleConverter}, RelativeSource={RelativeSource TemplatedParent}}" />
        </Border>
    </ControlTemplate>
    <ControlTemplate x:Key="alternativeHoursActiveEditTemplate">
        <Grid VerticalAlignment="Center">
            <Slider x:Name="PART_Editor" Minimum="-100" Maximum="1000" SmallChange="10" LargeChange="50" Value="{Binding Path=(dxe:BaseEdit.OwnerEdit).EditValue, Mode=TwoWay, Converter={StaticResource IntToDoubleConverter}, RelativeSource={RelativeSource Self}}" FocusVisualStyle="{x:Null}">
                <Slider.IsEnabled>
                    <Binding Path="(dxe:BaseEdit.OwnerEdit).IsReadOnly" RelativeSource="{RelativeSource Self}">
                        <Binding.Converter>
                            <dx:NegationConverterExtension />
                        </Binding.Converter>
                    </Binding>
                </Slider.IsEnabled>
                <Slider.InputBindings>
                    <KeyBinding Command="{x:Static Slider.IncreaseSmall}" Key="Add" />
                    <KeyBinding Command="{x:Static Slider.DecreaseSmall}" Key="Subtract" />
                    <KeyBinding Command="{x:Static Slider.IncreaseSmall}" Key="Plus" />
                    <KeyBinding Command="{x:Static Slider.DecreaseSmall}" Key="Minus" />
                    <KeyBinding Command="{x:Static Slider.IncreaseLarge}" Key="Add" Modifiers="Control" />
                    <KeyBinding Command="{x:Static Slider.DecreaseLarge}" Key="Subtract" Modifiers="Control" />
                    <KeyBinding Command="{x:Static Slider.IncreaseLarge}" Key="Plus" Modifiers="Control" />
                    <KeyBinding Command="{x:Static Slider.DecreaseLarge}" Key="Minus" Modifiers="Control" />
                    <KeyBinding Command="NotACommand" Key="Left" />
                    <KeyBinding Command="NotACommand" Key="Right" />
                    <KeyBinding Command="NotACommand" Key="Up" />
                    <KeyBinding Command="NotACommand" Key="Down" />
                    <KeyBinding Command="NotACommand" Key="PageUp" />
                    <KeyBinding Command="NotACommand" Key="PageDown" />
                    <KeyBinding Command="NotACommand" Key="Home" />
                    <KeyBinding Command="NotACommand" Key="End" />
                </Slider.InputBindings>
            </Slider>
            <Border Padding="5,0,5,0" BorderBrush="#1F000000" BorderThickness="1" CornerRadius="2" Background="#AFFFFFFF" IsHitTestVisible="False" HorizontalAlignment="Center" VerticalAlignment="Center">
                <TextBlock Text="{Binding Path=Value, ElementName=PART_Editor}" Foreground="Black" VerticalAlignment="Center" HorizontalAlignment="Center" TextWrapping="NoWrap" />
            </Border>
        </Grid>
    </ControlTemplate>
    <DataTemplate x:Key="clipTemplate">
        <Grid Width="7" Height="15" ToolTipService.ToolTip="{Binding}" Background="Transparent">
            <Path Stretch="Fill" Fill="#FF000000" Data="F1 M 1222.51,786C 1220.9,786.008 1219.72,785.446 1219,784.57C 1218.27,783.699 1218.01,782.58 1218.01,781.501L 1218,771.999L 1219,771.999L 1219.01,781.501C 1219.07,783.357 1219.78,784.96 1222.51,785.001C 1225.24,784.96 1225.95,783.357 1226.01,781.501L 1226,770.502C 1225.93,768.68 1225.32,768.077 1223.5,768C 1221.68,768.077 1221.07,768.68 1221,770.502L 1221,775.502C 1221,775.996 1221.01,776.692 1221.21,777.189C 1221.44,777.682 1221.68,777.976 1222.5,778.001C 1223.32,777.976 1223.56,777.682 1223.79,777.189C 1223.99,776.692 1224,775.996 1224,775.502L 1224,773.126C 1224,772.25 1224,771.999 1224,771.999L 1225,771.999C 1225,771.999 1225,774.5 1225,775.502C 1225,776.005 1225.01,776.81 1224.71,777.562C 1224.44,778.32 1223.68,779.026 1222.5,779C 1221.32,779.026 1220.56,778.32 1220.29,777.562C 1219.99,776.81 1220,776.005 1220,775.502C 1220,774.5 1220,772.502 1220,770.502C 1220,769.424 1220.27,768.521 1220.9,767.897C 1221.52,767.275 1222.42,766.999 1223.5,767.001C 1224.58,766.999 1225.48,767.275 1226.1,767.897C 1226.73,768.521 1227,769.424 1227,770.502L 1227.01,781.501C 1227.01,782.58 1226.74,783.699 1226.02,784.57C 1225.3,785.439 1224.13,786 1222.54,786L 1222.51,786 Z " />
        </Grid>
    </DataTemplate>
    <dx:DefaultBooleanToNullableBooleanConverter x:Key="DefaultBooleanToNullableBooleanConverter" />
</ResourceDictionary>!�using System;
using System.Windows.Data;
using DevExpress.Xpf.Grid;
using System.Data;

namespace GridDemo {
    public class CustomerDetailsConverter : IValueConverter {
        #region IValueConverter Members

        public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) {
            RowData rowData = (RowData)value;
            if(rowData == null)
                return null;
            DataRowView row = (DataRowView)rowData.Row;
            string region = row["Region"] != DBNull.Value ? string.Format("{0}, ", row["Region"]) : "";
            return String.Format("{0}{1}, {2}, {3}\r\n{4}, {5}", region, row["Country"], row["City"], row["PostalCode"], row["Address"], row["Phone"]);
        }
        public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) {
            throw new NotImplementedException();
        }
        #endregion
    }
}!MSBAML```����D@GridDemo, Version=13.1.4.0, Culture=neutral, PublicKeyToken=null#clr-namespace:GridDemoGridDemo\XPresentationFramework, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35RNWindowsBase, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35WSPresentationCore, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35RNSystem.Xaml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089a]DevExpress.Xpf.Core.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49afbDevExpress.Xpf.Grid.v13.1.Core, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49aa]DevExpress.Xpf.Grid.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49alhDevExpress.Xpf.Grid.v13.1.Extensions, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a,&DevExpress.Xpf.Core.ImageDataConverter ImageDataConverter'!GridDemo.CustomerDetailsConverter CustomerDetailsConverter employeeDetailTemplate-'DevExpress.Xpf.Core.MeasurePixelSnapper�ColumnDefinitions& DevExpress.Xpf.Editors.ImageEditShowMenu
Source�Path�	Converter�RowDefinitions��Orientation employeeGridRowTemplate employeeGridTemplate%DevExpress.Xpf.Grid.GridControlNameColumns$DevExpress.Xpf.Grid.GridColumn$DevExpress.Xpf.Grid.ColumnBase		FieldName
View#DevExpress.Xpf.Grid.TableView	AutoWidth& DevExpress.Xpf.Grid.DataViewBaseShowColumnHeaders
DataRowTemplate customerDetailTemplate customerGridRowTemplate��Name3	-DevExpress.Xpf.Grid.RowDetailContainerControl��
TargetType customerGridTemplate$
DevExpress.Xpf.Grid.BaseColumn

Header)#DevExpress.Xpf.Core.ObjectConverter
MinWidth headerTemplate�D9http://schemas.microsoft.com/winfx/2006/xaml/presentation:x,http://schemas.microsoft.com/winfx/2006/xaml;dx2http://schemas.devexpress.com/winfx/2008/xaml/core@dxg2http://schemas.devexpress.com/winfx/2008/xaml/grid?dxe5http://schemas.devexpress.com/winfx/2008/xaml/editors localclr-namespace:GridDemo%#&	&	&	
7&	�7&	�7&	t7&	�7&	�7&	���.R�._����$
�Auto���$�12���.+�$�80��$
�Left=�$	�Top=�$�0�.�$	Row.Photo�8��$("CellData[0].Column.ActualDataWidth��$�2�$	�400����$�8����$
��Auto��.+���$
Horizontal=�$�1�$��0�.+���$
��Bold"����*
Row.FirstName+��$�� ����$
��Bold"����*Row.LastName+��$�1�$��1�$
�Left=�$
��Wrap=����*	Row.Notes+��.R���8�����.R�$PART_GridControl��$		FirstName��$	LastName��
$
�view��..8
��.R�._����$�12���.+���$�1�$
��Wrap=����8��.R���$Vertical=�.+�._���$defaultRowPresenter������*View.DefaultDataRowTemplate+	8������"��.R��$
��0,1,0,0q�#��z�$
�Stretch=�$
�Stretch=�#��z�._�����.R�$PART_GridControl��$	CompanyName��$Company Name$	170��$	ContactName��$Contact Name$	150��$	ContactTitle��$
Contact Title$	150��
$
�view��.8
��.R���$
��Bold"����!�<ResourceDictionary
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:dx="http://schemas.devexpress.com/winfx/2008/xaml/core"
    xmlns:dxg="http://schemas.devexpress.com/winfx/2008/xaml/grid"
 xmlns:dxe="http://schemas.devexpress.com/winfx/2008/xaml/editors"
    xmlns:local="clr-namespace:GridDemo">

    <dx:ImageDataConverter x:Key="ImageDataConverter" />
    <local:CustomerDetailsConverter x:Key="CustomerDetailsConverter" />
    <DataTemplate x:Key="employeeDetailTemplate">
        <dx:MeasurePixelSnapper>
            <Grid>
                <Grid.ColumnDefinitions>
                    <ColumnDefinition Width="Auto" />
                    <ColumnDefinition Width="12" />
                    <ColumnDefinition />
                </Grid.ColumnDefinitions>
                <dxe:ImageEdit MaxWidth="80" HorizontalAlignment="Left" VerticalAlignment="Top" Source="{Binding Path=Row.Photo, Converter={StaticResource ImageDataConverter}}" Grid.Column="0" Width="{Binding Path=CellData[0].Column.ActualDataWidth}" ShowMenu="False" />
                <Grid Grid.Column="2" MaxWidth="400">
                    <Grid.ColumnDefinitions>
                        <ColumnDefinition Width="8" />
                        <ColumnDefinition />
                    </Grid.ColumnDefinitions>
                    <Grid.RowDefinitions>
                        <RowDefinition Height="Auto" />
                        <RowDefinition />
                    </Grid.RowDefinitions>
                    <StackPanel Orientation="Horizontal" Grid.Column="1" Grid.Row="0">
                        <TextBlock Text="{Binding Row.FirstName}" FontWeight="Bold" />
                        <TextBlock Text=" " />
                        <TextBlock Text="{Binding Row.LastName}" FontWeight="Bold" />
                    </StackPanel>
                    <TextBlock Grid.Column="1" Grid.Row="1" HorizontalAlignment="Left" Text="{Binding Row.Notes}" TextWrapping="Wrap" />
                </Grid>
            </Grid>
        </dx:MeasurePixelSnapper>
    </DataTemplate>
    <DataTemplate x:Key="employeeGridRowTemplate">
        <ContentControl Content="{Binding}" ContentTemplate="{StaticResource employeeDetailTemplate}" />
    </DataTemplate>
    <ControlTemplate x:Key="employeeGridTemplate">
        <dxg:GridControl x:Name="PART_GridControl">
            <dxg:GridControl.Columns>
                <dxg:GridColumn FieldName="FirstName" />
                <dxg:GridColumn FieldName="LastName" />
            </dxg:GridControl.Columns>
            <dxg:GridControl.View>
                <dxg:TableView Name="view" AutoWidth="False" ShowColumnHeaders="False" DataRowTemplate="{StaticResource employeeGridRowTemplate}" />
            </dxg:GridControl.View>
        </dxg:GridControl>
    </ControlTemplate>
    <DataTemplate x:Key="customerDetailTemplate">
        <dx:MeasurePixelSnapper>
            <Grid>
                <Grid.ColumnDefinitions>
                    <ColumnDefinition Width="12" />
                    <ColumnDefinition />
                </Grid.ColumnDefinitions>
                <TextBlock Grid.Column="1" Text="{Binding Converter={StaticResource CustomerDetailsConverter}}" TextWrapping="Wrap" />
            </Grid>
        </dx:MeasurePixelSnapper>
    </DataTemplate>
    <DataTemplate x:Key="customerGridRowTemplate">
        <StackPanel Orientation="Vertical">
            <dx:MeasurePixelSnapper>
                <ContentPresenter x:Name="defaultRowPresenter" Content="{Binding}" ContentTemplate="{Binding View.DefaultDataRowTemplate}" />
            </dx:MeasurePixelSnapper>
            <dxg:RowDetailContainerControl Content="{Binding}" ContentTemplate="{StaticResource customerDetailTemplate}">
                <dxg:RowDetailContainerControl.Template>
                    <ControlTemplate TargetType="{x:Type ContentControl}">
                        <Border BorderThickness="0,1,0,0" BorderBrush="{TemplateBinding BorderBrush}" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Background="{TemplateBinding Background}">
                            <ContentPresenter />
                        </Border>
                    </ControlTemplate>
                </dxg:RowDetailContainerControl.Template>
            </dxg:RowDetailContainerControl>
        </StackPanel>
    </DataTemplate>
    <ControlTemplate x:Key="customerGridTemplate">
        <dxg:GridControl x:Name="PART_GridControl">

            <dxg:GridControl.Columns>
                <dxg:GridColumn FieldName="CompanyName" Header="Company Name" MinWidth="170" />
                <dxg:GridColumn FieldName="ContactName" Header="Contact Name" MinWidth="150" />
                <dxg:GridColumn FieldName="ContactTitle" Header="Contact Title" MinWidth="150" />
            </dxg:GridControl.Columns>
            <dxg:GridControl.View>
                <dxg:TableView Name="view" AutoWidth="False" DataRowTemplate="{StaticResource customerGridRowTemplate}" />
            </dxg:GridControl.View>
        </dxg:GridControl>
    </ControlTemplate>
    <DataTemplate x:Key="headerTemplate">
        <TextBlock Text="{Binding}" FontWeight="Bold" />
    </DataTemplate>
</ResourceDictionary>!�$using System;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Ink;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;
using System.Collections;
using DevExpress.Data.Browsing;
using System.Collections.Generic;
using System.ComponentModel;

namespace GridDemo {
    public class CountInfo {
        public int Value { get; set; }
        public string Description { get; set; }
    }
    public class VirtualPropertyDescriptor : PropertyDescriptor {
        string propertyName;
        Type propertyType;
        bool isReadOnly;
        VirtualList list;
        int index;
        public VirtualPropertyDescriptor(VirtualList list, int index, string propertyName, Type propertyType, bool isReadOnly)
            : base(propertyName, null) {
            this.propertyName = propertyName;
            this.propertyType = propertyType;
            this.isReadOnly = isReadOnly;
            this.list = list;
            this.index = index;
        }
        public override bool CanResetValue(object component) {
            return false;
        }
        public override object GetValue(object component) {
            return list.GetPropertyValue((int)component, index);
        }
        public override void SetValue(object component, object val) {
            list.SetPropertyValue((int)component, index, val);
        }
        public override bool IsReadOnly { get { return isReadOnly; } }
        public override string Name { get { return propertyName; } }
        public override Type ComponentType { get { return typeof(VirtualList); } }
        public override Type PropertyType { get { return propertyType; } }
        public override void ResetValue(object component) {
        }
        public override bool ShouldSerializeValue(object component) { return true; }
    }
    public struct Location {
        public int Row { get; set; }
        public int Column { get; set; }
        public override bool Equals(object obj) {
            Location l = (Location)obj;
            return l.Row == Row && l.Column == Column;
        }
        public override int GetHashCode() {
            return Row ^ Column;
        }
    }
    public class VirtualList : IList, ITypedList {
        const int BaseColumnCount = 7;
        int recordCount;
        int columnCount;
        Dictionary<Location, object> fValues = new Dictionary<Location, object>();
        PropertyDescriptorCollection columnCollection;
        public VirtualList() {
            recordCount = 1000;
            columnCount = 1000;
            CreateColumnCollection();
        }
        public void SetPropertyValue(int rowIndex, int columnIndex, object value) {
            fValues[new Location() { Column = columnIndex, Row = rowIndex }] = value;
        }
        public object GetPropertyValue(int rowIndex, int columnIndex) {
            object value = null;
            if(fValues.TryGetValue(new Location() { Column = columnIndex, Row = rowIndex }, out value)) {
                return value;
            }
            if(columnIndex == 0)
                return rowIndex + 1;
            switch((columnIndex - 1) % BaseColumnCount) {
                case 0: //From
                    return OutlookData.Users[GetPseudoRandomValue(rowIndex, columnIndex, OutlookData.Users.Length)].Name;
                case 1: //To
                    return OutlookData.Users[GetPseudoRandomValue(rowIndex, columnIndex, OutlookData.Users.Length)].Name;
                case 2: //Sent
                    return DateTime.Today.AddDays(GetPseudoRandomValue(rowIndex, columnIndex, 30));
                case 3: //HasAttachment
                    return GetPseudoRandomValue(rowIndex, columnIndex, 2) == 0 ? true : false;
                case 4: //Size
                    return GetPseudoRandomValue(rowIndex, columnIndex, 10000);
                case 5: //Priority
                    return (Priority)GetPseudoRandomValue(rowIndex, columnIndex, DevExpress.Data.Mask.EnumHelper.GetValues(typeof(Priority)).Length);
                case 6: //Subject
                    return OutlookDataGenerator.Subjects[GetPseudoRandomValue(rowIndex, columnIndex, OutlookDataGenerator.Subjects.Length)];
            }
            throw new NotImplementedException();
        }
        public string GetPropertyName(int columnIndex) {
            if(columnIndex == 0)
                return "ID(1)";
            switch((columnIndex - 1) % BaseColumnCount) {
                case 0: //From
                    return GetFullPropertyName("From", columnIndex);
                case 1: //To
                    return GetFullPropertyName("To", columnIndex);
                case 2: //Sent
                    return GetFullPropertyName("Sent", columnIndex);
                case 3: //HasAttachment
                    return GetFullPropertyName("HasAttachment", columnIndex);
                case 4: //Size
                    return GetFullPropertyName("Size", columnIndex);
                case 5: //Priority
                    return GetFullPropertyName("Priority", columnIndex);
                case 6: //Subject
                    return GetFullPropertyName("Subject", columnIndex);
            }
            throw new NotImplementedException();
        }
        string GetFullPropertyName(string name, int columnIndex) {
            return name + "(" + (columnIndex + 1) + ")";
        }
        public Type GetPropertyType(int columnIndex) {
            if(columnIndex == 0)
                return typeof(int);
            switch((columnIndex - 1) % BaseColumnCount) {
                case 0: //From
                    return typeof(string);
                case 1: //To
                    return typeof(string);
                case 2: //Sent
                    return typeof(DateTime);
                case 3: //HasAttachment
                    return typeof(bool);
                case 4: //Size
                    return typeof(int);
                case 5: //Priority
                    return typeof(Priority);
                case 6: //Subject
                    return typeof(string);
            }
            throw new NotImplementedException();
        }
        int GetPseudoRandomValue(int rowIndex, int columnIndex, int maxValue) {
            return (rowIndex + columnIndex) % maxValue;
        }
        public int RecordCount {
            get { return recordCount; }
            set {
                if(value < 1) value = 0;
                if(RecordCount == value) return;
                recordCount = value;
            }
        }
        public int ColumnCount {
            get { return columnCount; }
            set {
                if(value < 1) value = 0;
                if(ColumnCount == value) return;
                columnCount = value;
                CreateColumnCollection();
            }
        }
        protected virtual void CreateColumnCollection() {
            VirtualPropertyDescriptor[] pds = new VirtualPropertyDescriptor[ColumnCount];
            for(int n = 0; n < ColumnCount; n++) {
                pds[n] = new VirtualPropertyDescriptor(this, n, GetPropertyName(n), GetPropertyType(n), false);
            }
            columnCollection = new PropertyDescriptorCollection(pds);
        }

        #region ITypedList Interface
        PropertyDescriptorCollection ITypedList.GetItemProperties(PropertyDescriptor[] descs) { return columnCollection; }
        string ITypedList.GetListName(PropertyDescriptor[] descs) { return ""; }
        #endregion
        #region IList Interface
        public virtual int Count {
            get { return RecordCount; }
        }
        public virtual bool IsSynchronized {
            get { return true; }
        }
        public virtual object SyncRoot {
            get { return true; }
        }
        public virtual bool IsReadOnly {
            get { return false; }
        }
        public virtual bool IsFixedSize {
            get { return true; }
        }
        public virtual IEnumerator GetEnumerator() {
            return null;
        }
        public virtual void CopyTo(System.Array array, int fIndex) {
        }
        public virtual int Add(object val) {
            throw new NotImplementedException();
        }
        public virtual void Clear() {
            throw new NotImplementedException();
        }
        public virtual bool Contains(object val) {
            throw new NotImplementedException();
        }
        public virtual int IndexOf(object val) {
            throw new NotImplementedException();
        }
        public virtual void Insert(int fIndex, object val) {
            throw new NotImplementedException();
        }
        public virtual void Remove(object val) {
            throw new NotImplementedException();
        }
        public virtual void RemoveAt(int fIndex) {
            throw new NotImplementedException();
        }
        object IList.this[int fIndex] {
            get { return fIndex; }
            set { }
        }
        #endregion
    }
}!?MSBAML```����D@GridDemo, Version=13.1.4.0, Culture=neutral, PublicKeyToken=null#clr-namespace:GridDemoGridDemo\XPresentationFramework, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35RNWindowsBase, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35WSPresentationCore, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35RNSystem.Xaml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089a]DevExpress.Xpf.Core.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a?9DevExpress.Xpf.Core.BooleanToVisibilityConverterExtension  BooleanToVisibilityConverter CustomWaitIndicatorStyle��
TargetType'!DevExpress.Xpf.Core.WaitIndicator�Property�Value clipTemplate^�ToolTip�Stretch daysActiveTemplate�D9http://schemas.microsoft.com/winfx/2006/xaml/presentation:x,http://schemas.microsoft.com/winfx/2006/xaml;dx2http://schemas.devexpress.com/winfx/2008/xaml/core localclr-namespace:GridDemo%�&	&	&	E&	���".����$Right=����$Bottom=���.R��$�7��$�15��
�������.+�F�$
Fill=����	#FF000000������H�h�.Ӡt�H���.@s�Hp��.�v�H���.�0S�H8L�.�[�H 9�.�[�HH”.р4�H�.�v�H�.�Н�HH”.�0��HH�.�]�H��.��H(*�.��I��.0�IH�.�mIH”.рFIp��-�5I@ �-@�I���-� �H��-Ӏ[�H���-��H@ �-@��Hp��-�@��H�89.�@��H`�@.P"�H aK.�/�H��R.���HP|Z.�[�H��^.���HhZ_.�a�H��^.@�HP|Z.���H��R.���H aK.��H`�@.��H�89.���Hp�.���H��.��H�.��H�.�@I�.�@I�.@I��).@I�89.�@I��@.P+I.M.p��H��X.�x�H�8d.��HP�n.���H��n.�@��HP�n.�D�H�8d.�%�H��X.��H.M.��H��@.��H�89.���H��).��H�q.��Hp��-���H�z�-�׻H(��-�t�H�-�-Ӏ��H���- ��H�y�-� �H���-Ӡ��H�y�-@WI���- �I�-�-�jI(��-��"I�z�-��"Ip��-�Я"IH”.�Я"I 9�. �I8L�.��I���.� �I��.н�H�h�.�z�H�h�.Ѱ�H�h�.��.R���$��DA��$Days Active (Unbound)��!�<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
                    xmlns:dx="http://schemas.devexpress.com/winfx/2008/xaml/core"
                    xmlns:local="clr-namespace:GridDemo">

    <dx:BooleanToVisibilityConverter x:Key="BooleanToVisibilityConverter" />
    <Style x:Key="CustomWaitIndicatorStyle" TargetType="{x:Type dx:WaitIndicator}">
        <Setter Property="HorizontalAlignment" Value="Right" />
        <Setter Property="VerticalAlignment" Value="Bottom" />
    </Style>
    <DataTemplate x:Key="clipTemplate">
        <Grid Width="7" Height="15" ToolTipService.ToolTip="{Binding}" Background="Transparent">
            <Path Stretch="Fill" Fill="#FF000000" Data="F1 M 1222.51,786C 1220.9,786.008 1219.72,785.446 1219,784.57C 1218.27,783.699 1218.01,782.58 1218.01,781.501L 1218,771.999L 1219,771.999L 1219.01,781.501C 1219.07,783.357 1219.78,784.96 1222.51,785.001C 1225.24,784.96 1225.95,783.357 1226.01,781.501L 1226,770.502C 1225.93,768.68 1225.32,768.077 1223.5,768C 1221.68,768.077 1221.07,768.68 1221,770.502L 1221,775.502C 1221,775.996 1221.01,776.692 1221.21,777.189C 1221.44,777.682 1221.68,777.976 1222.5,778.001C 1223.32,777.976 1223.56,777.682 1223.79,777.189C 1223.99,776.692 1224,775.996 1224,775.502L 1224,773.126C 1224,772.25 1224,771.999 1224,771.999L 1225,771.999C 1225,771.999 1225,774.5 1225,775.502C 1225,776.005 1225.01,776.81 1224.71,777.562C 1224.44,778.32 1223.68,779.026 1222.5,779C 1221.32,779.026 1220.56,778.32 1220.29,777.562C 1219.99,776.81 1220,776.005 1220,775.502C 1220,774.5 1220,772.502 1220,770.502C 1220,769.424 1220.27,768.521 1220.9,767.897C 1221.52,767.275 1222.42,766.999 1223.5,767.001C 1224.58,766.999 1225.48,767.275 1226.1,767.897C 1226.73,768.521 1227,769.424 1227,770.502L 1227.01,781.501C 1227.01,782.58 1226.74,783.699 1226.02,784.57C 1225.3,785.439 1224.13,786 1222.54,786L 1222.51,786 Z " />
        </Grid>
    </DataTemplate>
    <DataTemplate x:Key="daysActiveTemplate">
        <TextBlock Text="DA" ToolTipService.ToolTip="Days Active (Unbound)" />
    </DataTemplate>
</ResourceDictionary>!�MSBAML```����D@GridDemo, Version=13.1.4.0, Culture=neutral, PublicKeyToken=null#clr-namespace:GridDemoGridDemo\XPresentationFramework, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35RNWindowsBase, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35WSPresentationCore, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35RNSystem.Xaml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089a]DevExpress.Xpf.Core.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a�MergedDictionaries
�Source CustomWaitIndicatorStyle��
TargetType'!DevExpress.Xpf.Core.WaitIndicator�Property�Value clipTemplate^�ToolTip�Stretch�D9http://schemas.microsoft.com/winfx/2006/xaml/presentation:x,http://schemas.microsoft.com/winfx/2006/xaml;dx2http://schemas.devexpress.com/winfx/2008/xaml/core localclr-namespace:GridDemo�$>8/GridDemo;component/ModuleResources/SharedResources.xaml?�%�&	&	@��".����$Right=����$Bottom=���.R��$�7��$�15��
�������.+�F�$
Fill=����	#FF000000������H�h�.Ӡt�H���.@s�Hp��.�v�H���.�0S�H8L�.�[�H 9�.�[�HH”.р4�H�.�v�H�.�Н�HH”.�0��HH�.�]�H��.��H(*�.��I��.0�IH�.�mIH”.рFIp��-�5I@ �-@�I���-� �H��-Ӏ[�H���-��H@ �-@��Hp��-�@��H�89.�@��H`�@.P"�H aK.�/�H��R.���HP|Z.�[�H��^.���HhZ_.�a�H��^.@�HP|Z.���H��R.���H aK.��H`�@.��H�89.���Hp�.���H��.��H�.��H�.�@I�.�@I�.@I��).@I�89.�@I��@.P+I.M.p��H��X.�x�H�8d.��HP�n.���H��n.�@��HP�n.�D�H�8d.�%�H��X.��H.M.��H��@.��H�89.���H��).��H�q.��Hp��-���H�z�-�׻H(��-�t�H�-�-Ӏ��H���- ��H�y�-� �H���-Ӡ��H�y�-@WI���- �I�-�-�jI(��-��"I�z�-��"Ip��-�Я"IH”.�Я"I 9�. �I8L�.��I���.� �I��.н�H�h�.�z�H�h�.Ѱ�H�h�.!r<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
                    xmlns:dx="http://schemas.devexpress.com/winfx/2008/xaml/core"
                    xmlns:local="clr-namespace:GridDemo">

    <ResourceDictionary.MergedDictionaries>
        <ResourceDictionary Source="/GridDemo;component/ModuleResources/SharedResources.xaml" />
    </ResourceDictionary.MergedDictionaries>

    <Style x:Key="CustomWaitIndicatorStyle" TargetType="{x:Type dx:WaitIndicator}">
        <Setter Property="HorizontalAlignment" Value="Right" />
        <Setter Property="VerticalAlignment" Value="Bottom" />
    </Style>
    <DataTemplate x:Key="clipTemplate">
        <Grid Width="7" Height="15" ToolTipService.ToolTip="{Binding}" Background="Transparent">
            <Path Stretch="Fill" Fill="#FF000000" Data="F1 M 1222.51,786C 1220.9,786.008 1219.72,785.446 1219,784.57C 1218.27,783.699 1218.01,782.58 1218.01,781.501L 1218,771.999L 1219,771.999L 1219.01,781.501C 1219.07,783.357 1219.78,784.96 1222.51,785.001C 1225.24,784.96 1225.95,783.357 1226.01,781.501L 1226,770.502C 1225.93,768.68 1225.32,768.077 1223.5,768C 1221.68,768.077 1221.07,768.68 1221,770.502L 1221,775.502C 1221,775.996 1221.01,776.692 1221.21,777.189C 1221.44,777.682 1221.68,777.976 1222.5,778.001C 1223.32,777.976 1223.56,777.682 1223.79,777.189C 1223.99,776.692 1224,775.996 1224,775.502L 1224,773.126C 1224,772.25 1224,771.999 1224,771.999L 1225,771.999C 1225,771.999 1225,774.5 1225,775.502C 1225,776.005 1225.01,776.81 1224.71,777.562C 1224.44,778.32 1223.68,779.026 1222.5,779C 1221.32,779.026 1220.56,778.32 1220.29,777.562C 1219.99,776.81 1220,776.005 1220,775.502C 1220,774.5 1220,772.502 1220,770.502C 1220,769.424 1220.27,768.521 1220.9,767.897C 1221.52,767.275 1222.42,766.999 1223.5,767.001C 1224.58,766.999 1225.48,767.275 1226.1,767.897C 1226.73,768.521 1227,769.424 1227,770.502L 1227.01,781.501C 1227.01,782.58 1226.74,783.699 1226.02,784.57C 1225.3,785.439 1224.13,786 1222.54,786L 1222.51,786 Z " />
        </Grid>
    </DataTemplate>
</ResourceDictionary>!�Husing System;
using System.Windows;
using System.Windows.Media;
using System.Windows.Media.Animation;
using DevExpress.Xpf.Utils;
using System.Windows.Threading;
using System.Collections.Generic;
using System.ComponentModel;
using System.Collections.ObjectModel;
using System.Collections.Specialized;
using System.Collections;

namespace GridDemo {
    public class ProcessInfoAnimationElement : FrameworkContentElement {
        public static readonly DependencyProperty CpuUsageProperty;
        public static readonly DependencyProperty MemoryUsageColorProperty;
        public static readonly DependencyProperty RevealProgressProperty;
        static ProcessInfoAnimationElement() {
            CpuUsageProperty = DependencyPropertyManager.Register("CpuUsage", typeof(double), typeof(ProcessInfoAnimationElement), new PropertyMetadata(0d));
            MemoryUsageColorProperty = DependencyPropertyManager.Register("MemoryUsageColor", typeof(Color), typeof(ProcessInfoAnimationElement), new PropertyMetadata(Color.FromArgb(0xFF, 0x92, 0x96, 0x9C)));
            RevealProgressProperty = DependencyPropertyManager.Register("RevealProgress", typeof(double), typeof(ProcessInfoAnimationElement), new PropertyMetadata(1d));
        }
        public double CpuUsage {
            get { return (double)GetValue(CpuUsageProperty); }
            set { SetValue(CpuUsageProperty, value); }
        }
        public Color MemoryUsageColor {
            get { return (Color)GetValue(MemoryUsageColorProperty); }
            set { SetValue(MemoryUsageColorProperty, value); }
        }
        public double RevealProgress {
            get { return (double)GetValue(RevealProgressProperty); }
            set { SetValue(RevealProgressProperty, value); }
        }
    }
    public class ProcessInfo : INotifyPropertyChanged {
        int pid;
        string name;
        int memoryUsage, cpuUsage;
        bool isNew;
        CpuUsageHistory history = new CpuUsageHistory();
        public object History { get { return history; } }
        public ProcessInfo(int pid, string name, int memoryUsage, int cpuUsage, bool isNew) {
            this.pid = pid;
            this.name = name;
            this.memoryUsage = memoryUsage;
            this.cpuUsage = cpuUsage;
            this.isNew = isNew;
        }
        internal bool IsDeleting { get; set; }
        public int PID {
            get { return pid; }
            set {
                if(PID == value) return;
                pid = value;
                OnChanged("PID");
            }
        }
        public string Name {
            get { return name; }
            set {
                if(Name == value) return;
                name = value;
                OnChanged("Name");
            }
        }
        public int MemoryUsage {
            get { return memoryUsage; }
            set {
                if(MemoryUsage == value) return;
                memoryUsage = value;
                OnChanged("MemoryUsage");
            }
        }
        public int CpuUsage {
            get { return cpuUsage; }
            set {
                if(CpuUsage == value) return;
                cpuUsage = value;
                OnChanged("CpuUsage");
            }
        }
        protected void OnChanged(string propertyName) {
            if(PropertyChanged != null)
                PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
        }
        [Browsable(false)]
        public ProcessGenerator Owner { get; set; }

        public event PropertyChangedEventHandler PropertyChanged;
    }
    public class ProcessInfoList : ObservableCollection<ProcessInfo> {
    }
    public class ProcessGenerator : DependencyObject {
        public enum ProcessUpdateMode { AddRemoveUpdate, AddRemove, Update }
        enum UpdateType { Add, Remove, Change }

        const double DefaultUpdateInterval = 200d;
        const double DefaultUpdateDuration = 600d;
        const double DefaultUpdateHistoryInterval = 1000d;
        const int DefaultProcessMaxCount = 25, DefaultProcessMinCount = 10;
        readonly string[] ProcessNames = new string[] {"wininit.exe", "svchost.exe", "svchost.exe", "svchost.exe", "svchost.exe", "System", "devenv.exe",
                                                           "intetinfo.exe", "lsm.exe", "lsass.exe", "winlogon.exe", "services.exe"};

        public static readonly DependencyProperty UpdateIntervalProperty, ProcessMaxCountProperty, ProcessMinCountProperty, UpdateModeProperty,UpdateHistoryIntervalProperty;
        static ProcessGenerator() {
            UpdateIntervalProperty = DependencyPropertyManager.Register("UpdateInterval", typeof(double), typeof(ProcessGenerator), new FrameworkPropertyMetadata(DefaultUpdateInterval, OnUpdateIntervalChanged));
            UpdateHistoryIntervalProperty = DependencyPropertyManager.Register("UpdateHistoryInterval", typeof(double), typeof(ProcessGenerator), new FrameworkPropertyMetadata(DefaultUpdateHistoryInterval, OnUpdateHistoryIntervalChanged));
            ProcessMaxCountProperty = DependencyPropertyManager.Register("ProcessMaxCount", typeof(int), typeof(ProcessGenerator), new FrameworkPropertyMetadata(DefaultProcessMaxCount));
            ProcessMinCountProperty = DependencyPropertyManager.Register("ProcessMinCount", typeof(int), typeof(ProcessGenerator), new FrameworkPropertyMetadata(DefaultProcessMinCount));
            UpdateModeProperty = DependencyPropertyManager.Register("UpdateMode", typeof(ProcessUpdateMode), typeof(ProcessGenerator), new FrameworkPropertyMetadata(ProcessUpdateMode.AddRemoveUpdate));
        }
        static void OnUpdateIntervalChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) {
            ProcessGenerator generator = d as ProcessGenerator;
            generator.UpdateTimer.Interval = TimeSpan.FromMilliseconds((double)e.NewValue);
        }
        static void OnUpdateHistoryIntervalChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) {
            ProcessGenerator generator = d as ProcessGenerator;
            generator.updateHistoryTimer.Interval = TimeSpan.FromMilliseconds((double)e.NewValue);
        }
        ProcessInfoList processes;
        DispatcherTimer updateTimer;
        int realProcessCount;
        LiveData module;
        Random random = new Random();
        Dictionary<int, ProcessInfoAnimationElement> animationElements = new Dictionary<int, ProcessInfoAnimationElement>();
        public ProcessGenerator(LiveData module) {
            this.processes = new ProcessInfoList();
            this.updateTimer = new DispatcherTimer();
            this.updateTimer.Interval = TimeSpan.FromMilliseconds(DefaultUpdateInterval);
            this.updateTimer.Tick += OnTimerTick;
            this.updateHistoryTimer = new DispatcherTimer();
            this.updateHistoryTimer.Interval = TimeSpan.FromMilliseconds(DefaultUpdateHistoryInterval);
            this.updateHistoryTimer.Tick += OnHistoryTimerTick;
            this.module = module;
        }
        public ProcessInfoList Processes { get { return processes; } }
        protected internal DispatcherTimer UpdateTimer { get { return updateTimer; } }
        delegate void UpdateDelegate();
        void OnTimerTick(object sender, EventArgs e) {
            Dispatcher.BeginInvoke(new Action(UpdateProcessList)
                , DispatcherPriority.Background
);
        }
        DispatcherTimer updateHistoryTimer;
        void OnHistoryTimerTick(object sender, EventArgs e) {
            foreach(ProcessInfo item in Processes) {
                ((CpuUsageHistory)item.History).AddHistoryValue(item.CpuUsage);
            }
        }
        protected void UpdateProcessList() {
            PerformRandomUpdate();
        }
        UpdateType GetUpdateType() {
            if(CanAddRemove) {
                if(CanUpdate) return (UpdateType)random.Next(3);
                return (UpdateType)random.Next(2);
            }
            return UpdateType.Change;
        }
        bool CanAddRemove { get { return UpdateMode == ProcessUpdateMode.AddRemoveUpdate || UpdateMode == ProcessUpdateMode.AddRemove; } }
        bool CanUpdate { get { return UpdateMode == ProcessUpdateMode.AddRemoveUpdate || UpdateMode == ProcessUpdateMode.Update; } }

        class ProcessToRemove {
            public ProcessInfo ProcToRemove { get; set; }
            public ProcessGenerator ProcGenerator { get; set; }

            public void OnStoryboardCompleted(object sender, EventArgs e) {
                ProcGenerator.RemoveProcess(ProcToRemove);
            }
        }
        protected void PerformRandomUpdate() {
            TimeSpan duration = TimeSpan.FromMilliseconds(600);
            ProcessInfo info;
            switch(GetUpdateType()) {
                case UpdateType.Add:
                    info = AddProcess(true);
                    if(info != null && module.newRowCheckBox.IsChecked.Value) {
                        Storyboard storyboard = GetStoryboard("newRowStoryboard");
                        BeginStoryboard(storyboard, info, ProcessInfoAnimationElement.RevealProgressProperty);
                    }
                    break;
                case UpdateType.Remove:
                    if(realProcessCount > 0 && realProcessCount > ProcessMinCount) {
                        info = GetRandomProcess();
                        realProcessCount--;
                        if(module.deleteRowCheckBox.IsChecked.Value) {
                            info.IsDeleting = true;
                            Storyboard storyboard = GetStoryboard("deleteRowStoryboard");
                            ProcessToRemove procToRemove = new ProcessToRemove() { ProcToRemove = info, ProcGenerator = this };
                            storyboard.Completed += new EventHandler(procToRemove.OnStoryboardCompleted);
                            BeginStoryboard(storyboard, info, ProcessInfoAnimationElement.RevealProgressProperty);
                        } else {
                            RemoveProcess(info);
                        }
                    }
                    break;
                case UpdateType.Change:
                    if(realProcessCount > 0) {
                        ModifyMemoryUsage();
                        ModifyCpuUsage();
                    }
                    break;
            }
        }
        void RemoveProcess(ProcessInfo info) {
            Processes.Remove(info);
            animationElements.Remove(info.PID);
        }
        Storyboard GetStoryboard(string resourceKey) {
            return StoryboardContainer.CreateStoryboard(module, resourceKey);
        }
        void BeginStoryboard(Storyboard storyboard, ProcessInfo info, DependencyProperty property) {
            Storyboard.SetTargetProperty(storyboard, new PropertyPath(property.GetName()));
            Storyboard.SetTarget(storyboard, GetAnimationElement(info));
            storyboard.Begin();
        }
        void ModifyMemoryUsage() {
            ProcessInfo info = GetRandomProcess();
            double oldMemoryUsageValue = info.MemoryUsage;
            info.MemoryUsage = random.Next(10000);

            if(module.memoryUsageCheckBox.IsChecked.Value) {
                Storyboard storyboard = GetStoryboard(oldMemoryUsageValue < info.MemoryUsage ? "memoryUsageIncreasedColorStoryboard" : "memoryUsageDecreasedColorStoryboard");
                BeginStoryboard(storyboard, info, ProcessInfoAnimationElement.MemoryUsageColorProperty);
            }
        }
        void ModifyCpuUsage() {
            ProcessInfo info = GetRandomProcess();
            info.CpuUsage = random.Next(60);
            Storyboard storyboard;
            if(module.cpuUsageCheckBox.IsChecked.Value) {
                storyboard = GetStoryboard("cpuUsageChangeStoryboard");
                DoubleAnimationUsingKeyFrames animation = (DoubleAnimationUsingKeyFrames)storyboard.Children[0];
                animation.KeyFrames[0].Value = GetAnimationElement(info).CpuUsage;
                animation.KeyFrames[1].Value = info.CpuUsage;
            } else {
                storyboard = new Storyboard();
                storyboard.Children.Add(new DoubleAnimation() { Duration = TimeSpan.Zero, To = info.CpuUsage });
            }
            BeginStoryboard(storyboard, info, ProcessInfoAnimationElement.CpuUsageProperty);
        }
        ProcessInfo GetRandomProcess() {
            while(true) {
                ProcessInfo info = Processes[random.Next(Processes.Count)];
                if(!info.IsDeleting)
                    return info;
            }
        }
        int counter;
        ProcessInfo AddProcess(bool isNew) {
            ProcessInfo info = null;
            if(realProcessCount < ProcessMaxCount) {
                string name = ProcessNames[random.Next(ProcessNames.Length)];
                info = new ProcessInfo(++counter, name, random.Next(10000), random.Next(100), isNew);
                GetAnimationElement(info).CpuUsage = info.CpuUsage;
                Processes.Insert(random.Next(Processes.Count), info);
                realProcessCount++;
            }
            return info;
        }
        public void Initialize() {
            this.counter = 0;
            Processes.Clear();
            realProcessCount = 0;
            for(int i = 0; i < ProcessMaxCount; i++)
                AddProcess(false);
        }
        public void Start() {
            UpdateTimer.Start();
            updateHistoryTimer.Start();
        }
        public void Stop() {
            UpdateTimer.Stop();
            updateHistoryTimer.Stop();
        }
        public ProcessInfoAnimationElement GetAnimationElement(ProcessInfo info) {
            ProcessInfoAnimationElement result = null;
            if(!animationElements.TryGetValue(info.PID, out result)) {
                result = new ProcessInfoAnimationElement();
                animationElements.Add(info.PID, result);
            }
            return result;
        }
        public double UpdateInterval {
            get { return (double)GetValue(UpdateIntervalProperty); }
            set { SetValue(UpdateIntervalProperty, value); }
        }
        public double UpdateHistoryInterval {
            get { return (double)GetValue(UpdateHistoryIntervalProperty); }
            set { SetValue(UpdateHistoryIntervalProperty, value); }
        }
        public int ProcessMaxCount {
            get { return (int)GetValue(ProcessMaxCountProperty); }
            set { SetValue(ProcessMaxCountProperty, value); }
        }
        public int ProcessMinCount {
            get { return (int)GetValue(ProcessMinCountProperty); }
            set { SetValue(ProcessMinCountProperty, value); }
        }
        public ProcessUpdateMode UpdateMode {
            get { return (ProcessUpdateMode)GetValue(UpdateModeProperty); }
            set { SetValue(UpdateModeProperty, value); }
        }
    }
    public class LiveDataChartElement : FrameworkElement {
        const int BarWidth = 4;
        const int BarSpace = 1;
        const int SegmentHeight = 2;
        const int SegmentSpace = 1;
        const double MaxBarHeight = 19;
        public static readonly DependencyProperty CpuUsageHistoryProperty;
        public static readonly DependencyProperty BarBrushesProperty;
        static LiveDataChartElement() {
            CpuUsageHistoryProperty = DependencyProperty.Register("CpuUsageHistory", typeof(CpuUsageHistory), typeof(LiveDataChartElement), new FrameworkPropertyMetadata(null, new PropertyChangedCallback(OnCpuUsageHistoryChanged)));
            BarBrushesProperty = DependencyProperty.Register("BarBrushes", typeof(IList), typeof(LiveDataChartElement), new FrameworkPropertyMetadata(null, FrameworkPropertyMetadataOptions.AffectsRender));
        }
        static void OnCpuUsageHistoryChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) {
            ((LiveDataChartElement)d).OnCpuUsageHistoryChanged((CpuUsageHistory)e.OldValue);
        }
        public CpuUsageHistory CpuUsageHistory {
            get { return (CpuUsageHistory)GetValue(CpuUsageHistoryProperty); }
            set { SetValue(CpuUsageHistoryProperty, value); }
        }
        public IList BarBrushes {
            get { return (IList)GetValue(BarBrushesProperty); }
            set { SetValue(BarBrushesProperty, value); }
        }
        protected override void OnRender(DrawingContext drawingContext) {
            base.OnRender(drawingContext);
            if(CpuUsageHistory == null || BarBrushes == null)
                return;
            int barCount = (int)Math.Floor((ActualWidth - BarWidth) / (BarWidth + BarSpace) + 1);
            int startHitoryIndex = Math.Max(0, CpuUsageHistory.Count - barCount);
            for(int i = startHitoryIndex; i < CpuUsageHistory.Count; i++) {
                int placeIndex = i - startHitoryIndex;
                double height = Math.Round(MaxBarHeight * (CpuUsageHistory[i] / 100d));
                int segmentCount = (int)Math.Floor((height - SegmentHeight) / (SegmentHeight + SegmentSpace) + 1);
                for(int j = 0; j < segmentCount; j++) {
                    Rect rect = new Rect(placeIndex * (BarWidth + BarSpace), ActualHeight - j * (SegmentHeight + SegmentSpace), BarWidth, SegmentHeight);
                    drawingContext.DrawRectangle((Brush)BarBrushes[j], null, rect);
                }
            }
        }
        void OnCpuUsageHistoryChanged(CpuUsageHistory oldValue) {
            if(oldValue != null)
                oldValue.CollectionChanged -= new NotifyCollectionChangedEventHandler(OnCpuUsageHistoryCollectionChanged);
            if(CpuUsageHistory != null)
                CpuUsageHistory.CollectionChanged += new NotifyCollectionChangedEventHandler(OnCpuUsageHistoryCollectionChanged);
            InvalidateVisual();
        }

        void OnCpuUsageHistoryCollectionChanged(object sender, NotifyCollectionChangedEventArgs e) {
            InvalidateVisual();
        }
    }
    public class CpuUsageHistory : ObservableCollection<double> {
        public void AddHistoryValue(double value) {
            Add(value);
            if(Count > 100)
                RemoveAt(0);
        }
    }
}!
MSBAML```����OKmscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089I2clr-namespace:System.Collections;assembly=mscorlibSystem.CollectionsD@GridDemo, Version=13.1.4.0, Culture=neutral, PublicKeyToken=null#clr-namespace:GridDemoGridDemo\XPresentationFramework, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35RNWindowsBase, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35WSPresentationCore, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35RNSystem.Xaml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089a]DevExpress.Xpf.Core.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49afbDevExpress.Xpf.Grid.v13.1.Core, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49aa]DevExpress.Xpf.Grid.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49al	hDevExpress.Xpf.Grid.v13.1.Extensions, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a�MergedDictionaries
�Source newRowStoryboard"GridDemo.StoryboardContainer
StoryboardO�KeyTimeO�Value��	KeySpline deleteRowStoryboard '#memoryUsageIncreasedColorStoryboardg�	BeginTime��KeyTime��Value	��	KeySpline '#memoryUsageDecreasedColorStoryboard cpuUsageChangeStoryboard3-DevExpress.Xpf.Grid.RowPropertyValueConverter RowPropertyValueConverter rowTemplate
��Color$DevExpress.Xpf.Core.DXExpanderHorizontalExpandVerticalExpand

�Tag�Path�	Converter�ConverterParameterAnimationProgress�RelativeSource/)DevExpress.Xpf.Core.FormatStringConverter memoryUsageConverterFormatString progressTemplate�Minimum�Maximum 	InplaceProgressBarTemplate�DataContext�Value 
memUsageTemplate�Name�CornerRadius��
TextAlignment historyTemplate#GridDemo.LiveDataChartElementCpuUsageHistory
BarBrushes"System.Collections.ArrayList�D9http://schemas.microsoft.com/winfx/2006/xaml/presentation:x,http://schemas.microsoft.com/winfx/2006/xaml;dx2http://schemas.devexpress.com/winfx/2008/xaml/core@dxg2http://schemas.devexpress.com/winfx/2008/xaml/grid	Bcollections2clr-namespace:System.Collections;assembly=mscorlib localclr-namespace:GridDemo�$-'/GridDemo;component/Themes/generic.xaml?�%&	&	`&	�&	�&	W&	�&	�7&	�&	�7	7&	
p77&	���.R�.��.��U�.\���$0:0:0��$0Q���$0:0:1��$1Q�$
0,0,0,1����.R�.��.��U�.\���$0:0:0��$1Q���$0:0:1��$0Q�$
0,0,1,0.25����.R�.��.����$00:00:00X�.g���$00:00:00��$	#FF92969C����$00:00:00.25��$	#FFB83152��$	0,0,0.799,0.109����$	0.414,0.899,1,1��$00:00:02��$	#FF92969C����.R�.��.����$00:00:00X�.g���$00:00:00��$	#FF92969C����$00:00:00.25��$	#FF669331��$	0,0,0.799,0.109����$	0.414,0.899,1,1��$00:00:02��$	#FF92969C����.R�.��.��U�$00:00:00X�.\���$00:00:00����$0.414,0.899,1,1��$00:00:01����.R��$�border������$
Transparent��._�$�reveal��$
None=�$FromBottomToTop=�
�$DataContext�8$AnimationElement���$Tag.RevealProgress���*Self+._���$
�content������*View.DefaultDataRowTemplate+$	0 K����.R��$
�2,1,2,1q�$0Q�$	100Q�8��$
Data�8$AnimationElement���$CpuUsage���.R��$	progress6��$
3,3,3,3��$
�2,1,2,1q�$�Center=��$
Data�8$AnimationElement������
�$MemoryUsageColor�._���$
�Auto��$��14(�$Center=�$�Center=�$�	10,0,10,0q�$�Center=�$
�Auto�����	#FFFFFFFF���*DataContext.Value+8��*TemplatedParent+��.R�$	�2,0q��*Value+��$
	#FFC872C0����$
	#FFC06BB8����$
	#FFBB67B3����$
	#FFB35FAB����$
	#FFAA57A3����$
	#FFA24F9B����$
	#FF9B4994����$
	#FF94438C��!<ResourceDictionary
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:dx="http://schemas.devexpress.com/winfx/2008/xaml/core"
    xmlns:dxg="http://schemas.devexpress.com/winfx/2008/xaml/grid"
    xmlns:collections="clr-namespace:System.Collections;assembly=mscorlib"
    xmlns:local="clr-namespace:GridDemo">

    <ResourceDictionary.MergedDictionaries>
        <ResourceDictionary Source="/GridDemo;component/Themes/generic.xaml" />
    </ResourceDictionary.MergedDictionaries>

    <ControlTemplate x:Key="newRowStoryboard">
        <local:StoryboardContainer>
            <Storyboard>
                <DoubleAnimationUsingKeyFrames>
                    <SplineDoubleKeyFrame KeyTime="0:0:0" Value="0" />
                    <SplineDoubleKeyFrame KeyTime="0:0:1" Value="1" KeySpline="0,0,0,1" />
                </DoubleAnimationUsingKeyFrames>
            </Storyboard>
        </local:StoryboardContainer>
    </ControlTemplate>
    <ControlTemplate x:Key="deleteRowStoryboard">
        <local:StoryboardContainer>
            <Storyboard>
                <DoubleAnimationUsingKeyFrames>
                    <SplineDoubleKeyFrame KeyTime="0:0:0" Value="1" />
                    <SplineDoubleKeyFrame KeyTime="0:0:1" Value="0" KeySpline="0,0,1,0.25" />
                </DoubleAnimationUsingKeyFrames>
            </Storyboard>
        </local:StoryboardContainer>
    </ControlTemplate>
    <ControlTemplate x:Key="memoryUsageIncreasedColorStoryboard">
        <local:StoryboardContainer>
            <Storyboard>
                <ColorAnimationUsingKeyFrames BeginTime="00:00:00">
                    <SplineColorKeyFrame KeyTime="00:00:00" Value="#FF92969C" />
                    <SplineColorKeyFrame KeyTime="00:00:00.25" Value="#FFB83152" KeySpline="0,0,0.799,0.109" />
                    <SplineColorKeyFrame KeySpline="0.414,0.899,1,1" KeyTime="00:00:02" Value="#FF92969C" />
                </ColorAnimationUsingKeyFrames>
            </Storyboard>
        </local:StoryboardContainer>
    </ControlTemplate>
    <ControlTemplate x:Key="memoryUsageDecreasedColorStoryboard">
        <local:StoryboardContainer>
            <Storyboard>
                <ColorAnimationUsingKeyFrames BeginTime="00:00:00">
                    <SplineColorKeyFrame KeyTime="00:00:00" Value="#FF92969C" />
                    <SplineColorKeyFrame KeyTime="00:00:00.25" Value="#FF669331" KeySpline="0,0,0.799,0.109" />
                    <SplineColorKeyFrame KeySpline="0.414,0.899,1,1" KeyTime="00:00:02" Value="#FF92969C" />
                </ColorAnimationUsingKeyFrames>
            </Storyboard>
        </local:StoryboardContainer>
    </ControlTemplate>
    <ControlTemplate x:Key="cpuUsageChangeStoryboard">
        <local:StoryboardContainer>
            <Storyboard>
                <DoubleAnimationUsingKeyFrames BeginTime="00:00:00">
                    <SplineDoubleKeyFrame KeyTime="00:00:00" />
                    <SplineDoubleKeyFrame KeySpline="0.414,0.899,1,1" KeyTime="00:00:01" />
                </DoubleAnimationUsingKeyFrames>
            </Storyboard>
        </local:StoryboardContainer>
    </ControlTemplate>
    <dxg:RowPropertyValueConverter x:Key="RowPropertyValueConverter" />
    <DataTemplate x:Key="rowTemplate">
        <Border Name="border">
            <Border.Background>
                <SolidColorBrush Color="Transparent" />
            </Border.Background>
            <dx:DXExpander Name="reveal" Tag="{Binding Path=DataContext, Converter={StaticResource RowPropertyValueConverter}, ConverterParameter=AnimationElement}" AnimationProgress="{Binding Path=Tag.RevealProgress, RelativeSource={RelativeSource Self}}" HorizontalExpand="None" VerticalExpand="FromBottomToTop">
                <ContentPresenter Name="content" Content="{Binding}" ContentTemplate="{Binding View.DefaultDataRowTemplate}" />
            </dx:DXExpander>
        </Border>
    </DataTemplate>
    <dx:FormatStringConverter x:Key="memoryUsageConverter" FormatString="0 K" />
    <DataTemplate x:Key="progressTemplate">
        <ProgressBar Margin="2,1,2,1" Minimum="0" Maximum="100" DataContext="{Binding Path=Data, Converter={StaticResource RowPropertyValueConverter}, ConverterParameter=AnimationElement}" Value="{Binding Path=CpuUsage}" Template="{StaticResource InplaceProgressBarTemplate}" />
    </DataTemplate>
    <DataTemplate x:Key="memUsageTemplate">
        <Border DataContext="{Binding Path=Data, Converter={StaticResource RowPropertyValueConverter}, ConverterParameter=AnimationElement}" CornerRadius="3,3,3,3" x:Name="progress6" Margin="2,1,2,1" HorizontalAlignment="Center">
            <Border.Background>
                <SolidColorBrush Color="{Binding Path=MemoryUsageColor}" />
            </Border.Background>
            <TextBlock Width="Auto" FontSize="14" Text="{Binding DataContext.Value, Converter={StaticResource memoryUsageConverter}, RelativeSource={RelativeSource TemplatedParent}}" TextAlignment="Center" HorizontalAlignment="Center" Margin="10,0,10,0" VerticalAlignment="Center" Height="Auto" Foreground="#FFFFFFFF" />
        </Border>
    </DataTemplate>
    <DataTemplate x:Key="historyTemplate">
        <local:LiveDataChartElement Margin="2,0" CpuUsageHistory="{Binding Value}">
            <local:LiveDataChartElement.BarBrushes>
                <collections:ArrayList>
                    <SolidColorBrush Color="#FFC872C0" />
                    <SolidColorBrush Color="#FFC06BB8" />
                    <SolidColorBrush Color="#FFBB67B3" />
                    <SolidColorBrush Color="#FFB35FAB" />
                    <SolidColorBrush Color="#FFAA57A3" />
                    <SolidColorBrush Color="#FFA24F9B" />
                    <SolidColorBrush Color="#FF9B4994" />
                    <SolidColorBrush Color="#FF94438C" />
                </collections:ArrayList>
            </local:LiveDataChartElement.BarBrushes>
        </local:LiveDataChartElement>
    </DataTemplate>
</ResourceDictionary>!$MSBAML```����\XPresentationFramework, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35RNWindowsBase, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35WSPresentationCore, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35RNSystem.Xaml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089a]DevExpress.Xpf.Core.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49afbDevExpress.Xpf.Grid.v13.1.Core, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49aa]DevExpress.Xpf.Grid.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49alhDevExpress.Xpf.Grid.v13.1.Extensions, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49aeaDevExpress.Xpf.DemoBase.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a-'DevExpress.Xpf.DemoBase.NWindDataLoader NWindDataLoader/)DevExpress.Xpf.Core.FormatStringConverter FormatStringConverterFormatString82DevExpress.Xpf.Editors.BytesToImageSourceConverter imageConverter displayTemplate�Name�Path�RelativeSource�	Converter FilterHeaderContentTemplate gridTemplate%DevExpress.Xpf.Grid.GridControlNameColumns$DevExpress.Xpf.Grid.GridColumn$DevExpress.Xpf.Grid.ColumnBase	FieldName$DevExpress.Xpf.Grid.BaseColumn
Header)#DevExpress.Xpf.Core.ObjectConverter	
HeaderToolTip
MinWidthWidth
AllowResizing]	YDevExpress.Data.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a5	/DevExpress.Utils.Design.DefaultBooleanConverter
FixedDisplayTemplate#AutoFilterRowDisplayTemplate AutoFilterRowEditTemplate!FilterEditorHeaderTemplateHeaderTemplateEditSettings:	4DevExpress.Xpf.Editors.Settings.ComboBoxEditSettings8
2DevExpress.Xpf.Editors.Settings.ButtonEditSettings
IsTextEditable<6DevExpress.Xpf.Editors.Settings.LookUpEditSettingsBaseValueMember
DisplayMemberItemsSource
�SourceAutoFilterCondition60DevExpress.Xpf.Editors.Settings.TextEditSettingsMaskMaskTypeMaskCultureView#
DevExpress.Xpf.Grid.TableView
ShowAutoFilterRow& DevExpress.Xpf.Grid.GridViewBaseShowGroupedColumns 
	AutoWidth addNewRecordTemplate!�ColumnDefinitions"�RowDefinitions)#DevExpress.Xpf.Editors.ComboBoxEdit#Name'!DevExpress.Xpf.Editors.ButtonEdit$IsTextEditable+%DevExpress.Xpf.Editors.LookUpEditBase%ValueMember&
DisplayMember&'ApplyItemTemplateToSelectedItem(ItemsSource%DevExpress.Xpf.Editors.BaseEdit)	EditValue*�Mode+�UpdateSourceTrigger,ItemTemplate-��Orientation%DevExpress.Xpf.Editors.TextEdit.Name/
IsReadOnly%DevExpress.Xpf.Editors.SpinEdit0Name& DevExpress.Xpf.Editors.CheckEdit1Name�D9http://schemas.microsoft.com/winfx/2006/xaml/presentation:x,http://schemas.microsoft.com/winfx/2006/xaml;dx2http://schemas.devexpress.com/winfx/2008/xaml/core@dxg2http://schemas.devexpress.com/winfx/2008/xaml/grid?dxe5http://schemas.devexpress.com/winfx/2008/xaml/editorsAdxdb6http://schemas.devexpress.com/winfx/2008/xaml/demobase%�&	&	&	&	7&	�&	�77777&	�77$D����.R��$PART_Editor��$�1q�$�24�����$SelectedItem.Icon_25���*TemplatedParent+8��.R�������.R�$PART_GridControl��$
CategoryID��$Category$	Category��$
36��$36��$False$

None=�8888��.R���$�� ��	.$
CategoryID��$CategoryName���$
Categories�8$ProductName��$
Product$	150��$QuantityPerUnit��$Quantity$	UnitPrice��$
Unit Price$Equals=�$c��$
Numeric=�$en-US��$Discontinued��
$
�view��.. .��.R���$�8q�$	�200��.+��!����"������.+���$��	Category:��$�Center=�$��0�$�0�$
�0,0,6,4q�$#
cbPnvCategory��$��0�$�1�$
�0,0,0,4q�$.$%
CategoryID��$&CategoryName��'.(�$
Categories�8)�$
CategoryID�$*TwoWay=�$+PropertyChanged=�,��.R���$-
Horizontal=�.+��$�30�����$
Picture�8��$
�4,0,0,0q����$CategoryName���$��
Product name:��$�Center=�$��1�$�0�$
�0,0,6,4q�$.txtProductName��$��1�$�1�$
�0,0,0,4q�/.)�$ProductName�$*TwoWay=���$��Quantity per unit:��$�Center=�$��2�$�0�$
�0,0,6,4q�$.txtQuantityPerUnit��$��2�$�1�$
�0,0,0,4q�)�$QuantityPerUnit�$*TwoWay=���$��Unit price:��$�Center=�$��3�$�0�$
�0,0,6,4q�$0spUnitPrice��$��3�$�1�$
�0,0,0,4q�)�$	UnitPrice�$*TwoWay=���$��
Discontinued:��$�Center=�$��4�$�0�$
�0,0,6,4q�$1chDiscontinued��$��4�$�1�$
�0,0,0,4q�)�$Discontinued�$*TwoWay=�!<ResourceDictionary
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:dx="http://schemas.devexpress.com/winfx/2008/xaml/core"
    xmlns:dxg="http://schemas.devexpress.com/winfx/2008/xaml/grid"
 xmlns:dxe="http://schemas.devexpress.com/winfx/2008/xaml/editors"
    xmlns:dxdb="http://schemas.devexpress.com/winfx/2008/xaml/demobase">

    <dxdb:NWindDataLoader x:Key="NWindDataLoader" />
    <dx:FormatStringConverter x:Key="FormatStringConverter" FormatString="D"/>
    <dxe:BytesToImageSourceConverter x:Key="imageConverter"/>

    <ControlTemplate x:Key="displayTemplate">
        <Image x:Name="PART_Editor" Margin="1" Width="24" Source="{Binding Path=SelectedItem.Icon_25, RelativeSource={RelativeSource TemplatedParent}, Converter={StaticResource imageConverter}}"/>
    </ControlTemplate>
    <DataTemplate x:Key="FilterHeaderContentTemplate">
        <ContentPresenter Content="{Binding}"/>
    </DataTemplate>
    <ControlTemplate x:Key="gridTemplate">
        <dxg:GridControl x:Name="PART_GridControl">
            <dxg:GridControl.Columns>
                <dxg:GridColumn FieldName="CategoryID" Header="Category" HeaderToolTip="Category" MinWidth="36" Width="36" AllowResizing="False" Fixed="None"
                                        DisplayTemplate="{StaticResource displayTemplate}" AutoFilterRowDisplayTemplate="{StaticResource displayTemplate}"
                                        AutoFilterRowEditTemplate="{StaticResource displayTemplate}" FilterEditorHeaderTemplate="{StaticResource FilterHeaderContentTemplate}">
                    <dxg:GridColumn.HeaderTemplate>
                        <DataTemplate>
                            <TextBlock Text=" "/>
                        </DataTemplate>
                    </dxg:GridColumn.HeaderTemplate>
                    <dxg:GridColumn.EditSettings>
                        <dxe:ComboBoxEditSettings
                                    IsTextEditable="False"
                                    ValueMember="CategoryID"
                                    DisplayMember="CategoryName"
                                    ItemsSource="{Binding Path=Categories, Source={StaticResource NWindDataLoader}}">
                        </dxe:ComboBoxEditSettings>
                    </dxg:GridColumn.EditSettings>
                </dxg:GridColumn>
                <dxg:GridColumn FieldName="ProductName" Header="Product" Width="150" />
                <dxg:GridColumn FieldName="QuantityPerUnit" Header="Quantity"/>
                <dxg:GridColumn FieldName="UnitPrice" Header="Unit Price" AutoFilterCondition="Equals">
                    <dxg:GridColumn.EditSettings>
                        <dxe:TextEditSettings Mask="c" MaskType="Numeric" MaskCulture="en-US"/>
                    </dxg:GridColumn.EditSettings>
                </dxg:GridColumn>
                <dxg:GridColumn FieldName="Discontinued" />
            </dxg:GridControl.Columns>
            <dxg:GridControl.View>
                <dxg:TableView Name="view" ShowAutoFilterRow="True" ShowGroupedColumns="True" AutoWidth="False"/>
            </dxg:GridControl.View>
        </dxg:GridControl>
    </ControlTemplate>
    <ControlTemplate x:Key="addNewRecordTemplate">
        <StackPanel Margin="8" MinWidth="200">
            <Grid>
                <Grid.ColumnDefinitions>
                    <ColumnDefinition/>
                    <ColumnDefinition/>
                </Grid.ColumnDefinitions>
                <Grid.RowDefinitions>
                    <RowDefinition/>
                    <RowDefinition/>
                    <RowDefinition/>
                    <RowDefinition/>
                    <RowDefinition/>
                    <RowDefinition/>
                </Grid.RowDefinitions>
                <TextBlock Text="Category:" VerticalAlignment="Center" Grid.Row="0" Grid.Column="0" Margin="0,0,6,4" />
                <dxe:ComboBoxEdit
                                x:Name="cbPnvCategory"
                                Grid.Row="0" Grid.Column="1"
                                Margin="0,0,0,4"
                                IsTextEditable="False"
                                ValueMember="CategoryID"
                                DisplayMember="CategoryName"
                                ItemsSource="{Binding Path=Categories, Source={StaticResource NWindDataLoader}}"
                                ApplyItemTemplateToSelectedItem="True">
                    <dxe:ComboBoxEdit.EditValue>
                        <Binding Path="CategoryID" Mode="TwoWay">
                            <Binding.UpdateSourceTrigger>PropertyChanged</Binding.UpdateSourceTrigger>
                        </Binding>
                    </dxe:ComboBoxEdit.EditValue>
                    <dxe:ComboBoxEdit.ItemTemplate>
                        <DataTemplate>
                            <StackPanel Orientation="Horizontal">
                                <Image Width="30" Source="{Binding Path=Picture, Converter={StaticResource imageConverter}}"/>
                                <TextBlock Margin="4,0,0,0"  Text="{Binding Path=CategoryName}"/>
                            </StackPanel>
                        </DataTemplate>
                    </dxe:ComboBoxEdit.ItemTemplate>
                </dxe:ComboBoxEdit>

                <TextBlock Text="Product name:" VerticalAlignment="Center" Grid.Row="1" Grid.Column="0" Margin="0,0,6,4" />
                <dxe:TextEdit x:Name="txtProductName" Grid.Row="1" Grid.Column="1" EditValue="{Binding Path=ProductName, Mode=TwoWay}" Margin="0,0,0,4" IsReadOnly="True"/>
                <TextBlock Text="Quantity per unit:" VerticalAlignment="Center" Grid.Row="2" Grid.Column="0" Margin="0,0,6,4" />
                <dxe:TextEdit x:Name="txtQuantityPerUnit" Grid.Row="2" Grid.Column="1" EditValue="{Binding Path=QuantityPerUnit, Mode=TwoWay}" Margin="0,0,0,4"/>
                <TextBlock Text="Unit price:" VerticalAlignment="Center" Grid.Row="3" Grid.Column="0" Margin="0,0,6,4" />
                <dxe:SpinEdit x:Name="spUnitPrice" Grid.Row="3" Grid.Column="1" EditValue="{Binding Path=UnitPrice, Mode=TwoWay}" Margin="0,0,0,4"/>
                <TextBlock Text="Discontinued:" VerticalAlignment="Center" Grid.Row="4" Grid.Column="0" Margin="0,0,6,4" />
                <dxe:CheckEdit x:Name="chDiscontinued" Grid.Row="4" Grid.Column="1" Margin="0,0,0,4" EditValue="{Binding Path=Discontinued, Mode=TwoWay}"/>
            </Grid>
        </StackPanel>
    </ControlTemplate>
</ResourceDictionary>!�	using DevExpress.Xpf.DemoBase.Helpers;

namespace GridDemo {
    public class MasterDetailViewModel : DemoViewModelBase {

        public EmployeesWithDetails Employees { get; private set; }

        public MasterDetailViewModel() {
            Employees = new EmployeesWithDetails();
            ShowOrdersSummaries = true;
            ShowOrdersColumnHeaders = true;
            ShowCustomersColumnHeaders = true;
            ShowCustomersSummaries = true;
            ShowInvoicesColumnHeaders = true;
            ShowInvoicesSummaries = true;
            ShowDetailButtons = true;
        }
        bool showOrdersColumnHeadersCore;
        public bool ShowOrdersColumnHeaders {
            get { return showOrdersColumnHeadersCore; }
            set { ChangeProperty<bool>(ref showOrdersColumnHeadersCore, value, "ShowOrdersColumnHeaders"); }
        }
        bool showOrdersSummariesCore;
        public bool ShowOrdersSummaries {
            get { return showOrdersSummariesCore; }
            set { ChangeProperty<bool>(ref showOrdersSummariesCore, value, "ShowOrdersSummaries"); }
        }

        bool showCustomersColumnHeadersCore;
        public bool ShowCustomersColumnHeaders {
            get { return showCustomersColumnHeadersCore; }
            set { ChangeProperty<bool>(ref showCustomersColumnHeadersCore, value, "ShowCustomersColumnHeaders"); }
        }
        bool showCustomersSummariesCore;
        public bool ShowCustomersSummaries {
            get { return showCustomersSummariesCore; }
            set { ChangeProperty<bool>(ref showCustomersSummariesCore, value, "ShowCustomersSummaries"); }
        }

        bool showInvoicesColumnHeadersCore;
        public bool ShowInvoicesColumnHeaders {
            get { return showInvoicesColumnHeadersCore; }
            set { ChangeProperty<bool>(ref showInvoicesColumnHeadersCore, value, "ShowInvoicesColumnHeaders"); }
        }
        bool showInvoicesSummariesCore;
        public bool ShowInvoicesSummaries {
            get { return showInvoicesSummariesCore; }
            set { ChangeProperty<bool>(ref showInvoicesSummariesCore, value, "ShowInvoicesSummaries"); }
        }

        bool showDetailButtonsCore;
        public bool ShowDetailButtons {
            get { return showDetailButtonsCore; }
            set { ChangeProperty<bool>(ref showDetailButtonsCore, value, "ShowDetailButtons"); }
        }
    }
}!�using System;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Ink;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;
using DevExpress.Xpf.Grid;
using DevExpress.Xpf.DemoBase.DemosHelpers.Grid;
using DevExpress.Data.Browsing;
using System.ComponentModel;

namespace GridDemo {
    public class MultiEditorsTemplateSelector : DataTemplateSelector {
        public override DataTemplate SelectTemplate(object item, DependencyObject container) {
            GridCellData data = (GridCellData)item;
            GridControl grid = ((GridViewBase)data.View).Grid;
            string editorType = grid.GetCellValue(data.RowData.RowHandle.Value, "TemplateName") as string;
            return string.IsNullOrEmpty(editorType) ? null : (DataTemplate)grid.Resources[editorType];
        }
    }
    public class MultiEditorsList : MultiEditorsListBase {
        protected override void CreateColumnCollection() {
            MultiEditorsListPropertyDescriptor[] pds = new MultiEditorsListPropertyDescriptor[Table.Count + 3];
            pds[0] = new MultiEditorsListPropertyDescriptor(this, 0, "Field", true);
            for(int n = 1; n < Table.Count + 1; n++) {
                pds[n] = new MultiEditorsListPropertyDescriptor(this, n, "Product #" + n, false);
            }
            pds[Table.Count + 1] = new MultiEditorsListPropertyDescriptor(this, Table.Count + 1, "EditorType", true);
            pds[Table.Count + 2] = new MultiEditorsListPropertyDescriptor(this, Table.Count + 2, "TemplateName", true);
            ColumnCollection = new PropertyDescriptorCollection(pds);
        }
        public override object GetPropertyValue(int rowIndex, int columnIndex) {
            if(columnIndex == 0)
                return FieldDescriptions[rowIndex].ColumnName;
            if(columnIndex == Table.Count + 1)
                return FieldDescriptions[rowIndex].EditorDisplayName;
            if(columnIndex == Table.Count + 2)
                return FieldDescriptions[rowIndex].TemplateName;
            return Table[columnIndex - 1][FieldDescriptions[rowIndex].ColumnName];
        }
    }
}!�!MSBAML```����D@GridDemo, Version=13.1.4.0, Culture=neutral, PublicKeyToken=null#clr-namespace:GridDemoGridDemoOKmscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e0891&clr-namespace:System;assembly=mscorlibSystem\XPresentationFramework, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35RNWindowsBase, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35WSPresentationCore, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35RNSystem.Xaml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089a]DevExpress.Xpf.Core.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49afbDevExpress.Xpf.Grid.v13.1.Core, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49aa]DevExpress.Xpf.Grid.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49al	hDevExpress.Xpf.Grid.v13.1.Extensions, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49ae
aDevExpress.Xpf.DemoBase.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49aGridDemo.DemoDataProvider DemoDataProvider-
'DevExpress.Xpf.DemoBase.NWindDataLoader NWindDataLoader82DevExpress.Xpf.Editors.BytesToImageSourceConverter imageConverter displayTemplate�Name�Path�RelativeSource�	Converter FilterHeaderContentTemplate comboBoxItemTemplate��Orientation gridBeveragesTemplate%DevExpress.Xpf.Grid.GridControlNameColumns$DevExpress.Xpf.Grid.GridColumn$DevExpress.Xpf.Grid.ColumnBase	FieldName$DevExpress.Xpf.Grid.BaseColumn
Header)#DevExpress.Xpf.Core.ObjectConverter	
HeaderToolTip
MinWidthWidth
AllowResizing]YDevExpress.Data.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a5/DevExpress.Utils.Design.DefaultBooleanConverter
FixedDisplayTemplate#AutoFilterRowDisplayTemplate AutoFilterRowEditTemplate!FilterEditorHeaderTemplateHeaderTemplateEditSettings:	4DevExpress.Xpf.Editors.Settings.ComboBoxEditSettings8
2DevExpress.Xpf.Editors.Settings.ButtonEditSettings
IsTextEditable<6DevExpress.Xpf.Editors.Settings.LookUpEditSettingsBaseValueMember
DisplayMemberItemsSource
�SourceItemTemplate60DevExpress.Xpf.Editors.Settings.TextEditSettingsEditNonEditableTemplateView#
DevExpress.Xpf.Grid.TableView
ShowAutoFilterRow& DevExpress.Xpf.Grid.GridViewBaseShowGroupedColumns
	AutoWidth NumericTextEdit%DevExpress.Xpf.Editors.TextEditMaskType Mask!MaskUseAsDisplayFormat TextEdit 	AutoCompleteComboBoxEdit)#DevExpress.Xpf.Editors.ComboBoxEdit+%DevExpress.Xpf.Editors.LookUpEditBase"AutoComplete'!DevExpress.Xpf.Editors.ButtonEdit#IsTextEditable$ImmediatePopup%ItemsSource 

LookUpEdit+%DevExpress.Xpf.Grid.LookUp.LookUpEdit&ValueMember'
DisplayMember*$DevExpress.Xpf.Editors.PopupBaseEdit(PopupContentTemplate)IncrementalFiltering*AutoPopulateColumns+IsPopupAutoWidth,
PopupWidth SearchLookUpEdit-PopupHeight%DevExpress.Xpf.Editors.BaseEdit.DisplayTemplate)#DevExpress.Xpf.Editors.TextEditBase/EditNonEditableTemplate0FilterCondition1
StyleSettings>8DevExpress.Xpf.Grid.LookUp.SearchLookUpEditStyleSettings ComboBoxEdit2ItemTemplate 
SpinEdit%DevExpress.Xpf.Editors.SpinEdit3	Increment4MinValue5IsFloatValue 
	CheckEdit& DevExpress.Xpf.Editors.CheckEdit 
RegExTextEdit TrackBarEdit)#DevExpress.Xpf.Editors.TrackBarEdit6
TickPlacement ProgressBarEdit,&DevExpress.Xpf.Editors.ProgressBarEdit*$DevExpress.Xpf.Editors.RangeBaseEdit7ContentDisplayMode ZoomTrackBarEdit8
StyleSettings60DevExpress.Xpf.Editors.TrackBarZoomStyleSettings RangeTrackBarEdit9�UseLayoutRounding71DevExpress.Xpf.Editors.TrackBarRangeStyleSettings MemoEdit%DevExpress.Xpf.Editors.MemoEdit DateEdit% DevExpress.Xpf.Editors.DateEdit:	NullValue
;��Member ListBoxEdit(!"DevExpress.Xpf.Editors.ListBoxEdit<!ItemsSource=!
ItemsPanel>�Orientation?!
StyleSettings:"4DevExpress.Xpf.Editors.RadioListBoxEditStyleSettings 
ButtonEdit@AllowDefaultButtonAButtons'#!DevExpress.Xpf.Editors.ButtonInfo+$%DevExpress.Xpf.Editors.ButtonInfoBaseB$	ClickModeC#	GlyphKindD#Command PopupColorEdit+%%DevExpress.Xpf.Editors.PopupColorEditE%Color PasswordBoxEdit,&&DevExpress.Xpf.Editors.PasswordBoxEdit 
PopupCalcEdit*'$DevExpress.Xpf.Editors.PopupCalcEditFMaskCultureG'	Precision PopupImageEdit+(%DevExpress.Xpf.Editors.PopupImageEditH(ShowMenuMode FontEdit%)DevExpress.Xpf.Editors.FontEdit�D9http://schemas.microsoft.com/winfx/2006/xaml/presentation:x,http://schemas.microsoft.com/winfx/2006/xaml;dx2http://schemas.devexpress.com/winfx/2008/xaml/core?dxe5http://schemas.devexpress.com/winfx/2008/xaml/editors@dxg2http://schemas.devexpress.com/winfx/2008/xaml/grid	Adxdb6http://schemas.devexpress.com/winfx/2008/xaml/demobase
 localclr-namespace:GridDemo.sys&clr-namespace:System;assembly=mscorlib%�&	&	&	
&	7&	|&	�7&	�7777777&	�&	A&		`7&	
�7&	I7&	�77&	
�&	&	3&	}&	�&	�&	&	?&	^&	�7&	
	&	�	&	�	&	�	&	
&	D
��.R��$PART_Editor��$�1q����$SelectedItem.Picture���*TemplatedParent+8��.R�������.R���$
Horizontal=�
������.+��$�17��$�17�����$3-(dxe:BaseEdit.OwnerEdit).SelectedItem.Icon_17���*TemplatedParent+8��$�2q�$�Center=����$82(dxe:BaseEdit.OwnerEdit).SelectedItem.CategoryName���*TemplatedParent+��.R�$PART_GridControl��$
CategoryID��$Category$	Category��$
36��$36��$False$

None=�8888��	.$
CategoryID��$CategoryName���$
Categories�8��.R���$
Horizontal=�.+��$�30�����$
Picture�8��$
�2,0,0,0q����$CategoryName���.R��$PART_Editor��$�30��$
�Left=�$�1q����$3-(dxe:BaseEdit.OwnerEdit).SelectedItem.Picture�8$CategoryName��$Description��
$
�view��...��.R�$�PART_Editor��$�Right=�$
Numeric=�$ d��!.��.R�$�PART_Editor����.R�$�PART_Editor��".#.$.%�*CountriesArray+8��.R�$�PART_Editor��$&
CategoryID��$'CategoryName��#(�".).$.*.+.$	,300Q�%�*
Categories+8��.R�$�PART_Editor��$&
CategoryID��$	-400Q�$	,500Q�#.�#/�#(�*.$0ContainsX�%�*
Categories+81��.R�$�PART_Editor��$&
CategoryID��#.#.�#/�%�*
Categories+82��.R���$
Horizontal=�
������.+��$�17��$�17�����$
Icon_17�8��$�2q����$CategoryName���.R�$�PART_Editor��$ p��!.$
30.01~�$40X�5.��.R�$�PART_Editor����.R�$�PART_Editor��$RegEx=�$ \d{5}-\d{3}-\d{4}��!.��.R�$�PART_Editor��$
6None=���.R�$�PART_Editor��$7Value=���.R�$�PART_Editor��$
6None=�8��.R�$�PART_Editor��$
6None=�9.8��.R�$�PART_Editor����.R� $�PART_Editor��:��$;sys:DBNull.Value����.R�!$�PART_Editor��<�*PalleteSizes+8=��.R��$�60��$>Vertical=�?"��.R�$�PART_Editor��@..A#$
BRelease=�$
CRegular=�D�*)'View.DataContext.ButtonEditClickCommand+��.R�%$�PART_Editor��$EWhite����.R�&$�PART_Editor����.R�'$�PART_Editor��$ c��$Fen-US��$G4�!.��.R�($�PART_Editor��$HAlways=���.R�)$�PART_Editor��!�*<ResourceDictionary
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:dx="http://schemas.devexpress.com/winfx/2008/xaml/core"
    xmlns:dxe="http://schemas.devexpress.com/winfx/2008/xaml/editors"
    xmlns:dxg="http://schemas.devexpress.com/winfx/2008/xaml/grid"
    xmlns:dxdb="http://schemas.devexpress.com/winfx/2008/xaml/demobase"
    xmlns:local="clr-namespace:GridDemo"
    xmlns:sys="clr-namespace:System;assembly=mscorlib">

    <local:DemoDataProvider x:Key="DemoDataProvider" />
    <dxdb:NWindDataLoader x:Key="NWindDataLoader" />
    <dxe:BytesToImageSourceConverter x:Key="imageConverter" />
    <ControlTemplate x:Key="displayTemplate">
        <Image x:Name="PART_Editor" Margin="1" Source="{Binding Path=SelectedItem.Picture, RelativeSource={RelativeSource TemplatedParent}, Converter={StaticResource imageConverter}}"/>
    </ControlTemplate>
    <DataTemplate x:Key="FilterHeaderContentTemplate">
        <ContentPresenter Content="{Binding}"/>
    </DataTemplate>
    <ControlTemplate x:Key="comboBoxItemTemplate">
        <StackPanel Orientation="Horizontal" Background="Transparent">
            <Image Height="17" Width="17" Source="{Binding Path=(dxe:BaseEdit.OwnerEdit).SelectedItem.Icon_17, RelativeSource={RelativeSource TemplatedParent}, Converter={StaticResource imageConverter}}" />
            <TextBlock Margin="2" Text="{Binding Path=(dxe:BaseEdit.OwnerEdit).SelectedItem.CategoryName, RelativeSource={RelativeSource TemplatedParent}}" VerticalAlignment="Center" />
        </StackPanel>
    </ControlTemplate>
    <ControlTemplate x:Key="gridBeveragesTemplate">
        <dxg:GridControl x:Name="PART_GridControl">
            <dxg:GridControl.Columns>
                <dxg:GridColumn FieldName="CategoryID" Header="Category" HeaderToolTip="Category" MinWidth="36" Width="36" AllowResizing="False" Fixed="None"
                                        DisplayTemplate="{StaticResource displayTemplate}" AutoFilterRowDisplayTemplate="{StaticResource displayTemplate}"
                                        AutoFilterRowEditTemplate="{StaticResource displayTemplate}" FilterEditorHeaderTemplate="{StaticResource FilterHeaderContentTemplate}">
                    <dxg:GridColumn.HeaderTemplate>
                        <DataTemplate/>
                    </dxg:GridColumn.HeaderTemplate>
                    <dxg:GridColumn.EditSettings>
                        <dxe:ComboBoxEditSettings
                                    IsTextEditable="False"
                                    ValueMember="CategoryID"
                                    DisplayMember="CategoryName"
                                    ItemsSource="{Binding Path=Categories, Source={StaticResource NWindDataLoader}}">
                            <dxe:ComboBoxEditSettings.ItemTemplate>
                                <DataTemplate>
                                    <StackPanel Orientation="Horizontal">
                                        <Image Width="30" Source="{Binding Path=Picture, Converter={StaticResource imageConverter}}"/>
                                        <TextBlock Margin="2,0,0,0"  Text="{Binding Path=CategoryName}"/>
                                    </StackPanel>
                                </DataTemplate>
                            </dxe:ComboBoxEditSettings.ItemTemplate>
                            <dxe:ComboBoxEditSettings.EditNonEditableTemplate>
                                <ControlTemplate>
                                    <Image x:Name="PART_Editor" Width="30" HorizontalAlignment="Left" Margin="1" Source="{Binding Path=(dxe:BaseEdit.OwnerEdit).SelectedItem.Picture, Converter={StaticResource imageConverter}}"/>
                                </ControlTemplate>
                            </dxe:ComboBoxEditSettings.EditNonEditableTemplate>
                        </dxe:ComboBoxEditSettings>
                    </dxg:GridColumn.EditSettings>
                </dxg:GridColumn>
                <dxg:GridColumn FieldName="CategoryName" />
                <dxg:GridColumn FieldName="Description" />
            </dxg:GridControl.Columns>
            <dxg:GridControl.View>
                <dxg:TableView Name="view" ShowAutoFilterRow="True" ShowGroupedColumns="True" AutoWidth="true"/>
            </dxg:GridControl.View>
        </dxg:GridControl>
    </ControlTemplate>

    <DataTemplate x:Key="NumericTextEdit">
        <dxe:TextEdit Name="PART_Editor" HorizontalContentAlignment="Right" MaskType="Numeric" Mask="d" MaskUseAsDisplayFormat="True" />
    </DataTemplate>
    <DataTemplate x:Key="TextEdit">
        <dxe:TextEdit Name="PART_Editor" />
    </DataTemplate>
    <DataTemplate x:Key="AutoCompleteComboBoxEdit">
        <dxe:ComboBoxEdit Name="PART_Editor" ItemsSource="{Binding CountriesArray, Source={StaticResource DemoDataProvider}}"
                              AutoComplete="True" IsTextEditable="True" ImmediatePopup="True" />
    </DataTemplate>
    <DataTemplate x:Key="LookUpEdit">
        <dxg:LookUpEdit
                        Name="PART_Editor"
                        ItemsSource="{Binding Categories, Source={StaticResource NWindDataLoader}}"
                        ValueMember="CategoryID"
                        DisplayMember="CategoryName"
                        PopupContentTemplate="{DynamicResource gridBeveragesTemplate}"
                        AutoComplete="True"
                        IncrementalFiltering="True"
                        ImmediatePopup="True"
                        AutoPopulateColumns="False"
                        IsPopupAutoWidth="False" PopupWidth="300"/>
    </DataTemplate>
    <DataTemplate x:Key="SearchLookUpEdit">
        <dxg:LookUpEdit
                        Name="PART_Editor"
                        ItemsSource="{Binding Categories, Source={StaticResource NWindDataLoader}}"
                        ValueMember="CategoryID" PopupHeight="400" PopupWidth="500"
                        DisplayTemplate="{DynamicResource comboBoxItemTemplate}"
                        EditNonEditableTemplate="{DynamicResource comboBoxItemTemplate}"
                        PopupContentTemplate="{DynamicResource gridBeveragesTemplate}"
                        AutoPopulateColumns="False"
                        FilterCondition="Contains">
            <dxg:LookUpEdit.StyleSettings>
                <dxg:SearchLookUpEditStyleSettings/>
            </dxg:LookUpEdit.StyleSettings>
        </dxg:LookUpEdit>
    </DataTemplate>
    <DataTemplate x:Key="ComboBoxEdit">
        <dxe:ComboBoxEdit Name="PART_Editor" ItemsSource="{Binding Categories, Source={StaticResource NWindDataLoader}}"
                              ValueMember="CategoryID" IsTextEditable="False" DisplayTemplate="{DynamicResource comboBoxItemTemplate}" EditNonEditableTemplate="{DynamicResource comboBoxItemTemplate}">
            <dxe:ComboBoxEdit.ItemTemplate>
                <DataTemplate>
                    <StackPanel Orientation="Horizontal" Background="Transparent">
                        <Image Height="17" Width="17" Source="{Binding Path=Icon_17, Converter={StaticResource imageConverter}}" />
                        <TextBlock Text="{Binding Path=CategoryName}" Margin="2" />
                    </StackPanel>
                </DataTemplate>
            </dxe:ComboBoxEdit.ItemTemplate>
        </dxe:ComboBoxEdit>
    </DataTemplate>
    <DataTemplate x:Key="SpinEdit">
        <dxe:SpinEdit Name="PART_Editor" Mask="p" MaskUseAsDisplayFormat="True" Increment="0.01" MinValue="0" IsFloatValue="True" />
    </DataTemplate>
    <DataTemplate x:Key="CheckEdit">
        <dxe:CheckEdit Name="PART_Editor" />
    </DataTemplate>
    <DataTemplate x:Key="RegExTextEdit">
        <dxe:TextEdit Name="PART_Editor" MaskType="RegEx" Mask="\d{5}-\d{3}-\d{4}" MaskUseAsDisplayFormat="True" />
    </DataTemplate>
    <DataTemplate x:Key="TrackBarEdit">
        <dxe:TrackBarEdit Name="PART_Editor" TickPlacement="None" />
    </DataTemplate>
    <DataTemplate x:Key="ProgressBarEdit">
        <dxe:ProgressBarEdit Name="PART_Editor" ContentDisplayMode="Value" />
    </DataTemplate>
    <DataTemplate x:Key="ZoomTrackBarEdit">
        <dxe:TrackBarEdit Name="PART_Editor" TickPlacement="None">
            <dxe:TrackBarEdit.StyleSettings>
                <dxe:TrackBarZoomStyleSettings />
            </dxe:TrackBarEdit.StyleSettings>
        </dxe:TrackBarEdit>
    </DataTemplate>
    <DataTemplate x:Key="RangeTrackBarEdit">
        <dxe:TrackBarEdit Name="PART_Editor" TickPlacement="None" UseLayoutRounding="True">
            <dxe:TrackBarEdit.StyleSettings>
                <dxe:TrackBarRangeStyleSettings />
            </dxe:TrackBarEdit.StyleSettings>
        </dxe:TrackBarEdit>
    </DataTemplate>
    <DataTemplate x:Key="MemoEdit">
        <dxe:MemoEdit Name="PART_Editor" />
    </DataTemplate>
    <DataTemplate x:Key="DateEdit">
        <dxe:DateEdit Name="PART_Editor">
            <dxe:DateEdit.NullValue>
                <x:Static Member="sys:DBNull.Value" />
            </dxe:DateEdit.NullValue>
        </dxe:DateEdit>
    </DataTemplate>
    <DataTemplate x:Key="ListBoxEdit">
        <dxe:ListBoxEdit Name="PART_Editor" ItemsSource="{Binding PalleteSizes, Source={StaticResource DemoDataProvider}}">
            <dxe:ListBoxEdit.ItemsPanel>
                <ItemsPanelTemplate>
                    <WrapPanel Height="60" Orientation="Vertical" />
                </ItemsPanelTemplate>
            </dxe:ListBoxEdit.ItemsPanel>
            <dxe:ListBoxEdit.StyleSettings>
                <dxe:RadioListBoxEditStyleSettings />
            </dxe:ListBoxEdit.StyleSettings>
        </dxe:ListBoxEdit>
    </DataTemplate>
    <DataTemplate x:Key="ButtonEdit">
        <dxe:ButtonEdit Name="PART_Editor" AllowDefaultButton="False">
            <dxe:ButtonInfo ClickMode="Release" Command="{Binding View.DataContext.ButtonEditClickCommand}" GlyphKind="Regular" />
        </dxe:ButtonEdit>
    </DataTemplate>
    <DataTemplate x:Key="PopupColorEdit">
        <dxe:PopupColorEdit Name="PART_Editor" Color="White" />
    </DataTemplate>
    <DataTemplate x:Key="PasswordBoxEdit">
        <dxe:PasswordBoxEdit Name="PART_Editor" />
    </DataTemplate>
    <DataTemplate x:Key="PopupCalcEdit">
        <dxe:PopupCalcEdit Name="PART_Editor" Mask="c" MaskCulture="en-US" Precision="4" MaskUseAsDisplayFormat="True" />
    </DataTemplate>
    <DataTemplate x:Key="PopupImageEdit">
        <dxe:PopupImageEdit Name="PART_Editor" ShowMenuMode="Always"/>
    </DataTemplate>
    <DataTemplate x:Key="FontEdit">
        <dxe:FontEdit Name="PART_Editor" />
    </DataTemplate>
</ResourceDictionary>!�using System;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Ink;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;
using System.Windows.Data;
using DevExpress.Xpf.Core;
using System.ComponentModel;
using System.Windows.Markup;

namespace GridDemo {
    public class PercentCompleteToFontWeightConverter : MarkupExtension, IValueConverter {
        public override object ProvideValue(IServiceProvider serviceProvider) {
            return this;
        }

        #region IValueConverter Members

        object IValueConverter.Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) {
            double percentComplete = Convert.ToDouble(value);
            return 0 < percentComplete && percentComplete < 100 ? FontWeights.Bold : FontWeights.Normal;
        }

        object IValueConverter.ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) {
            throw new NotImplementedException();
        }

        #endregion
    }

}!�	MSBAML```����a]DevExpress.Xpf.Core.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49atPclr-namespace:DevExpress.Xpf.Editors.Controls;assembly=DevExpress.Xpf.Core.v13.1DevExpress.Xpf.Editors.ControlsD@GridDemo, Version=13.1.4.0, Culture=neutral, PublicKeyToken=null#clr-namespace:GridDemoGridDemo\XPresentationFramework, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35RNWindowsBase, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35WSPresentationCore, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35RNSystem.Xaml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089�MergedDictionaries
�Source displayTemplate��Name=7DevExpress.Xpf.Editors.Themes.TextEditThemeKeyExtension��DevExpress.Xpf.Utils.Themes.ThemeKeyExtensionInternalBase`1[[DevExpress.Xpf.Editors.Themes.TextEditThemeKeys, DevExpress.Xpf.Core.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a]]ResourceKey�Path�RelativeSource�	Converter3-GridDemo.PercentCompleteToFontWeightConverterJ�Opacity/)DevExpress.Xpf.Core.BoolToObjectConverter
FalseValue		TrueValue editTemplate
��Name�D9http://schemas.microsoft.com/winfx/2006/xaml/presentation:x,http://schemas.microsoft.com/winfx/2006/xaml;dx2http://schemas.devexpress.com/winfx/2008/xaml/coreJdxet?http://schemas.devexpress.com/winfx/2008/xaml/editors/themekeysZdxconPclr-namespace:DevExpress.Xpf.Editors.Controls;assembly=DevExpress.Xpf.Core.v13.1 localclr-namespace:GridDemo�$-'/GridDemo;component/Themes/generic.xaml?�%�&	&	���.R���$PART_Editor���C�*$TextBlockInplaceStyle=�+���$-'DataContext.RowData.Row.PercentComplete���*TemplatedParent+�$& DataContext.RowData.Row.Complete���*TemplatedParent+$1��$
	0.35�����$& DataContext.RowData.Row.Complete���*TemplatedParent+$Normal��$	Italic����.R���$
PART_Editor��$
�Stretch=��C�*$TextInplaceStyle=�+.����$!RowData.Row.PercentComplete�.���$RowData.Row.Complete�$1��$
	0.35��.����$RowData.Row.Complete�$Normal��$	Italic��.��!+
<ResourceDictionary
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:dx="http://schemas.devexpress.com/winfx/2008/xaml/core"
    xmlns:dxet="http://schemas.devexpress.com/winfx/2008/xaml/editors/themekeys"
    xmlns:dxcon="clr-namespace:DevExpress.Xpf.Editors.Controls;assembly=DevExpress.Xpf.Core.v13.1"
    xmlns:local="clr-namespace:GridDemo">

    <ResourceDictionary.MergedDictionaries>
        <ResourceDictionary Source="/GridDemo;component/Themes/generic.xaml" />
    </ResourceDictionary.MergedDictionaries>

    <ControlTemplate x:Key="displayTemplate">
        <TextBlock x:Name="PART_Editor" Style="{DynamicResource {dxet:TextEditThemeKey ResourceKey=TextBlockInplaceStyle}}">
                    <TextBlock.FontWeight>
                        <Binding Path="DataContext.RowData.Row.PercentComplete" RelativeSource="{RelativeSource TemplatedParent}">
                            <Binding.Converter>
                                <local:PercentCompleteToFontWeightConverter />
                            </Binding.Converter>
                        </Binding>
                    </TextBlock.FontWeight>
                    <TextBlock.Opacity>
                        <Binding Path="DataContext.RowData.Row.Complete" RelativeSource="{RelativeSource TemplatedParent}">
                            <Binding.Converter>
                                <dx:BoolToObjectConverter FalseValue="1" TrueValue="0.35" />
                            </Binding.Converter>
                        </Binding>
                    </TextBlock.Opacity>
                    <TextBlock.FontStyle>
                        <Binding Path="DataContext.RowData.Row.Complete" RelativeSource="{RelativeSource TemplatedParent}">
                            <Binding.Converter>
                                <dx:BoolToObjectConverter FalseValue="Normal" TrueValue="Italic" />
                            </Binding.Converter>
                        </Binding>
                    </TextBlock.FontStyle>
        </TextBlock>
    </ControlTemplate>
    <ControlTemplate x:Key="editTemplate">
        <TextBox x:Name="PART_Editor" Style="{DynamicResource {dxet:TextEditThemeKey ResourceKey=TextInplaceStyle}}" VerticalAlignment="Stretch">
            <TextBox.FontWeight>
                <Binding Path="RowData.Row.PercentComplete">
                    <Binding.Converter>
                        <local:PercentCompleteToFontWeightConverter />
                    </Binding.Converter>
                </Binding>
            </TextBox.FontWeight>
            <TextBox.Opacity>
                <Binding Path="RowData.Row.Complete">
                    <Binding.Converter>
                        <dx:BoolToObjectConverter FalseValue="1" TrueValue="0.35" />
                    </Binding.Converter>
                </Binding>
            </TextBox.Opacity>
            <TextBox.FontStyle>
                <Binding Path="RowData.Row.Complete">
                    <Binding.Converter>
                        <dx:BoolToObjectConverter FalseValue="Normal" TrueValue="Italic" />
                    </Binding.Converter>
                </Binding>
            </TextBox.FontStyle>
        </TextBox>
    </ControlTemplate>
</ResourceDictionary>!jusing System;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Ink;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;
using System.Windows.Data;
using System.Collections.Generic;
using DevExpress.Xpf.DemoBase.NWind;
using DevExpress.Xpf.DemoBase;
using System.Linq;
using System.Data;

namespace GridDemo {
    public struct Range {
        public string Text { get; set; }
        public int Min { get; set; }
        public int Max { get; set; }
        public override string ToString() {
            return Text;
        }
    }
    public class ProductIdToProductNameConverter : IValueConverter {
        #region IValueConverter Members
        public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) {
            DataRow[] rows = NWindData.Products.Table.Select("ProductID = " + value.ToString());
            if(rows.Count() > 0)
                return rows[0]["ProductName"];
            return string.Empty;
        }

        public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) {
            throw new NotImplementedException();
        }
        #endregion
    }
}!�MSBAML```����D@GridDemo, Version=13.1.4.0, Culture=neutral, PublicKeyToken=null#clr-namespace:GridDemoGridDemo\XPresentationFramework, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35RNWindowsBase, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35WSPresentationCore, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35RNSystem.Xaml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089.(GridDemo.ProductIdToProductNameConverter #ProductIdToProductNameConverter selectedRowItemTemplate��Orientation�Path�	Converter�D9http://schemas.microsoft.com/winfx/2006/xaml/presentation:x,http://schemas.microsoft.com/winfx/2006/xaml localclr-namespace:GridDemo%�&	&	7��.R���$
Horizontal=�.+������$
OrderID���$
�4,0,0,0q����$	ProductID�8!�<ResourceDictionary
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:local="clr-namespace:GridDemo">

    <local:ProductIdToProductNameConverter x:Key="ProductIdToProductNameConverter" />

    <DataTemplate x:Key="selectedRowItemTemplate">
        <StackPanel Orientation="Horizontal">
            <TextBlock Text="{Binding Path=OrderID}" />
            <TextBlock Margin="4,0,0,0" Text="{Binding Path=ProductID, Converter={StaticResource ProductIdToProductNameConverter}}" />
        </StackPanel>
    </DataTemplate>
</ResourceDictionary>!Jusing System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using DevExpress.Xpf.Utils;
using System.Windows.Input;
using DevExpress.Xpf.Grid;
using DevExpress.Xpf.DemoBase.DataClasses;
using System.Windows.Media.Imaging;
using System.Windows.Media;
using DevExpress.Xpf.Grid.TreeList;

namespace GridDemo {
    public class CustomNodeImageSelector : TreeListNodeImageSelector {
        public CustomNodeImageSelector() {
            ImageCache = new Dictionary<string, ImageSource>();
        }
        Dictionary<string, ImageSource> ImageCache { get; set; }
        public override ImageSource Select(TreeListRowData rowData) {
            string groupName = (rowData.Row as Employee).GroupName;
            if(ImageCache.ContainsKey(groupName))
                return ImageCache[groupName];
            ImageSource image = new BitmapImage(new Uri(GroupNameToImageConverter.GetImagePathByGroupName(groupName), UriKind.Relative));
            ImageCache.Add(groupName, image);
            return image;
        }
    }
}!�MSBAML```����D@GridDemo, Version=13.1.4.0, Culture=neutral, PublicKeyToken=null#clr-namespace:GridDemoGridDemo\XPresentationFramework, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35RNWindowsBase, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35WSPresentationCore, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35RNSystem.Xaml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089a]DevExpress.Xpf.Core.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49aeaDevExpress.Xpf.DemoBase.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49afbDevExpress.Xpf.Grid.v13.1.Core, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49aa]DevExpress.Xpf.Grid.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49al	hDevExpress.Xpf.Grid.v13.1.Extensions, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49ac
_System.Windows.Interactivity, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35�MergedDictionaries
�Source("GridDemo.GroupNameToImageConverter GroupNameToImageConverter/)GridDemo.BirthdayImageVisibilityConverter $ BirthdayImageVisibilityConverter*$GridDemo.CountryToFlagImageConverter CountryToFlagImageConverter?9DevExpress.Xpf.Core.BooleanToVisibilityConverterExtension  BooleanToVisibilityConverter
Invert colBirthDateCellTemplate�ColumnDefinitions%DevExpress.Xpf.Editors.DateEditName�Path�ElementName�	Converter^�ToolTip "colGroupNameGroupValueTemplate TextBlockStyle	��Padding colGroupNameCellTemplate%GridDemo.ViewToBooleanConverter ViewToBooleanConverter *	&customTemplateWithSummaryCustomization
��Orientation)#DevExpress.Xpf.Editors.ComboBoxEdit 
GroupSummaryComboBoxEdit
�Cursor+%DevExpress.Xpf.Editors.LookUpEditBaseItemsSource DemoDataProvider

�Source%DevExpress.Xpf.Editors.BaseEdit	EditValue�Mode�UpdateSourceTrigger FormatStringConverter&	 GridDemo.CustomNodeImageSelector 

imageSelector(
"GridDemo.EmployeeToOrdersConverter employeeToOrdersConverter cardTemplate& DevExpress.Xpf.Editors.ImageEditStretchShowMenu
Source& DevExpress.Xpf.Core.DXTabControl demoTabControl
SelectedIndex#
DevExpress.Xpf.Core.DXTabItem

Header)#DevExpress.Xpf.Core.ObjectConverter demoTabItem�
ShowGridLines�	ResourcesB<DevExpress.Xpf.DemoBase.Helpers.DateTimeShortPatternCoverter Key�RowDefinitions dateTimeConverter colInfoHeaderTemplate�Name��Name("GridDemo.ColumnHeaderTextConverter
ColumnName.
(System.Windows.Interactivity.InteractionTriggers/
)System.Windows.Interactivity.EventTrigger	EventName.
(System.Windows.Interactivity.TriggerBaseActions6
0System.Windows.Interactivity.InvokeCommandActionCommandParameter Command!�RelativeSource ordersDetailHeaderTemplate cardHeaderTemplate ImageDataCellTemplate"Name�D9http://schemas.microsoft.com/winfx/2006/xaml/presentation:x,http://schemas.microsoft.com/winfx/2006/xaml localclr-namespace:GridDemo?dxe5http://schemas.devexpress.com/winfx/2008/xaml/editors;dx2http://schemas.devexpress.com/winfx/2008/xaml/core<dxb2http://schemas.devexpress.com/winfx/2008/xaml/barsAdxdb6http://schemas.devexpress.com/winfx/2008/xaml/demobase@dxg2http://schemas.devexpress.com/winfx/2008/xaml/grid	Bi:http://schemas.microsoft.com/expression/2010/interactivity
�$>8/GridDemo;component/ModuleResources/SharedResources.xaml?�%�&	&	&	
&	&	77&	^77&	O7&	�&		�777&	
�&	�&	�77&	s77&	�&	/&	�.��.R������$
�Auto�.+�$PART_Editor���$�1�y��$IsEditorActive�$PART_Editor��8.+��$
�4,0,4,0q�$8��2/GridDemo;component/Images/MultiView/BirthDate.png�$
��None=�$
�Left=�$�Center=�y��$	EditValue�$PART_Editor��8��$��Birthday Coming����.R��$
�5,0,0,0q���$
�Auto���.+��$
��None=�$�Center=����$RowData.Row.GroupName�8�����$RowData.Row.GroupName���8�$
	5,0,0,0q�$�1����$RowData.Row.GroupName���.R��$�16��$
��Uniform=����$RowData.Row.GroupName�8�����$RowData.Row.GroupName���.R���$

Horizontal=�$�Center=�$�0,0,10,0q�.+�#��
$Select summary type��
���$
Hand���*SummaryItemTypes+8
�$SummaryItem.SummaryType�$TwoWay=�$PropertyChanged=���$�Center=�$��(��
����#��
$Select summary column��
���$
Hand���*SummaryFieldNames+8
�$SummaryItem.FieldName�$TwoWay=�$PropertyChanged=���$�Center=�$��)=��
������$�Center=�
�������*SummaryValue+8	
��.R���$
Vertical=�.+��$�0q���$
�Auto���$�*�.+�$�0�$
UniformToFill=�$�70��$�64��.�$DataContext.ImageData���$
Vertical=�$	�Top=�$�	12,0,12,0q�$�1�.+���$

Horizontal=�$
�0,0,0,4q�.+���$
��Bold"�$
��Title: ����$��CharacterEllipsis=����$DataContext.JobTitle���$

Horizontal=�$
�0,0,0,4q�.+���$
��Bold"�$��First Name: ����$��CharacterEllipsis=����$DataContext.FirstName���$

Horizontal=�.+���$
��Bold"�$��Last Name: ����$��CharacterEllipsis=����$DataContext.LastName�$	�160��#��$�0,12,0,0q��$5/RowState.(local:CardTemplates.SelectedTabIndex)�$TwoWay=�.@�
$Contact Info#��.���$
Vertical=�.+���$

Horizontal=�$
�0,0,0,4q�.+���$
��Bold"�$��	Address: ����$
��Wrap=����$DataContext.AddressLine1���$

Horizontal=�$
�0,0,0,4q�.+���$
��Bold"�$��City: �������$DataContext.City���$

Horizontal=�$
�0,0,0,4q�.+���$
��Bold"�$��
Postal Code: �������$DataContext.PostalCode���$

Horizontal=�$
�0,0,0,4q�.+���$
��Bold"�$��	Country: �������$#DataContext.CountryRegionName���$

Horizontal=�.+���$
��Bold"�$
��Phone: �������$DataContext.Phone�
$Notes#��.��.$	�Top=�
�dateTimeConverter������.+���$
��Bold"�	Hired at:��$�1����$DataContext.HireDate�8��$
��Bold"�$��1�
Birth Date:��$��1�$�1����$DataContext.BirthDate�8��.R����$
�Auto�����$
�Auto���.+��$7��1/GridDemo;component/Images/MultiView/Contacts.png�$
��None=��$phoneBorder��$
Hand��$�1�._���$
tbPhone��8�$
�4,0,0,0q�$��Phone�����$Phone��$MouseLeftButtonDown��.$Phone�� �$NH(dxg:BaseGridColumnHeader.GridColumn).DataContext.ChangeFieldNameCommand�!��*TemplatedParent+��$��/��$
�4,0,0,0q�$�Center=�$�2��$
addressBorder��$
Hand��$�3�._���$	tbAddress��8�$
�4,0,0,0q�$
��Address�����$
Address Line1��$MouseLeftButtonDown��.$AddressLine1�� �$NH(dxg:BaseGridColumnHeader.GridColumn).DataContext.ChangeFieldNameCommand�!��*TemplatedParent+��.R���$

Horizontal=�$�24��.+��$
�0,0,3,0q�$5��//GridDemo;component/Images/MultiView/Orders.png�$�Center=���$��Orders��$�Center=���.R���$

Horizontal=�.+���$��NoWrap=����$Data.FirstName���$��NoWrap=�$
�8,0,0,0q����$
Data.LastName���.R�$"PART_Editor��$
Uniform=�$�70��!�2<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:local="clr-namespace:GridDemo"
    xmlns:dxe="http://schemas.devexpress.com/winfx/2008/xaml/editors"
    xmlns:dx="http://schemas.devexpress.com/winfx/2008/xaml/core"
    xmlns:dxb="http://schemas.devexpress.com/winfx/2008/xaml/bars"
    xmlns:dxdb="http://schemas.devexpress.com/winfx/2008/xaml/demobase"
    xmlns:dxg="http://schemas.devexpress.com/winfx/2008/xaml/grid"
    xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity">

    <ResourceDictionary.MergedDictionaries>
        <ResourceDictionary Source="/GridDemo;component/ModuleResources/SharedResources.xaml" />
    </ResourceDictionary.MergedDictionaries>

    <local:GroupNameToImageConverter x:Key="GroupNameToImageConverter"/>
    <local:BirthdayImageVisibilityConverter x:Key="BirthdayImageVisibilityConverter"/>
    <local:CountryToFlagImageConverter x:Key="CountryToFlagImageConverter"/>
    <dx:BooleanToVisibilityConverterExtension x:Key="BooleanToVisibilityConverter" Invert="True"/>

    <DataTemplate x:Key="colBirthDateCellTemplate">
        <Grid>
            <Grid.ColumnDefinitions>
                <ColumnDefinition />
                <ColumnDefinition Width="Auto"/>
            </Grid.ColumnDefinitions>
            <dxe:DateEdit x:Name="PART_Editor">
            </dxe:DateEdit>
            <Grid Grid.Column="1" Visibility="{Binding Path=IsEditorActive, ElementName=PART_Editor, Converter={StaticResource BooleanToVisibilityConverter}}">
                <Image Margin="4,0,4,0" Source="/GridDemo;component/Images/MultiView/BirthDate.png" Visibility="{Binding Path=EditValue, ElementName=PART_Editor, Converter={StaticResource BirthdayImageVisibilityConverter}}" Stretch="None" HorizontalAlignment="Left" VerticalAlignment="Center">
                    <ToolTipService.ToolTip>
                        <TextBlock Text="Birthday Coming"/>
                    </ToolTipService.ToolTip>
                </Image>
            </Grid>
        </Grid>
    </DataTemplate>
    <DataTemplate x:Key="colGroupNameGroupValueTemplate">
        <Grid Margin="5,0,0,0">
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="Auto"/>
                <ColumnDefinition/>
            </Grid.ColumnDefinitions>
            <Image Source="{Binding Path=RowData.Row.GroupName, Converter={StaticResource GroupNameToImageConverter}}" Stretch="None" VerticalAlignment="Center">
                <ToolTipService.ToolTip>
                    <TextBlock Text="{Binding Path=RowData.Row.GroupName}"/>
                </ToolTipService.ToolTip>
            </Image>
            <TextBlock Style="{StaticResource TextBlockStyle}" Text="{Binding Path=RowData.Row.GroupName}" Padding="5,0,0,0" Grid.Column="1"/>
        </Grid>
    </DataTemplate>
    <DataTemplate x:Key="colGroupNameCellTemplate">
        <Image Source="{Binding Path=RowData.Row.GroupName, Converter={StaticResource GroupNameToImageConverter}}" Width="16" Stretch="Uniform">
            <ToolTipService.ToolTip>
                <TextBlock Text="{Binding Path=RowData.Row.GroupName}"/>
            </ToolTipService.ToolTip>
        </Image>
    </DataTemplate>
    <local:ViewToBooleanConverter x:Key="ViewToBooleanConverter"/>
    <DataTemplate x:Key="customTemplateWithSummaryCustomization">
        <StackPanel Orientation="Horizontal" VerticalAlignment="Center" Margin="0,0,10,0">
            <dxe:ComboBoxEdit Style="{DynamicResource GroupSummaryComboBoxEdit}" ItemsSource="{Binding SummaryItemTypes, Source={StaticResource DemoDataProvider}}" EditValue="{Binding Path=SummaryItem.SummaryType, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" ToolTipService.ToolTip="Select summary type" Foreground="Black" Cursor="Hand" />
            <TextBlock VerticalAlignment="Center" Text="(" Foreground="Black" />
            <dxe:ComboBoxEdit Style="{DynamicResource GroupSummaryComboBoxEdit}" ItemsSource="{Binding SummaryFieldNames, Source={StaticResource DemoDataProvider}}" EditValue="{Binding Path=SummaryItem.FieldName, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" ToolTipService.ToolTip="Select summary column" Foreground="Black" Cursor="Hand" />
            <TextBlock VerticalAlignment="Center" Text=")=" Foreground="Black" />
            <TextBlock VerticalAlignment="Center" Text="{Binding SummaryValue, Converter={StaticResource FormatStringConverter}}" Foreground="Black" />
        </StackPanel>
    </DataTemplate>
    <local:CustomNodeImageSelector x:Key="imageSelector" />
    <local:EmployeeToOrdersConverter x:Key="employeeToOrdersConverter" />
    <DataTemplate x:Key="cardTemplate">
        <StackPanel Orientation="Vertical">
            <Grid Margin="0">
                <Grid.ColumnDefinitions>
                    <ColumnDefinition Width="Auto" />
                    <ColumnDefinition Width="*" />
                </Grid.ColumnDefinitions>
                <dxe:ImageEdit Grid.Column="0" Stretch="UniformToFill" Height="70" Width="64" Source="{Binding Path=DataContext.ImageData}" ShowMenu="False" />
                <StackPanel Orientation="Vertical" VerticalAlignment="Top" Margin="12,0,12,0" Grid.Column="1">
                    <StackPanel Orientation="Horizontal" Margin="0,0,0,4">
                        <TextBlock FontWeight="Bold" Text="Title: " />
                        <TextBlock Text="{Binding Path=DataContext.JobTitle}" TextTrimming="CharacterEllipsis" />
                    </StackPanel>
                    <StackPanel Orientation="Horizontal" Margin="0,0,0,4">
                        <TextBlock FontWeight="Bold" Text="First Name: " />
                        <TextBlock Text="{Binding Path=DataContext.FirstName}" TextTrimming="CharacterEllipsis" />
                    </StackPanel>
                    <StackPanel Orientation="Horizontal">
                        <TextBlock FontWeight="Bold" Text="Last Name: " />
                        <TextBlock Text="{Binding Path=DataContext.LastName}" TextTrimming="CharacterEllipsis" />
                    </StackPanel>
                </StackPanel>
            </Grid>
            <dx:DXTabControl Height="160" SelectedIndex="{Binding Path=RowState.(local:CardTemplates.SelectedTabIndex), Mode=TwoWay}" Style="{DynamicResource demoTabControl}" Margin="0,12,0,0">
                <dx:DXTabItem Header="Contact Info" Style="{DynamicResource demoTabItem}">
                    <StackPanel Orientation="Vertical">
                        <StackPanel Orientation="Horizontal" Margin="0,0,0,4">
                            <TextBlock FontWeight="Bold" Text="Address: " />
                            <TextBlock Text="{Binding Path=DataContext.AddressLine1}" TextWrapping="Wrap" />
                        </StackPanel>
                        <StackPanel Orientation="Horizontal" Margin="0,0,0,4">
                            <TextBlock FontWeight="Bold" Text="City: " />
                            <TextBlock Text="{Binding Path=DataContext.City}" />
                        </StackPanel>
                        <StackPanel Orientation="Horizontal" Margin="0,0,0,4">
                            <TextBlock FontWeight="Bold" Text="Postal Code: " />
                            <TextBlock Text="{Binding Path=DataContext.PostalCode}" />
                        </StackPanel>
                        <StackPanel Orientation="Horizontal" Margin="0,0,0,4">
                            <TextBlock FontWeight="Bold" Text="Country: " />
                            <TextBlock Text="{Binding Path=DataContext.CountryRegionName}" />
                        </StackPanel>
                        <StackPanel Orientation="Horizontal">
                            <TextBlock FontWeight="Bold" Text="Phone: " />
                            <TextBlock Text="{Binding Path=DataContext.Phone}" />
                        </StackPanel>
                    </StackPanel>
                </dx:DXTabItem>
                <dx:DXTabItem Header="Notes" Style="{DynamicResource demoTabItem}">
                    <Grid ShowGridLines="False" VerticalAlignment="Top">
                        <Grid.Resources>
                            <dxdb:DateTimeShortPatternCoverter x:Key="dateTimeConverter" />
                        </Grid.Resources>
                        <Grid.RowDefinitions>
                            <RowDefinition/>
                            <RowDefinition />
                        </Grid.RowDefinitions>
                        <Grid.ColumnDefinitions>
                            <ColumnDefinition />
                            <ColumnDefinition />
                        </Grid.ColumnDefinitions>
                        <TextBlock FontWeight="Bold">Hired at:</TextBlock>
                        <TextBlock Grid.Column="1"  Text="{Binding Path=DataContext.HireDate, Converter={StaticResource dateTimeConverter}}"/>
                        <TextBlock FontWeight="Bold" Grid.Row="1" >Birth Date:</TextBlock>
                        <TextBlock Grid.Row="1" Grid.Column="1" Text="{Binding Path=DataContext.BirthDate, Converter={StaticResource dateTimeConverter}}"/>
                    </Grid>
                </dx:DXTabItem>
            </dx:DXTabControl>
        </StackPanel>
    </DataTemplate>
    <DataTemplate x:Key="colInfoHeaderTemplate">
        <Grid>
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="Auto"/>
                <ColumnDefinition/>
                <ColumnDefinition Width="Auto"/>
                <ColumnDefinition/>
            </Grid.ColumnDefinitions>
            <Image Source="/GridDemo;component/Images/MultiView/Contacts.png" Stretch="None"/>
            <Border x:Name="phoneBorder" Cursor="Hand" Grid.Column="1">
                <TextBlock Style="{StaticResource TextBlockStyle}" x:Name="tbPhone" Margin="4,0,0,0" Text="Phone">
                    <TextBlock.FontWeight>
                        <Binding>
                            <Binding.Converter>
                                <local:ColumnHeaderTextConverter ColumnName="Phone" />
                            </Binding.Converter>
                        </Binding>
                    </TextBlock.FontWeight>
                    <i:Interaction.Triggers>
                        <i:EventTrigger EventName="MouseLeftButtonDown">
                            <i:InvokeCommandAction Command="{Binding Path=(dxg:BaseGridColumnHeader.GridColumn).DataContext.ChangeFieldNameCommand, RelativeSource={RelativeSource TemplatedParent}}"
                                                   CommandParameter="Phone" />
                        </i:EventTrigger>
                    </i:Interaction.Triggers>
                </TextBlock>
            </Border>
            <TextBlock Text="/" Margin="4,0,0,0" VerticalAlignment="Center" Grid.Column="2"/>
            <Border x:Name="addressBorder" Cursor="Hand" Grid.Column="3">
                <TextBlock Style="{StaticResource TextBlockStyle}" x:Name="tbAddress" Margin="4,0,0,0" Text="Address">
                    <TextBlock.FontWeight>
                        <Binding>
                            <Binding.Converter>
                                <local:ColumnHeaderTextConverter ColumnName="Address Line1"/>
                            </Binding.Converter>
                        </Binding>
                    </TextBlock.FontWeight>
                    <i:Interaction.Triggers>
                        <i:EventTrigger EventName="MouseLeftButtonDown">
                            <i:InvokeCommandAction Command="{Binding Path=(dxg:BaseGridColumnHeader.GridColumn).DataContext.ChangeFieldNameCommand, RelativeSource={RelativeSource TemplatedParent}}"
                                                   CommandParameter="AddressLine1" />
                        </i:EventTrigger>
                    </i:Interaction.Triggers>
                </TextBlock>
            </Border>
        </Grid>
    </DataTemplate>
    <DataTemplate x:Key="ordersDetailHeaderTemplate">
        <StackPanel Orientation="Horizontal" MinHeight="24">
            <Image Margin="0,0,3,0" Source="/GridDemo;component/Images/MultiView/Orders.png" VerticalAlignment="Center" />
            <TextBlock Text="Orders" VerticalAlignment="Center" />
        </StackPanel>
    </DataTemplate>
    <DataTemplate x:Key="cardHeaderTemplate">
        <StackPanel Orientation="Horizontal">
            <TextBlock Text="{Binding Path=Data.FirstName}" TextWrapping="NoWrap" />
            <TextBlock Text="{Binding Path=Data.LastName}" TextWrapping="NoWrap" Margin="8,0,0,0" />
        </StackPanel>
    </DataTemplate>
    <DataTemplate x:Key="ImageDataCellTemplate">
        <dxe:ImageEdit x:Name="PART_Editor" Stretch="Uniform" Height="70"/>
    </DataTemplate>
</ResourceDictionary>!;using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Input;
using DevExpress.Xpf.Grid;
using DevExpress.Xpf.DemoBase.Helpers;
using DevExpress.Xpf.Core.Commands;
using DevExpress.Xpf.Utils;
using System.Collections;
using DevExpress.Xpf.DemoBase.DataClasses;

namespace GridDemo {
    public class MultiViewViewItem {
        public object Content { get; set; }
        public string DisplayName { get; set; }
    }

    public abstract class MultiViewViewModelBase : DemoViewModelBase {
        IList employees = EmployeesWithPhotoData.DataSource;
        public IList Employees { get { return employees; } }

        string columnInfoFieldName = "Phone";
        public string ColumnInfoFieldName {
            get { return this.columnInfoFieldName; }
            set {
                this.columnInfoFieldName = value;
                OnPropertyChanged("ColumnInfoFieldName");
            }
        }

        public MultiViewViewModelBase() {
            ChangeFieldNameCommand = new DelegateCommand<object>(OnChangeFieldName);
        }
        public DelegateCommand<object> ChangeFieldNameCommand { get; private set; }
        bool CanExecuteCommand {
            get { return true; }
        }
        void OnChangeFieldName(object param) {
            ColumnInfoFieldName = (string)param;
        }
    }
    public class MultiViewTableViewViewModel : MultiViewViewModelBase {
    }
    public class MultiViewTreeListViewViewModel : MultiViewViewModelBase {
    }
    public class MultiViewCardViewViewModel : MultiViewViewModelBase {
    }
    public class MultiViewBandedTableViewViewModel : MultiViewViewModelBase {
    }
    public class MultiViewBandedTreeListViewViewModel : MultiViewViewModelBase {
    }
}!�$MSBAML```����D@GridDemo, Version=13.1.4.0, Culture=neutral, PublicKeyToken=null#clr-namespace:GridDemoGridDemo\XPresentationFramework, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35RNWindowsBase, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35WSPresentationCore, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35RNSystem.Xaml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089a]DevExpress.Xpf.Core.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49aeaDevExpress.Xpf.DemoBase.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49afbDevExpress.Xpf.Grid.v13.1.Core, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49aa]DevExpress.Xpf.Grid.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49al	hDevExpress.Xpf.Grid.v13.1.Extensions, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49ac
_System.Windows.Interactivity, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35�MergedDictionaries
�Source��DataType*$GridDemo.MultiViewTableViewViewModel%DevExpress.Xpf.Grid.GridControlAutoExpandAllGroups)#DevExpress.Xpf.Grid.DataControlBaseAllowColumnMRUFilterListItemsSourceDetailDescriptor5/DevExpress.Xpf.Grid.DataControlDetailDescriptor.(DevExpress.Xpf.Grid.DetailDescriptorBase
ShowHeader ordersDetailHeaderTemplateHeaderContentTemplate	ItemsSourceBinding employeeToOrdersConverter
�	ConverterDataControlColumns$DevExpress.Xpf.Grid.GridColumn$DevExpress.Xpf.Grid.ColumnBase
	FieldName colCountryCellTemplateCellTemplateView#DevExpress.Xpf.Grid.TableView	AutoWidth& DevExpress.Xpf.Grid.GridViewBaseShowGroupPanel&	 DevExpress.Xpf.Grid.DataViewBase	ShowFixedTotalSummary	DetailHeaderContentTotalSummary)
#DevExpress.Xpf.Grid.GridSummaryItem)#DevExpress.Xpf.Grid.SummaryItemBaseSummaryType	Alignment	FieldNameGroupSummaryUnboundType]YDevExpress.Data.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a82DevExpress.Utils.Design.UnboundColumnTypeConverterUnboundExpressionReadOnly ColumnHeaderTemplate$
DevExpress.Xpf.Grid.BaseColumn
HeaderTemplate
Width colBirthDateCellTemplateEditSettings60DevExpress.Xpf.Editors.Settings.DateEditSettings60DevExpress.Xpf.Editors.Settings.BaseEditSettings
DisplayFormat
 
Header)#DevExpress.Xpf.Core.ObjectConverter!
Visible"ShowInColumnChooser#AllowColumnFiltering5/DevExpress.Utils.Design.DefaultBooleanConverter$AllowSorting colInfoHeaderTemplate%�Path&
GroupIndex'SortMode(AllowEditing "colGroupNameGroupValueTemplate)GroupValueTemplate colGroupNameCellTemplate*AllowPerPixelScrolling.
(System.Windows.Interactivity.Interaction+Triggers/
)System.Windows.Interactivity.EventTrigger,	EventName.
(System.Windows.Interactivity.TriggerBase-Actions6
0System.Windows.Interactivity.InvokeCommandAction.CommandName/CommandParameter0Command1�RelativeSource2��Mode3��AncestorType-'GridDemo.MultiViewTreeListViewViewModel& DevExpress.Xpf.Grid.TreeListView4KeyFieldName5	ShowSearchPanelMode6ParentFieldName7	AutoWidth8AllowPerPixelScrolling 
imageSelector9NodeImageSelector:ShowNodeImages;AutoExpandAllNodes)#GridDemo.MultiViewCardViewViewModel"DevExpress.Xpf.Grid.CardView<	AllowEditing=ShowGroupedColumns>MaxCardCountInRow?	ShowTotalSummary@
CardAlignmentA	NavigationStyle 	cardTemplateBCardTemplate 
cardHeaderTemplateCCardHeaderTemplate0*GridDemo.MultiViewBandedTableViewViewModelDBands)#DevExpress.Xpf.Grid.GridControlBandEColumns"DevExpress.Xpf.Grid.BandBaseFGridRow ImageDataCellTemplate3-GridDemo.MultiViewBandedTreeListViewViewModel�D9http://schemas.microsoft.com/winfx/2006/xaml/presentation:x,http://schemas.microsoft.com/winfx/2006/xaml localclr-namespace:GridDemo?dxe5http://schemas.devexpress.com/winfx/2008/xaml/editors;dx2http://schemas.devexpress.com/winfx/2008/xaml/core<dxb2http://schemas.devexpress.com/winfx/2008/xaml/barsAdxdb6http://schemas.devexpress.com/winfx/2008/xaml/demobase@dxg2http://schemas.devexpress.com/winfx/2008/xaml/grid	Bi:http://schemas.microsoft.com/expression/2010/interactivity
�$>8/GridDemo;component/ModuleResources/SharedResources.xaml?��$A;/GridDemo;component/ModuleResources/MultiViewTemplates.xaml?�%(��*,+)777777777777(��E*,+)7777777777(���*,+)7777777777	7
(���	*,+)777777777(���*,+)7777777777��".R�..�*	Employees+.8	�8
.$
	OrderDate��$

Freight��$
ShipName��$
ShipCountry��8$
ShipCity��$
ShipAddress��...$Orders��
$Count=�$
Left=�
$	Sum=�$Right=�$
Freight��
$	BirthDate��$	Min=�$
FullName��$String$$[FirstName] + ' ' + [LastName]��.8$
	BirthDate��$80��88$d��$
JobTitle��8$
CountryRegionName��$
 Country$	130��88$	
Age��$80��$
Integer!.".$("DateDiffYear([BirthDate], Today())��$#False$$False$#False8	
�$%ColumnInfoFieldName�$35��$&0�$
	GroupName��$'Value=�$(False8)
8!.
$Count=�$Right=�..*.$	Employees��+$,Loaded��.-$.ExpandMasterRow��$/1��0�*Commands.ExpandMasterRow+1��$2FindAncestor=�$3
dxg:TableViewL���".R�.�*	Employees+
$	BirthDate��$	Min=�$
FullName��$String$$[FirstName] + ' ' + [LastName]��.8$
	BirthDate��$80��88$d��$
JobTitle��8$
CountryRegionName��$
 Country$	130��88$	
Age��$80��$
Integer!.".$("DateDiffYear([BirthDate], Today())��$#False$$False$#False8
�$%ColumnInfoFieldName�$35��$&0�$
	GroupName��$'Value=�$(False8)8!.
$Count=�$Right=�$4Id��.$5Never=�$6ParentId��7.8.89	:.;.��".R�..�*	Employees+
$	BirthDate��$	Min=�$
FullName��$String$$[FirstName] + ' ' + [LastName]��.8$
	BirthDate��$80��88$d��$
JobTitle��8$
CountryRegionName��$
 Country$	130��88$	
Age��$80��$
Integer!.".$("DateDiffYear([BirthDate], Today())��$#False$$False$#False8
�$%ColumnInfoFieldName�$35��$&0�$
	GroupName��$'Value=�$(False8)8!.
$Count=�$Right=�<.=.$>1�?.$@Center=�$	ARow=�8B	8C
��".R�..�*	Employees+D$ Person.E$
FullName��$String$$[FirstName] + ' ' + [LastName]��.8$
	BirthDate��$80��88$d��$	
Age��$80��$
Integer!.".$("DateDiffYear([BirthDate], Today())��$#False$
JobTitle��8$F1�$
	GroupName��$35��$&0�$'Value=�$(False8)8!.$ Contact Info.E$
CountryRegionName��$
 Country88$

City��$

PostalCode��$F1�$
AddressLine1��$
 Address$F1�$
 Picture.E$
	ImageData��$ Photo$(False8
$	BirthDate��$	Min=�
$Count=�$Right=�..*.$	Employees����".R�.�*	Employees+D$ Person.E$
FullName��$String$$[FirstName] + ' ' + [LastName]��.8$
	BirthDate��$80��88$d��$	
Age��$80��$
Integer!.".$("DateDiffYear([BirthDate], Today())��$#False$
JobTitle��8$F1�$
	GroupName��$35��$&0�$'Value=�$(False8)8!.$ Contact Info.E$
CountryRegionName��$
 Country88$

City��$

PostalCode��$F1�$
AddressLine1��$
 Address$F1�$
 Picture.E$
	ImageData��$ Photo$(False8
$	BirthDate��$	Min=�
$Count=�$Right=�$4Id��.$5Never=�;.$6ParentId��7.8.89	:.!�B<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:local="clr-namespace:GridDemo"
    xmlns:dxe="http://schemas.devexpress.com/winfx/2008/xaml/editors"
    xmlns:dx="http://schemas.devexpress.com/winfx/2008/xaml/core"
    xmlns:dxb="http://schemas.devexpress.com/winfx/2008/xaml/bars"
    xmlns:dxdb="http://schemas.devexpress.com/winfx/2008/xaml/demobase"
    xmlns:dxg="http://schemas.devexpress.com/winfx/2008/xaml/grid"
    xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity">

    <ResourceDictionary.MergedDictionaries>
        <ResourceDictionary Source="/GridDemo;component/ModuleResources/SharedResources.xaml" />
        <ResourceDictionary Source="/GridDemo;component/ModuleResources/MultiViewTemplates.xaml" />
    </ResourceDictionary.MergedDictionaries>

    <DataTemplate DataType="{x:Type local:MultiViewTableViewViewModel}">
        <dxg:GridControl AutoExpandAllGroups="True" ItemsSource="{Binding Employees}" AllowColumnMRUFilterList="False">
            <dxg:GridControl.DetailDescriptor>
                <dxg:DataControlDetailDescriptor ItemsSourceBinding="{Binding Converter={StaticResource employeeToOrdersConverter}}" ShowHeader="True" HeaderContentTemplate="{StaticResource ordersDetailHeaderTemplate}">
                    <dxg:GridControl>
                        <dxg:GridControl.Columns>
                            <dxg:GridColumn FieldName="OrderDate" />
                            <dxg:GridColumn FieldName="Freight" />
                            <dxg:GridColumn FieldName="ShipName" />
                            <dxg:GridColumn FieldName="ShipCountry" CellTemplate="{StaticResource colCountryCellTemplate}" />
                            <dxg:GridColumn FieldName="ShipCity" />
                            <dxg:GridColumn FieldName="ShipAddress" />
                        </dxg:GridControl.Columns>
                        <dxg:GridControl.View>
                            <dxg:TableView AutoWidth="True" ShowGroupPanel="False" ShowFixedTotalSummary="True" DetailHeaderContent="Orders"/>
                        </dxg:GridControl.View>
                        <dxg:GridControl.TotalSummary>
                            <dxg:GridSummaryItem SummaryType="Count" Alignment="Left" />
                            <dxg:GridSummaryItem SummaryType="Sum" Alignment="Right" FieldName="Freight" />
                        </dxg:GridControl.TotalSummary>
                    </dxg:GridControl>
                </dxg:DataControlDetailDescriptor>
            </dxg:GridControl.DetailDescriptor>
            <dxg:GridControl.GroupSummary>
                <dxg:GridSummaryItem FieldName="BirthDate" SummaryType="Min" />
            </dxg:GridControl.GroupSummary>
            <dxg:GridControl.Columns>
                <dxg:GridColumn FieldName="FullName" UnboundType="String" UnboundExpression="[FirstName] + ' ' + [LastName]" ReadOnly="True" HeaderTemplate="{StaticResource ColumnHeaderTemplate}"/>
                <dxg:GridColumn FieldName="BirthDate" Width="80" HeaderTemplate="{StaticResource ColumnHeaderTemplate}" CellTemplate="{StaticResource colBirthDateCellTemplate}">
                    <dxg:GridColumn.EditSettings>
                        <dxe:DateEditSettings DisplayFormat="d"/>
                    </dxg:GridColumn.EditSettings>
                </dxg:GridColumn>
                <dxg:GridColumn FieldName="JobTitle" HeaderTemplate="{StaticResource ColumnHeaderTemplate}"/>
                <dxg:GridColumn FieldName="CountryRegionName" Header="Country" Width="130" HeaderTemplate="{StaticResource ColumnHeaderTemplate}"
                                CellTemplate="{StaticResource colCountryCellTemplate}"/>
                <dxg:GridColumn FieldName="Age" Width="80" UnboundType="Integer" Visible="False" ShowInColumnChooser="False" UnboundExpression="DateDiffYear([BirthDate], Today())" AllowColumnFiltering="False"/>
                <dxg:GridColumn FieldName="{Binding Path=ColumnInfoFieldName}" AllowSorting="False" AllowColumnFiltering="False" HeaderTemplate="{StaticResource colInfoHeaderTemplate}" />
                <dxg:GridColumn Width="35" GroupIndex="0" FieldName="GroupName" SortMode="Value" AllowEditing="False"
                                GroupValueTemplate="{StaticResource colGroupNameGroupValueTemplate}" CellTemplate="{StaticResource colGroupNameCellTemplate}" Visible="False"/>
            </dxg:GridControl.Columns>
            <dxg:GridControl.TotalSummary>
                <dxg:GridSummaryItem SummaryType="Count" Alignment="Right"/>
            </dxg:GridControl.TotalSummary>
            <dxg:GridControl.View>
                <dxg:TableView AutoWidth="True" ShowFixedTotalSummary="True" AllowPerPixelScrolling="True" DetailHeaderContent="Employees">
                    <i:Interaction.Triggers>
                        <i:EventTrigger EventName="Loaded">
                            <i:InvokeCommandAction CommandName="ExpandMasterRow" CommandParameter="1"
                                                           Command="{Binding Commands.ExpandMasterRow, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=dxg:TableView}}" />
                        </i:EventTrigger>
                    </i:Interaction.Triggers>
                </dxg:TableView>
            </dxg:GridControl.View>
        </dxg:GridControl>
    </DataTemplate>
    <DataTemplate DataType="{x:Type local:MultiViewTreeListViewViewModel}">
        <dxg:GridControl ItemsSource="{Binding Employees}" AllowColumnMRUFilterList="False">
            <dxg:GridControl.GroupSummary>
                <dxg:GridSummaryItem FieldName="BirthDate" SummaryType="Min" />
            </dxg:GridControl.GroupSummary>
            <dxg:GridControl.Columns>
                <dxg:GridColumn FieldName="FullName" UnboundType="String" UnboundExpression="[FirstName] + ' ' + [LastName]" ReadOnly="True" HeaderTemplate="{StaticResource ColumnHeaderTemplate}"/>
                <dxg:GridColumn FieldName="BirthDate" Width="80" HeaderTemplate="{StaticResource ColumnHeaderTemplate}" CellTemplate="{StaticResource colBirthDateCellTemplate}">
                    <dxg:GridColumn.EditSettings>
                        <dxe:DateEditSettings DisplayFormat="d"/>
                    </dxg:GridColumn.EditSettings>
                </dxg:GridColumn>
                <dxg:GridColumn FieldName="JobTitle" HeaderTemplate="{StaticResource ColumnHeaderTemplate}"/>
                <dxg:GridColumn FieldName="CountryRegionName" Header="Country" Width="130" HeaderTemplate="{StaticResource ColumnHeaderTemplate}"
                                CellTemplate="{StaticResource colCountryCellTemplate}"/>
                <dxg:GridColumn FieldName="Age" Width="80" UnboundType="Integer" Visible="False" ShowInColumnChooser="False" UnboundExpression="DateDiffYear([BirthDate], Today())" AllowColumnFiltering="False"/>
                <dxg:GridColumn FieldName="{Binding Path=ColumnInfoFieldName}" AllowSorting="False" AllowColumnFiltering="False" HeaderTemplate="{StaticResource colInfoHeaderTemplate}" />
                <dxg:GridColumn Width="35" GroupIndex="0" FieldName="GroupName" SortMode="Value" AllowEditing="False"
                                GroupValueTemplate="{StaticResource colGroupNameGroupValueTemplate}" CellTemplate="{StaticResource colGroupNameCellTemplate}" Visible="False"/>
            </dxg:GridControl.Columns>
            <dxg:GridControl.TotalSummary>
                <dxg:GridSummaryItem SummaryType="Count" Alignment="Right"/>
            </dxg:GridControl.TotalSummary>
            <dxg:GridControl.View>
                <dxg:TreeListView KeyFieldName="Id" ShowFixedTotalSummary="True" ShowSearchPanelMode="Never"
                                          ParentFieldName="ParentId" AutoWidth="True" AllowPerPixelScrolling="True"
                                          NodeImageSelector="{StaticResource imageSelector}" ShowNodeImages="True" AutoExpandAllNodes="True"/>
            </dxg:GridControl.View>
        </dxg:GridControl>
    </DataTemplate>
    <DataTemplate DataType="{x:Type local:MultiViewCardViewViewModel}">
        <dxg:GridControl ItemsSource="{Binding Employees}" AllowColumnMRUFilterList="False" AutoExpandAllGroups="True">
            <dxg:GridControl.GroupSummary>
                <dxg:GridSummaryItem FieldName="BirthDate" SummaryType="Min" />
            </dxg:GridControl.GroupSummary>
            <dxg:GridControl.Columns>
                <dxg:GridColumn FieldName="FullName" UnboundType="String" UnboundExpression="[FirstName] + ' ' + [LastName]" ReadOnly="True" HeaderTemplate="{StaticResource ColumnHeaderTemplate}"/>
                <dxg:GridColumn FieldName="BirthDate" Width="80" HeaderTemplate="{StaticResource ColumnHeaderTemplate}" CellTemplate="{StaticResource colBirthDateCellTemplate}">
                    <dxg:GridColumn.EditSettings>
                        <dxe:DateEditSettings DisplayFormat="d"/>
                    </dxg:GridColumn.EditSettings>
                </dxg:GridColumn>
                <dxg:GridColumn FieldName="JobTitle" HeaderTemplate="{StaticResource ColumnHeaderTemplate}"/>
                <dxg:GridColumn FieldName="CountryRegionName" Header="Country" Width="130" HeaderTemplate="{StaticResource ColumnHeaderTemplate}"
                                CellTemplate="{StaticResource colCountryCellTemplate}"/>
                <dxg:GridColumn FieldName="Age" Width="80" UnboundType="Integer" Visible="False" ShowInColumnChooser="False" UnboundExpression="DateDiffYear([BirthDate], Today())" AllowColumnFiltering="False"/>
                <dxg:GridColumn FieldName="{Binding Path=ColumnInfoFieldName}" AllowSorting="False" AllowColumnFiltering="False" HeaderTemplate="{StaticResource colInfoHeaderTemplate}" />
                <dxg:GridColumn Width="35" GroupIndex="0" FieldName="GroupName" SortMode="Value" AllowEditing="False"
                                GroupValueTemplate="{StaticResource colGroupNameGroupValueTemplate}" CellTemplate="{StaticResource colGroupNameCellTemplate}" Visible="False"/>
            </dxg:GridControl.Columns>
            <dxg:GridControl.TotalSummary>
                <dxg:GridSummaryItem SummaryType="Count" Alignment="Right"/>
            </dxg:GridControl.TotalSummary>
            <dxg:GridControl.View>
                <dxg:CardView AllowEditing="False" ShowGroupedColumns="True" MaxCardCountInRow="1" ShowTotalSummary="True"
                                      CardAlignment="Center" NavigationStyle="Row" CardTemplate="{StaticResource cardTemplate}"
                                      CardHeaderTemplate="{StaticResource cardHeaderTemplate}"/>
            </dxg:GridControl.View>
        </dxg:GridControl>
    </DataTemplate>
    <DataTemplate DataType="{x:Type local:MultiViewBandedTableViewViewModel}">
        <dxg:GridControl AutoExpandAllGroups="True" ItemsSource="{Binding Employees}" AllowColumnMRUFilterList="False">
            <dxg:GridControl.Bands>
                <dxg:GridControlBand Header="Person">
                    <dxg:GridColumn FieldName="FullName" UnboundType="String" UnboundExpression="[FirstName] + ' ' + [LastName]" ReadOnly="True" HeaderTemplate="{StaticResource ColumnHeaderTemplate}"/>
                    <dxg:GridColumn FieldName="BirthDate" Width="80" HeaderTemplate="{StaticResource ColumnHeaderTemplate}" CellTemplate="{StaticResource colBirthDateCellTemplate}">
                        <dxg:GridColumn.EditSettings>
                            <dxe:DateEditSettings DisplayFormat="d"/>
                        </dxg:GridColumn.EditSettings>
                    </dxg:GridColumn >
                    <dxg:GridColumn FieldName="Age" Width="80" UnboundType="Integer" Visible="False" ShowInColumnChooser="False" UnboundExpression="DateDiffYear([BirthDate], Today())" AllowColumnFiltering="False"/>
                    <dxg:GridColumn FieldName="JobTitle" HeaderTemplate="{StaticResource ColumnHeaderTemplate}" dxg:BandBase.GridRow="1"/>
                    <dxg:GridColumn FieldName="GroupName" Width="35" GroupIndex="0" SortMode="Value" AllowEditing="False" GroupValueTemplate="{StaticResource colGroupNameGroupValueTemplate}" CellTemplate="{StaticResource colGroupNameCellTemplate}" Visible="False"/>
                </dxg:GridControlBand>
                <dxg:GridControlBand Header="Contact Info">
                    <dxg:GridColumn FieldName="CountryRegionName" Header="Country" HeaderTemplate="{StaticResource ColumnHeaderTemplate}" CellTemplate="{StaticResource colCountryCellTemplate}"/>
                    <dxg:GridColumn FieldName="City"/>
                    <dxg:GridColumn FieldName="PostalCode" dxg:BandBase.GridRow="1"/>
                    <dxg:GridColumn FieldName="AddressLine1" Header="Address" dxg:BandBase.GridRow="1"/>
                </dxg:GridControlBand>
                <dxg:GridControlBand Header="Picture">
                    <dxg:GridColumn FieldName="ImageData" Header="Photo" AllowEditing="False" CellTemplate="{StaticResource ImageDataCellTemplate}"/>
                </dxg:GridControlBand>
            </dxg:GridControl.Bands>
            <dxg:GridControl.GroupSummary>
                <dxg:GridSummaryItem FieldName="BirthDate" SummaryType="Min" />
            </dxg:GridControl.GroupSummary>
            <dxg:GridControl.TotalSummary>
                <dxg:GridSummaryItem SummaryType="Count" Alignment="Right"/>
            </dxg:GridControl.TotalSummary>
            <dxg:GridControl.View>
                <dxg:TableView AutoWidth="True" ShowFixedTotalSummary="True" AllowPerPixelScrolling="True" DetailHeaderContent="Employees"/>
            </dxg:GridControl.View>
        </dxg:GridControl>
    </DataTemplate>
    <DataTemplate DataType="{x:Type local:MultiViewBandedTreeListViewViewModel}">
        <dxg:GridControl ItemsSource="{Binding Employees}" AllowColumnMRUFilterList="False">
            <dxg:GridControl.Bands>
                <dxg:GridControlBand Header="Person">
                    <dxg:GridColumn FieldName="FullName" UnboundType="String" UnboundExpression="[FirstName] + ' ' + [LastName]" ReadOnly="True" HeaderTemplate="{StaticResource ColumnHeaderTemplate}"/>
                    <dxg:GridColumn FieldName="BirthDate" Width="80" HeaderTemplate="{StaticResource ColumnHeaderTemplate}" CellTemplate="{StaticResource colBirthDateCellTemplate}">
                        <dxg:GridColumn.EditSettings>
                            <dxe:DateEditSettings DisplayFormat="d"/>
                        </dxg:GridColumn.EditSettings>
                    </dxg:GridColumn >
                    <dxg:GridColumn FieldName="Age" Width="80" UnboundType="Integer" Visible="False" ShowInColumnChooser="False" UnboundExpression="DateDiffYear([BirthDate], Today())" AllowColumnFiltering="False"/>
                    <dxg:GridColumn FieldName="JobTitle" HeaderTemplate="{StaticResource ColumnHeaderTemplate}" dxg:BandBase.GridRow="1"/>
                    <dxg:GridColumn FieldName="GroupName" Width="35" GroupIndex="0" SortMode="Value" AllowEditing="False" GroupValueTemplate="{StaticResource colGroupNameGroupValueTemplate}" CellTemplate="{StaticResource colGroupNameCellTemplate}" Visible="False"/>
                </dxg:GridControlBand>
                <dxg:GridControlBand Header="Contact Info">
                    <dxg:GridColumn FieldName="CountryRegionName" Header="Country" HeaderTemplate="{StaticResource ColumnHeaderTemplate}" CellTemplate="{StaticResource colCountryCellTemplate}"/>
                    <dxg:GridColumn FieldName="City"/>
                    <dxg:GridColumn FieldName="PostalCode" dxg:BandBase.GridRow="1"/>
                    <dxg:GridColumn FieldName="AddressLine1" Header="Address" dxg:BandBase.GridRow="1"/>
                </dxg:GridControlBand>
                <dxg:GridControlBand Header="Picture">
                    <dxg:GridColumn FieldName="ImageData" Header="Photo" AllowEditing="False" CellTemplate="{StaticResource ImageDataCellTemplate}"/>
                </dxg:GridControlBand>
            </dxg:GridControl.Bands>
            <dxg:GridControl.GroupSummary>
                <dxg:GridSummaryItem FieldName="BirthDate" SummaryType="Min" />
            </dxg:GridControl.GroupSummary>
            <dxg:GridControl.TotalSummary>
                <dxg:GridSummaryItem SummaryType="Count" Alignment="Right"/>
            </dxg:GridControl.TotalSummary>
            <dxg:GridControl.View>
                <dxg:TreeListView KeyFieldName="Id" ShowFixedTotalSummary="True" ShowSearchPanelMode="Never" AutoExpandAllNodes="True"
                                          ParentFieldName="ParentId" AutoWidth="True" AllowPerPixelScrolling="True"
                                          NodeImageSelector="{StaticResource imageSelector}" ShowNodeImages="True"/>
            </dxg:GridControl.View>
        </dxg:GridControl>
    </DataTemplate>
</ResourceDictionary>!eusing System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows.Controls;
using DevExpress.Xpf.Core;
using System.Windows;
using DevExpress.Xpf.Grid;
using System.Windows.Controls.Primitives;
using System.Runtime.InteropServices;
using DevExpress.Xpf.Utils;
using System.Windows.Input;
using System.Windows.Interactivity;

namespace GridDemo {
    public class ResizeableDataRow : Control, IResizeHelperOwner {
        static readonly Random random = new Random(1);
        public static readonly DependencyProperty RowHeightProperty;
        static ResizeableDataRow() {
            DefaultStyleKeyProperty.OverrideMetadata(typeof(ResizeableDataRow), new FrameworkPropertyMetadata(typeof(ResizeableDataRow)));
            RowHeightProperty = DependencyProperty.RegisterAttached("RowHeight", typeof(double), typeof(ResizeableDataRow), new PropertyMetadata(0d));
            RowData.RowDataProperty.OverrideMetadata(typeof(ResizeableDataRow), new FrameworkPropertyMetadata(OnScrollViewerVerticalOffsetChanged));
        }
        static void OnScrollViewerVerticalOffsetChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) {
            ((ResizeableDataRow)d).OnRowDataChanged((RowData)e.OldValue, (RowData)e.NewValue);
        }
        public static void SetRowHeight(DependencyObject element, double value) {
            element.SetValue(RowHeightProperty, value);
        }
        public static double GetRowHeight(DependencyObject element) {
            return (double)element.GetValue(RowHeightProperty);
        }
        ResizeHelper resizeHelper;
        RowData RowData { get { return (RowData)DataContext; } }
        double RowHeight { get { return GetRowHeight(RowData.RowState); } set { SetRowHeight(RowData.RowState, value); } }
        public ResizeableDataRow() {
            resizeHelper = new ResizeHelper(this);
        }
        public override void OnApplyTemplate() {
            base.OnApplyTemplate();
            Thumb resizer = (Thumb)GetTemplateChild("PART_Resizer");
            resizeHelper.Init(resizer);
            InitializeRowHeight();
        }
        void OnRowDataChanged(RowData oldValue, RowData newValue) {
            if(oldValue != null)
                oldValue.ContentChanged -= new EventHandler(RowData_ContentChanged);
            if(newValue != null) {
                newValue.ContentChanged += new EventHandler(RowData_ContentChanged);
                InitializeRowHeight();
            }
        }
        void RowData_ContentChanged(object sender, EventArgs e) {
            InitializeRowHeight();
        }
        void InitializeRowHeight() {
            if(RowHeight == 0)
                RowHeight = 75 + 80 * random.NextDouble();
        }
        #region IResizeHelperOwner Members
        double IResizeHelperOwner.ActualSize { get { return RowHeight; } set { RowHeight = value; } }
        void IResizeHelperOwner.ChangeSize(double delta) {
            RowHeight = Math.Min(300, Math.Max(20, RowHeight + delta));
        }
        void IResizeHelperOwner.OnDoubleClick() { }
        void IResizeHelperOwner.SetIsResizing(bool isResizing) { }
        SizeHelperBase IResizeHelperOwner.SizeHelper { get { return VerticalSizeHelper.Instance; } }
        #endregion
    }
    public class ResizeableCard : Control {
        public static readonly DependencyProperty ScaleFactorProperty;
        static ResizeableCard() {
            DefaultStyleKeyProperty.OverrideMetadata(typeof(ResizeableCard), new FrameworkPropertyMetadata(typeof(ResizeableCard)));
            ScaleFactorProperty = DependencyProperty.RegisterAttached("ScaleFactor", typeof(double), typeof(ResizeableCard), new PropertyMetadata(1d));
        }
        public static void SetScaleFactor(DependencyObject element, double value) {
            element.SetValue(ScaleFactorProperty, value);

        }
        public static double GetScaleFactor(DependencyObject element) {
            return (double)element.GetValue(ScaleFactorProperty);
        }
    }
    public static class UnsafeNativeMethods {
        [DllImport("user32.dll", CharSet = CharSet.Auto, ExactSpelling = true)]
        public static extern bool SetCursorPos(int x, int y);
    }
    public class CommandManagerAttachedBehavior : Behavior<FrameworkElement> {
        public static readonly DependencyProperty CanExecuteHandlerCommandProperty;
        static CommandManagerAttachedBehavior() {
            CanExecuteHandlerCommandProperty = DependencyProperty.Register("CanExecuteHandlerCommand", typeof(ICommand), typeof(CommandManagerAttachedBehavior));
        }
        protected override void OnAttached() {
            base.OnAttached();
            CommandManager.AddCanExecuteHandler(AssociatedObject, CanExecute);
        }
        protected override void OnDetaching() {
            CommandManager.RemoveCanExecuteHandler(AssociatedObject, CanExecute);
            base.OnDetaching();
        }
        private void CanExecute(object sender, CanExecuteRoutedEventArgs e) {
            if(CanExecuteHandlerCommand == null) return;
            CanExecuteHandlerCommand.Execute(e);
        }
        public ICommand CanExecuteHandlerCommand {
            get { return (ICommand)GetValue(CanExecuteHandlerCommandProperty); }
            set { SetValue(CanExecuteHandlerCommandProperty, value); }
        }
    }
}!
MSBAML```����D@GridDemo, Version=13.1.4.0, Culture=neutral, PublicKeyToken=null#clr-namespace:GridDemoGridDemo\XPresentationFramework, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35RNWindowsBase, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35WSPresentationCore, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35RNSystem.Xaml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089a]DevExpress.Xpf.Core.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49afbDevExpress.Xpf.Grid.v13.1.Core, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49aa]DevExpress.Xpf.Grid.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49alhDevExpress.Xpf.Grid.v13.1.Extensions, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49ac	_System.Windows.Interactivity, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35 #PersistentRowStateZoomOutMargin "PersistentRowStateZoomInMargin !PersistentRowStateImageMargin control-emboss��EndPoint��
StartPoint�SpreadMethod�Color
�Offset GridDemo.ResizeableDataRow��
TargetType�Property�Value��
TargetType-'DevExpress.Xpf.Core.MeasurePixelSnapper3-DevExpress.Xpf.Grid.RowDetailContainerControl	Name
�ElementName�Name�Path
�RowDefinitions�Name�CornerRadius�ColumnDefinitions& DevExpress.Xpf.Editors.ImageEditShowMenu
Source��TextWrapping��
AcceptsReturn��
IsReadOnly.	(System.Windows.Interactivity.Interaction	Behaviors-'GridDemo.CommandManagerAttachedBehaviorCanExecuteHandlerCommand%DevExpress.Xpf.Grid.RowSplitter
�Cursor %!PersistentRowStateDataRowTemplate��Orientation93DevExpress.Xpf.Grid.Themes.GridRowThemeKeyExtension��DevExpress.Xpf.Utils.Themes.ThemeKeyExtensionInternalBase`1[[DevExpress.Xpf.Grid.Themes.GridRowThemeKeys, DevExpress.Xpf.Grid.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a]]ResourceKey ZoomButtonStyle ZoomInButtonStyle��BasedOn ZoomOutButtonStyle	GridDemo.ResizeableCard�Minimum�Maximum�Value�Mode �Name!��
DecreaseSmall"�RelativeSource#Triggers/
	)System.Windows.Interactivity.EventTrigger$
	EventName.	(System.Windows.Interactivity.TriggerBase%Actions6	0System.Windows.Interactivity.InvokeCommandAction&Command'CommandParameter(��
IncreaseSmall)Stretch*�LayoutTransform
+�ScaleX
,�ScaleY#
DevExpress.Xpf.Grid.TableView gridView& DevExpress.Xpf.Grid.GridViewBase-ShowGroupedColumns& DevExpress.Xpf.Grid.DataViewBase.NavigationStyle/
ShowHorizontalLines0
	AutoWidth1
DataRowTemplate2
AllowPerPixelScrolling"DevExpress.Xpf.Grid.CardView 	cardView3MaxCardCountInRow4
CardAlignment5CardHeaderTemplate6CardTemplate�D9http://schemas.microsoft.com/winfx/2006/xaml/presentation:x,http://schemas.microsoft.com/winfx/2006/xaml;dx2http://schemas.devexpress.com/winfx/2008/xaml/core?dxe5http://schemas.devexpress.com/winfx/2008/xaml/editors@dxg2http://schemas.devexpress.com/winfx/2008/xaml/gridGdxgt<http://schemas.devexpress.com/winfx/2008/xaml/grid/themekeysBi:http://schemas.microsoft.com/expression/2010/interactivity	 localclr-namespace:GridDemo%�
&	&	&	$&	5'�&	L&	�&	'7&	�7'	 &	J	&		|	u�0,0,12,0q�u�12,0,0,0q�u�0,0,0,0q���$	0.5,1.002&�$
0.5,-0.002&�$	Pad=�.��$	#3E4C6EB3��$0Q��$	#80EDF4FF��$1Q��$	#3F7098DC��$0.215Q���".������".R�._�$	containerControl�����"��.R���.��$
��0,1,0,0q�$
�Stretch=�$
�Stretch=����*
BorderBrush+$
containerControl��._��$template����$2,RowState.(local:ResizeableDataRow.RowHeight)�
�$��*��$
��Auto�.+��$content_container2��$��0�$0��$
�Auto��$
�Auto�����*
Background+$
containerControl��._����$
�Auto���$�12���.+�$�
12,12,0,12q�$
�Left=�$	�Top=�$�0�.��$("CellData[0].Column.ActualDataWidth��$DataContext.Picture��$
��Visible=�$�2�.���$�0q�$
Wrap=�..��$(TextBox.Foreground)�$
containerControl�����*DataContext.Description+.���*+)View.DataContext.CanExecuteHandlerCommand+.��$�PART_Resizer��$��1�$SizeNS����.R���$Vertical=�.+�._����C�*$DataRowTemplate=�+��"�.����$
Stretch=����$
Stretch=����$16�����$16�����$2q���"�8.������.R��.+���$�2��$�Center=�$
�Stretch=������$�2��$
�Stretch=�$�Center=������"�8.������.R��.+���$�2��$
�Stretch=�$�Center=������"	.������"	.R�]�$�Center=�$�Center=�.+���$�Slider��$y�	Collapsed=�$	0.2Q�$2Q��$1+RowState.(local:ResizeableCard.ScaleFactor)�$TwoWay=��$ 
zoomOutButton��$
�Left=�#��#��#��Z!���$
Slider����*
Foreground+"��*Self+#
$$Click��.%&�*+)View.DataContext.SetCursorPositionCommand+'�$

zoomOutButton���$ zoomInButton��$�Right=�#��#��#��Z(���$
Slider����*
Foreground+"��*Self+#
$$Click��.%&�*+)View.DataContext.SetCursorPositionCommand+'�$
zoomInButton��#��$
)None=�.�$DataContext.Picture�*�+�$Value�$
Slider��,�$Value�$
Slider��
-.$	.Row=�/.0.#1�2.-.$31�$4Center=�$
.None=�5��.R���$
Horizontal=�.+���$��NoWrap=����$Data.Trademark���$��NoWrap=�$
�8,0,0,0q����$
Data.Model�6��.R�	!�(<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
                    xmlns:dx="http://schemas.devexpress.com/winfx/2008/xaml/core"
                    xmlns:dxe="http://schemas.devexpress.com/winfx/2008/xaml/editors"
                    xmlns:dxg="http://schemas.devexpress.com/winfx/2008/xaml/grid"
                    xmlns:dxgt="http://schemas.devexpress.com/winfx/2008/xaml/grid/themekeys"
                    xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity"
                    xmlns:local="clr-namespace:GridDemo">
    <Thickness x:Key="PersistentRowStateZoomOutMargin">0,0,12,0</Thickness>
    <Thickness x:Key="PersistentRowStateZoomInMargin">12,0,0,0</Thickness>
    <Thickness x:Key="PersistentRowStateImageMargin">0,0,0,0</Thickness>
    <LinearGradientBrush x:Key="control-emboss" EndPoint="0.5,1.002" StartPoint="0.5,-0.002" SpreadMethod="Pad">
        <GradientStop Color="#3E4C6EB3" Offset="0" />
        <GradientStop Color="#80EDF4FF" Offset="1" />
        <GradientStop Color="#3F7098DC" Offset="0.215" />
    </LinearGradientBrush>
    <Style TargetType="{x:Type local:ResizeableDataRow}">
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="{x:Type local:ResizeableDataRow}">
                    <dx:MeasurePixelSnapper>
                        <dxg:RowDetailContainerControl x:Name="containerControl">
                            <dxg:RowDetailContainerControl.Template>
                                <ControlTemplate TargetType="{x:Type ContentControl}">
                                    <ContentPresenter />
                                </ControlTemplate>
                            </dxg:RowDetailContainerControl.Template>
                            <Border BorderThickness="0,1,0,0" BorderBrush="{Binding BorderBrush, ElementName=containerControl}" HorizontalAlignment="Stretch" VerticalAlignment="Stretch">
                                <Grid x:Name="template" Height="{Binding Path=RowState.(local:ResizeableDataRow.RowHeight)}">
                                    <Grid.RowDefinitions>
                                        <RowDefinition Height="*"></RowDefinition>
                                        <RowDefinition Height="Auto"></RowDefinition>
                                    </Grid.RowDefinitions>
                                    <Border Grid.Row="0" CornerRadius="0" Width="Auto" Height="Auto" x:Name="content_container2" Background="{Binding Background, ElementName=containerControl}">
                                        <Grid>
                                            <Grid.ColumnDefinitions>
                                                <ColumnDefinition Width="Auto" />
                                                <ColumnDefinition Width="12" />
                                                <ColumnDefinition />
                                            </Grid.ColumnDefinitions>
                                            <dxe:ImageEdit MaxWidth="{Binding Path=CellData[0].Column.ActualDataWidth}" Margin="12,12,0,12" HorizontalAlignment="Left" VerticalAlignment="Top" Source="{Binding Path=DataContext.Picture}" Grid.Column="0" ShowMenu="False" />
                                            <ScrollViewer VerticalScrollBarVisibility="Visible" Grid.Column="2">
                                                <TextBox Foreground="{Binding Path=(TextBox.Foreground), ElementName=containerControl}"
                                                         BorderThickness="0" Text="{Binding DataContext.Description}" TextWrapping="Wrap" AcceptsReturn="True" IsReadOnly="True">
                                                    <i:Interaction.Behaviors>
                                                        <local:CommandManagerAttachedBehavior CanExecuteHandlerCommand="{Binding View.DataContext.CanExecuteHandlerCommand}" />
                                                    </i:Interaction.Behaviors>
                                                </TextBox>
                                            </ScrollViewer>

                                        </Grid>
                                    </Border>
                                    <dxg:RowSplitter Name="PART_Resizer" Grid.Row="1" Cursor="SizeNS" />
                                </Grid>
                            </Border>
                        </dxg:RowDetailContainerControl>
                    </dx:MeasurePixelSnapper>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style>
    <DataTemplate x:Key="PersistentRowStateDataRowTemplate">
        <StackPanel Orientation="Vertical">
            <dx:MeasurePixelSnapper>
                <ContentPresenter ContentTemplate="{DynamicResource {dxgt:GridRowThemeKey ResourceKey=DataRowTemplate}}" />
            </dx:MeasurePixelSnapper>
            <local:ResizeableDataRow />
        </StackPanel>
    </DataTemplate>
    <Style x:Key="ZoomButtonStyle" TargetType="{x:Type Button}">
        <Setter Property="HorizontalContentAlignment" Value="Stretch" />
        <Setter Property="VerticalContentAlignment" Value="Stretch" />
        <Setter Property="Width" Value="16" />
        <Setter Property="Height" Value="16" />
        <Setter Property="Padding" Value="2" />
    </Style>
    <Style x:Key="ZoomInButtonStyle" TargetType="{x:Type Button}" BasedOn="{StaticResource ZoomButtonStyle}">
        <Setter Property="ContentTemplate">
            <Setter.Value>
                <DataTemplate>
                    <Grid>
                        <Rectangle Fill="{Binding}" Width="2" HorizontalAlignment="Center" VerticalAlignment="Stretch" />
                        <Rectangle Fill="{Binding}" Height="2" HorizontalAlignment="Stretch" VerticalAlignment="Center" />
                    </Grid>
                </DataTemplate>
            </Setter.Value>
        </Setter>
    </Style>
    <Style x:Key="ZoomOutButtonStyle" TargetType="{x:Type Button}" BasedOn="{StaticResource ZoomButtonStyle}">
        <Setter Property="ContentTemplate">
            <Setter.Value>
                <DataTemplate>
                    <Grid>
                        <Rectangle Fill="{Binding}" Height="2" HorizontalAlignment="Stretch" VerticalAlignment="Center" />
                    </Grid>
                </DataTemplate>
            </Setter.Value>
        </Setter>
    </Style>
    <Style TargetType="{x:Type local:ResizeableCard}">
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="{x:Type local:ResizeableCard}">
                    <DockPanel HorizontalAlignment="Center" VerticalAlignment="Center">
                        <Slider Visibility="Collapsed" Name="Slider" Minimum="0.2" Maximum="2" Value="{Binding Path=RowState.(local:ResizeableCard.ScaleFactor), Mode=TwoWay}" />
                        <Button x:Name="zoomOutButton" DockPanel.Dock="Left" Margin="{DynamicResource PersistentRowStateZoomOutMargin}"
                                Style="{DynamicResource ZoomOutButtonStyle}"
                                Command="{x:Static Slider.DecreaseSmall}" CommandTarget="{Binding ElementName=Slider}"
                                Content="{Binding Foreground, RelativeSource={RelativeSource Self}}">
                            <i:Interaction.Triggers>
                                <i:EventTrigger EventName="Click" >
                                    <i:InvokeCommandAction Command="{Binding View.DataContext.SetCursorPositionCommand}" CommandParameter="{Binding ElementName=zoomOutButton}" />
                                </i:EventTrigger>
                            </i:Interaction.Triggers>
                        </Button>
                        <Button x:Name="zoomInButton" DockPanel.Dock="Right" Margin="{DynamicResource PersistentRowStateZoomInMargin}" Style="{DynamicResource ZoomInButtonStyle}"
                                Command="{x:Static Slider.IncreaseSmall}" CommandTarget="{Binding ElementName=Slider}"
                                Content="{Binding Foreground, RelativeSource={RelativeSource Self}}">
                            <i:Interaction.Triggers>
                                <i:EventTrigger EventName="Click" >
                                    <i:InvokeCommandAction Command="{Binding View.DataContext.SetCursorPositionCommand}" CommandParameter="{Binding ElementName=zoomInButton}" />
                                </i:EventTrigger>
                            </i:Interaction.Triggers>
                        </Button>
                        <dxe:ImageEdit Margin="{DynamicResource PersistentRowStateImageMargin}" Source="{Binding Path=DataContext.Picture}" Stretch="None" ShowMenu="False">
                            <dxe:ImageEdit.LayoutTransform>
                                <ScaleTransform ScaleX="{Binding Path=Value, ElementName=Slider}" ScaleY="{Binding Path=Value, ElementName=Slider}" />
                            </dxe:ImageEdit.LayoutTransform>
                        </dxe:ImageEdit>
                    </DockPanel>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style>
    <dxg:TableView x:Key="gridView" ShowGroupedColumns="True" NavigationStyle="Row" ShowHorizontalLines="False" AutoWidth="True" DataRowTemplate="{DynamicResource PersistentRowStateDataRowTemplate}" AllowPerPixelScrolling="True"/>
    <dxg:CardView x:Key="cardView" ShowGroupedColumns="True" MaxCardCountInRow="1" CardAlignment="Center" NavigationStyle="None">
        <dxg:CardView.CardHeaderTemplate>
            <DataTemplate>
                <StackPanel Orientation="Horizontal">
                    <TextBlock Text="{Binding Path=Data.Trademark}" TextWrapping="NoWrap" />
                    <TextBlock Text="{Binding Path=Data.Model}" TextWrapping="NoWrap" Margin="8,0,0,0" />
                </StackPanel>
            </DataTemplate>
        </dxg:CardView.CardHeaderTemplate>
        <dxg:CardView.CardTemplate>
            <DataTemplate>
                <local:ResizeableCard />
            </DataTemplate>
        </dxg:CardView.CardTemplate>
    </dxg:CardView>
</ResourceDictionary>!�using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using DevExpress.Xpf.Utils;
using System.ComponentModel;
using System.Collections;

namespace GridDemo {
    public class CountItem : DependencyObject {
        public static readonly DependencyProperty CountProperty = DependencyPropertyManager.Register(
            "Count", typeof(int), typeof(CountItem), new FrameworkPropertyMetadata());

        public CountItem() { }

        public string DisplayName { get; set; }
        public int Count {
            get { return (int)GetValue(CountProperty); }
            set { SetValue(CountProperty, value); }
        }
    }
    public class CountItemCollection : List<CountItem> { }
    public class OrderDataListSource : IListSource {
        OrderDataGenerator orderDataGenerator;

        public OrderDataListSource(OrderDataGenerator orderDataGenerator) {
            this.orderDataGenerator = orderDataGenerator;
        }
        public bool ContainsListCollection {
            get { return false; }
        }
        public IList GetList() {
            return orderDataGenerator.GetOrders();
        }
    }

}!�	MSBAML```����D@GridDemo, Version=13.1.4.0, Culture=neutral, PublicKeyToken=null#clr-namespace:GridDemoGridDemo\XPresentationFramework, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35RNWindowsBase, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35WSPresentationCore, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35RNSystem.Xaml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089a]DevExpress.Xpf.Core.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a93GridDemo.GeneratingDataToWaitIndicatorTypeConverter .*GeneratingDataToWaitIndicatorTypeConverter/)DevExpress.Xpf.Core.FormatStringConverter FormatStringConverterFormatString3-DevExpress.Xpf.Core.BoolToVisibilityConverter BoolToVisibilityConverter1+GridDemo.CategoryDataToImageSourceConverter ImageConverter CountItemTemplate%DevExpress.Xpf.Core.DXDockPanel�Path�	Converter %!WaitIndicatorWithProgressTemplate0*DevExpress.Xpf.Core.WaitIndicatorContainer�RowDefinitions,&DevExpress.Xpf.Editors.ProgressBarEdit*$DevExpress.Xpf.Editors.RangeBaseEditMinimumMaximumValue categoryTemplate�ColumnDefinitions��BitmapScalingMode	��Padding categoryCellTemplate
^�ToolTip�D9http://schemas.microsoft.com/winfx/2006/xaml/presentation:x,http://schemas.microsoft.com/winfx/2006/xaml;dx2http://schemas.devexpress.com/winfx/2008/xaml/core?dxe5http://schemas.devexpress.com/winfx/2008/xaml/editors localclr-namespace:GridDemo%&	&	&	&	&	7&	�&	�7&	G7$	#,#����.R��.$	�150��.+���$
�Left=����$DisplayName���$�Right=����$Count�8��.R�.��$�Center=�$�Center=���.+���$�0,12,0,8q�$��Generating data...��$�Center=�$�Center=�$��1�$�0�$	0.0Q�$100.0Q�$�
12,0,12,12q�$	�160��$�Center=�$�Center=��$$GenerateOrderDataProgressValue���.R������.+��$�0�$�24��$�24�����8$NearestNeighbor=���$�1�$�Center=�$
	5,0,2,0q����$
Name���.R��$�24��$�24��$�Center=����$Value�8
�$
Value.Name�$NearestNeighbor=�!�<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
                    xmlns:dx="http://schemas.devexpress.com/winfx/2008/xaml/core"
                    xmlns:dxe="http://schemas.devexpress.com/winfx/2008/xaml/editors"
                    xmlns:local="clr-namespace:GridDemo">

    <local:GeneratingDataToWaitIndicatorTypeConverter x:Key="GeneratingDataToWaitIndicatorTypeConverter" />
    <dx:FormatStringConverter x:Key="FormatStringConverter" FormatString="#,#" />
    <dx:BoolToVisibilityConverter x:Key="BoolToVisibilityConverter" />
    <local:CategoryDataToImageSourceConverter x:Key="ImageConverter" />
    <DataTemplate x:Key="CountItemTemplate">
        <dx:DXDockPanel LastChildFill="False" Width="150">
            <TextBlock Text="{Binding Path=DisplayName}" dx:DXDockPanel.Dock="Left" />
            <TextBlock Text="{Binding Path=Count, Converter={StaticResource FormatStringConverter}}" dx:DXDockPanel.Dock="Right" />
        </dx:DXDockPanel>
    </DataTemplate>

    <ControlTemplate x:Key="WaitIndicatorWithProgressTemplate">
        <dx:WaitIndicatorContainer>
            <Grid HorizontalAlignment="Center" VerticalAlignment="Center">
                <Grid.RowDefinitions>
                    <RowDefinition />
                    <RowDefinition />
                </Grid.RowDefinitions>
                <TextBlock Margin="0,12,0,8" Text="Generating data..." HorizontalAlignment="Center" VerticalAlignment="Center" />
                <dxe:ProgressBarEdit Grid.Row="1" Grid.Column="0" Minimum="0.0" Maximum="100.0" Margin="12,0,12,12" Width="160" HorizontalAlignment="Center" VerticalAlignment="Center" Value="{Binding Path=GenerateOrderDataProgressValue}" />
            </Grid>
        </dx:WaitIndicatorContainer>
    </ControlTemplate>
    <DataTemplate x:Key="categoryTemplate">
        <Grid>
            <Grid.ColumnDefinitions>
                <ColumnDefinition />
                <ColumnDefinition />
            </Grid.ColumnDefinitions>
            <Image Grid.Column="0" Height="24" Width="24" Source="{Binding Converter={StaticResource ImageConverter}}">
                <RenderOptions.BitmapScalingMode>NearestNeighbor</RenderOptions.BitmapScalingMode>
            </Image>
            <TextBlock Grid.Column="1" Text="{Binding Path=Name}" VerticalAlignment="Center" Padding="5,0,2,0" />
        </Grid>
    </DataTemplate>
    <DataTemplate x:Key="categoryCellTemplate">
        <Image Height="24" Width="24" HorizontalAlignment="Center" Source="{Binding Path=Value, Converter={StaticResource ImageConverter}}"
                                       ToolTipService.ToolTip="{Binding Path=Value.Name}">
            <RenderOptions.BitmapScalingMode>NearestNeighbor</RenderOptions.BitmapScalingMode>
        </Image>
    </DataTemplate>
</ResourceDictionary>!Rusing System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using DevExpress.Xpf.DemoBase.Helpers;
using System.Windows;

namespace GridDemo {
    public class PLinqInstantFeedbackDemoViewModel : DemoViewModelBase {
        OrderDataListSource orderDataListSource;
        OrderDataGenerator orderDataGenerator = new OrderDataGenerator(0);
        bool isGeneratingOrderData;
        double generateOrderDataProgressValue;
        CountItemCollection countItems;
        CountItem selectedCountItem;
        bool isDesignTime = true;

        void orderDataGenerator_GenerateOrderDataStarted(object sender, EventArgs e) {
            IsGeneratingOrderData = true;
        }
        void orderDataGenerator_GenerateOrderDataCompleted(object sender, EventArgs e) {
            IsGeneratingOrderData = false;
        }
        void orderDataGenerator_GenerateOrderDataProgress(object sender, GenerateOrderDataProgressEventArgs e) {
            GenerateOrderDataProgressValue = e.Progress;
        }
        public PLinqInstantFeedbackDemoViewModel() {
            orderDataGenerator.GenerateOrderDataStarted += orderDataGenerator_GenerateOrderDataStarted;
            orderDataGenerator.GenerateOrderDataCompleted += orderDataGenerator_GenerateOrderDataCompleted;
            orderDataGenerator.GenerateOrderDataProgress += orderDataGenerator_GenerateOrderDataProgress;
        }
        public PLinqInstantFeedbackDemoViewModel(bool isDesignTime)
            : this() {
            this.isDesignTime = isDesignTime;
        }

        void RecreateListSource() {
            if((SelectedCountItem != null) && !isDesignTime) {
                orderDataGenerator.Count = SelectedCountItem.Count;
            } else {
                orderDataGenerator.Count = 0;
            }
            ListSource = new OrderDataListSource(orderDataGenerator);
        }
        public OrderDataListSource ListSource {
            get { return orderDataListSource; }
            set {
                if(orderDataListSource == value) return;
                orderDataListSource = value;
                OnPropertyChanged("ListSource");
            }
        }
        public List<CategoryData> Categories {
            get { return orderDataGenerator.GetCategories(); }
        }
        public bool IsGeneratingOrderData {
            get { return isGeneratingOrderData; }
            set {
                if(isGeneratingOrderData == value) return;
                isGeneratingOrderData = value;
                OnPropertyChanged("IsGeneratingOrderData");
            }
        }
        public double GenerateOrderDataProgressValue {
            get { return generateOrderDataProgressValue; }
            set {
                generateOrderDataProgressValue = value;
                OnPropertyChanged("GenerateOrderDataProgressValue");
            }
        }
        public CountItemCollection CountItems {
            get { return countItems; }
            set {
                if(countItems == value) return;
                countItems = value;
                OnPropertyChanged("CountItems");
                if((CountItems != null) && (CountItems.Count > 0)) {
                    SelectedCountItem = CountItems[CountItems.Count / 2];
                } else {
                    SelectedCountItem = null;
                }
            }
        }
        public CountItem SelectedCountItem {
            get { return selectedCountItem; }
            set {
                if(selectedCountItem == value) return;
                selectedCountItem = value;
                OnPropertyChanged("SelectedCountItem");
                RecreateListSource();
            }
        }
        public void SetIsDesignTime(bool value) {
            isDesignTime = value;
            RecreateListSource();
        }
    }
}!�
using DevExpress.Utils;
using DevExpress.Xpf.DemoBase.Helpers;

namespace GridDemo {
    public class PrintMasterDetailModuleViewModel : DemoViewModelBase {
        DefaultBoolean allowPrintDetailsCore, printAllDetailsCore;
        bool printOrdersColumnHeadersCore, printOrdersSummariesCore, printCustomersColumnHeadersCore,
             printCustomersSummariesCore, printInvoicesColumnHeadersCore, printInvoicesSummariesCore,
             printEmployeesColumnHeadersCore, printEmployeesSummariesCore;

        public PrintMasterDetailModuleViewModel() {
            Employees = new EmployeesWithDetails();
            AllowPrintDetails = DefaultBoolean.True;
            PrintAllDetails = DefaultBoolean.False;
            PrintOrdersSummaries = true;
            PrintOrdersColumnHeaders = true;
            PrintCustomersColumnHeaders = true;
            PrintCustomersSummaries = true;
            PrintInvoicesColumnHeaders = true;
            PrintInvoicesSummaries = true;
            PrintEmployeesColumnHeaders = true;
            PrintEmployeesSummaries = true;
        }

        public EmployeesWithDetails Employees { get; private set; }

        public DefaultBoolean AllowPrintDetails {
            get { return allowPrintDetailsCore; }
            set { ChangeProperty<DefaultBoolean>(ref allowPrintDetailsCore, value, "AllowPrintDetails"); }
        }
        public DefaultBoolean PrintAllDetails {
            get { return printAllDetailsCore; }
            set { ChangeProperty<DefaultBoolean>(ref printAllDetailsCore, value, "PrintAllDetails"); }
        }


        public bool PrintOrdersColumnHeaders {
            get { return printOrdersColumnHeadersCore; }
            set { ChangeProperty<bool>(ref printOrdersColumnHeadersCore, value, "PrintOrdersColumnHeaders"); }
        }
        public bool PrintOrdersSummaries {
            get { return printOrdersSummariesCore; }
            set { ChangeProperty<bool>(ref printOrdersSummariesCore, value, "PrintOrdersSummaries"); }
        }

        public bool PrintCustomersColumnHeaders {
            get { return printCustomersColumnHeadersCore; }
            set { ChangeProperty<bool>(ref printCustomersColumnHeadersCore, value, "PrintCustomersColumnHeaders"); }
        }
        public bool PrintCustomersSummaries {
            get { return printCustomersSummariesCore; }
            set { ChangeProperty<bool>(ref printCustomersSummariesCore, value, "PrintCustomersSummaries"); }
        }

        public bool PrintInvoicesColumnHeaders {
            get { return printInvoicesColumnHeadersCore; }
            set { ChangeProperty<bool>(ref printInvoicesColumnHeadersCore, value, "PrintInvoicesColumnHeaders"); }
        }

        public bool PrintInvoicesSummaries {
            get { return printInvoicesSummariesCore; }
            set { ChangeProperty<bool>(ref printInvoicesSummariesCore, value, "PrintInvoicesSummaries"); }
        }

        public bool PrintEmployeesColumnHeaders {
            get { return printEmployeesColumnHeadersCore; }
            set { ChangeProperty<bool>(ref printEmployeesColumnHeadersCore, value, "PrintEmployeesColumnHeaders"); }
        }

        public bool PrintEmployeesSummaries {
            get { return printEmployeesSummariesCore; }
            set { ChangeProperty<bool>(ref printEmployeesSummariesCore, value, "PrintEmployeesSummaries"); }
        }
    }
}!�MSBAML```����a]DevExpress.Xpf.Grid.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49ajKclr-namespace:DevExpress.Xpf.Grid.Themes;assembly=DevExpress.Xpf.Grid.v13.1DevExpress.Xpf.Grid.Themes\XPresentationFramework, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35RNWindowsBase, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35WSPresentationCore, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35RNSystem.Xaml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089a]DevExpress.Xpf.Core.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49afbDevExpress.Xpf.Grid.v13.1.Core, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49alhDevExpress.Xpf.Grid.v13.1.Extensions, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a=7DevExpress.Xpf.Grid.PrintGroupPositionToBorderConverter '#PrintGroupPositionToBorderConverter/)DevExpress.Xpf.Core.BoolToObjectConverter OddEvenRowColorConverter	TrueValue
FalseValue  customPrintColumnHeaderStyle��
TargetType%DevExpress.Xpf.Editors.BaseEdit��BasedOn;5DevExpress.Xpf.Grid.Themes.TableViewThemeKeyExtension��DevExpress.Xpf.Utils.Themes.ThemeKeyExtensionInternalBase`1[[DevExpress.Xpf.Grid.Themes.TableViewThemeKeys, DevExpress.Xpf.Grid.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a]]ResourceKey�Property�Value customPrintCellStyle�Path�	Converter customGroupRowStyle  customPrintTotalSummaryStyle %!customPrintFixedTotalSummaryStyle�D9http://schemas.microsoft.com/winfx/2006/xaml/presentation:x,http://schemas.microsoft.com/winfx/2006/xaml;dx2http://schemas.devexpress.com/winfx/2008/xaml/core?dxe5http://schemas.devexpress.com/winfx/2008/xaml/editors@dxg2http://schemas.devexpress.com/winfx/2008/xaml/gridTdxgtKclr-namespace:DevExpress.Xpf.Grid.Themes;assembly=DevExpress.Xpf.Grid.v13.1%g&	&	&	*0��*$DefaultPrintStyleBase=�+1&	�0��*$DefaultPrintStyleBase=�+17&	Y0��*$DefaultPrintStyleBase=�+17&	�7&	Z7$	#FFFFFFFF��$	#FFF9E4BE����"2.�����	#FFFAB339����	#FFFFFFFF���$
Bold"���@��
TextAlignment$Center=����
��������$1q���"2.�����$RowData.EvenRow�8���
��������$1q���"2.�����	#FFD6D6D6���
���������	#FF5E5E5E���$
Bold"�����8��8".���@��
TextAlignment$Right=����
��������$1q���8".����
��������$1q�!�
<ResourceDictionary
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:dx="http://schemas.devexpress.com/winfx/2008/xaml/core"
    xmlns:dxe="http://schemas.devexpress.com/winfx/2008/xaml/editors"
    xmlns:dxg="http://schemas.devexpress.com/winfx/2008/xaml/grid"
    xmlns:dxgt="clr-namespace:DevExpress.Xpf.Grid.Themes;assembly=DevExpress.Xpf.Grid.v13.1">

    <dxg:PrintGroupPositionToBorderConverter x:Key="PrintGroupPositionToBorderConverter"/>
    <dx:BoolToObjectConverter x:Key="OddEvenRowColorConverter" TrueValue="#FFFFFFFF" FalseValue="#FFF9E4BE" />

    <Style x:Key="customPrintColumnHeaderStyle" TargetType="dxe:BaseEdit" BasedOn="{StaticResource {dxgt:TableViewThemeKey ResourceKey=DefaultPrintStyleBase}}">
        <Setter Property="Background" Value="#FFFAB339" />
        <Setter Property="Foreground" Value="#FFFFFFFF" />
        <Setter Property="FontWeight" Value="Bold" />
        <Setter Property="TextBlock.TextAlignment" Value="Center" />
        <Setter Property="BorderBrush" Value="White" />
        <Setter Property="BorderThickness" Value="1" />
    </Style>
    <Style x:Key="customPrintCellStyle" TargetType="dxe:BaseEdit" BasedOn="{StaticResource {dxgt:TableViewThemeKey ResourceKey=DefaultPrintStyleBase}}">
        <Setter Property="Background" Value="{Binding Path=RowData.EvenRow, Converter={StaticResource OddEvenRowColorConverter}}" />
        <Setter Property="BorderBrush" Value="White" />
        <Setter Property="BorderThickness" Value="1" />
    </Style>
    <Style x:Key="customGroupRowStyle" TargetType="dxe:BaseEdit" BasedOn="{StaticResource {dxgt:TableViewThemeKey ResourceKey=DefaultPrintStyleBase}}">
        <Setter Property="Background" Value="#FFD6D6D6" />
        <Setter Property="BorderBrush" Value="White" />
        <Setter Property="Foreground" Value="#FF5E5E5E" />
        <Setter Property="FontWeight" Value="Bold" />
        <Setter Property="BorderThickness" Value="{Binding Converter={StaticResource PrintGroupPositionToBorderConverter}}" />
    </Style>
    <Style x:Key="customPrintTotalSummaryStyle" BasedOn="{StaticResource customPrintColumnHeaderStyle}" TargetType="dxe:BaseEdit">
        <Setter Property="TextBlock.TextAlignment" Value="Right" />
        <Setter Property="BorderBrush" Value="White" />
        <Setter Property="BorderThickness" Value="1" />
    </Style>
    <Style x:Key="customPrintFixedTotalSummaryStyle" BasedOn="{StaticResource customPrintColumnHeaderStyle}" TargetType="dxe:BaseEdit">
        <Setter Property="BorderBrush" Value="White" />
        <Setter Property="BorderThickness" Value="1" />
    </Style>
</ResourceDictionary>!�MSBAML```����a]DevExpress.Xpf.Grid.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49ajKclr-namespace:DevExpress.Xpf.Grid.Themes;assembly=DevExpress.Xpf.Grid.v13.1DevExpress.Xpf.Grid.Themes\XPresentationFramework, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35RNWindowsBase, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35WSPresentationCore, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35RNSystem.Xaml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089a]DevExpress.Xpf.Core.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49afbDevExpress.Xpf.Grid.v13.1.Core, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49alhDevExpress.Xpf.Grid.v13.1.Extensions, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49aeaDevExpress.Xpf.Printing.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a�MergedDictionaries
�Source,&DevExpress.Xpf.Core.ImageDataConverter ImageDataConverter 
fieldStyle��
TargetType%DevExpress.Xpf.Editors.TextEdit��BasedOn;5DevExpress.Xpf.Grid.Themes.TableViewThemeKeyExtension��DevExpress.Xpf.Utils.Themes.ThemeKeyExtensionInternalBase`1[[DevExpress.Xpf.Grid.Themes.TableViewThemeKeys, DevExpress.Xpf.Grid.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a]]ResourceKey�Property�Value 
	dataStyle)#DevExpress.Xpf.Editors.TextEditBase photoColumnStyle+%DevExpress.Xpf.Editors.PopupImageEdit,&DevExpress.Xpf.Printing.ExportSettings%DevExpress.Xpf.Editors.BaseEdit��
TargetType& DevExpress.Xpf.Editors.ImageEditIsPrintingMode
	Source
�Path�	Converter detailPrintRowTemplate�RelativeSource
�DataContext�ColumnDefinitions�RowDefinitions	EditValue)	#DevExpress.Xpf.Core.ObjectConverterMaskUseAsDisplayFormatMaskTypeMask detailPrintHeaderTemplate mailMergePrintHeaderStyle3
-DevExpress.Xpf.Grid.RowPropertyValueConverter RowPropertyValueConverter/)DevExpress.Xpf.Core.FormatStringConverter FormatStringConverterFormatString 	mailMergePrintRowTemplate
TargetType�ConverterParameterTextWrapping�D9http://schemas.microsoft.com/winfx/2006/xaml/presentation:x,http://schemas.microsoft.com/winfx/2006/xaml;dx2http://schemas.devexpress.com/winfx/2008/xaml/core@dxg2http://schemas.devexpress.com/winfx/2008/xaml/gridTdxgtKclr-namespace:DevExpress.Xpf.Grid.Themes;assembly=DevExpress.Xpf.Grid.v13.1?dxe5http://schemas.devexpress.com/winfx/2008/xaml/editorsBdxp6http://schemas.devexpress.com/winfx/2008/xaml/printing�$-'/GridDemo;component/Themes/generic.xaml?�%P&	&	0��*$DefaultPrintStyleBase=�+1&	�0��*$DefaultPrintStyleBase=�+1&	0��*$DefaultPrintCellStyle=�+17&	�777777777777777&	G&	3&	U&	Z&		g70��*$DefaultPrintStyleBase=�+170��*$DefaultPrintStyleBase=�+10��*$DefaultPrintStyleBase=�+170��*$DefaultPrintStyleBase=�+10��*$DefaultPrintStyleBase=�+10��*$DefaultPrintStyleBase=�+10��*$DefaultPrintStyleBase=�+10��*$DefaultPrintStyleBase=�+10��*$DefaultPrintStyleBase=�+10��*$DefaultPrintStyleBase=�+10��*$DefaultPrintStyleBase=�+10��*$DefaultPrintStyleBase=�+1��"2.�����	#FF6D8C59���$
0,2,2,2q����$	120������	#FFFFFFFF���$
Bold"���"2.�����	#FFF0EDDA���$
0,2,2,2q���@TextWrapping$
Wrap=���"2.���@
TargetType$Panel=���@DisplayTemplate��".R�.$�4q�$�Center=�$�Center=�	�$
Value�8��.R�����*
Foreground+��*TemplatedParent+.��$�0,12,0,0q�
�*DataContext.Content+��*TemplatedParent+��$<
6(dxg:GridPrintingHelper.PrintRowInfo).TotalHeaderWidth���$
�Auto���$�12���.+�.$�0�$�Center=�$�8q���	#FFF0EDDA	�$
	Row.Photo�8�$�2���$
�Auto���$�12����������.+�$�0�$��0�$First Name:	8�$�0�$��1�$
Last Name:	8�$�0�$��2�$Birth Date:	8�$�0�$��3�$	Position:	8�$�0�$��4�$
Hire Date:	8�$�0�$��5�$About:	8�$�0�$��6�$Address:	8�$�2�$��0�8��*
Row.FirstName+$�2�$��1�8�	�*Row.LastName+$�2�$��2�.$DateTime=�$D��8�
�*
Row.BirthDate+$�2�$��3�8��*	Row.Title+$�2�$��4�.$DateTime=�$D��8��*Row.HireDate+$�2�$��5�8�
�*	Row.Notes+$�2�$��6�8��*
Row.Address+��.R�.��	#FF6D8C59$
�Stretch=�$
�Stretch=�$�12q�$
�0,0,0,8q���	#FFFFFFFF$
�Bold"�$�20(�$�Center=�$
Employee List	��$D
>Content.(dxg:GridPrintingHelper.PrintRowInfo).TotalHeaderWidth���".����$0q�
$D����.R�����*
Foreground+��*TemplatedParent+.��$�0,15,0,0q�$Panel=�
�*DataContext.Content+��*TemplatedParent+��$<
6(dxg:GridPrintingHelper.PrintRowInfo).TotalHeaderWidth���������.+�.$�Center=�$�Center=�$	�150��$�1q�
���	�$
	Row.Photo�8$��1�$�Center=�$�Center=�$�24(�$
�Bold"���	#FFBE4410$
�5,2,5,2q��2�$
DataContext�8$FullName��$��2�$
Details	$�20(�$�Center=�$
�2,4,2,4q���	#FF797979�2�$��3�$Panel=�.+�$Birth date:	$
�Bold"��2�*
Row.BirthDate+8�2�$��4�$Panel=�.+�$	Position:	$
�Bold"��2�*	Row.Title+�2�$��5�$Panel=�.+�$
Deparment:	$
�Bold"��2	�*
Row.Region+�2
�$��6�$Panel=���$
�Auto���$�*�.+�$�0�$Notes:	$
�Bold"�$	�Top=��2$�1�$
Wrap=��*	Row.Notes+�2�$��7�$
�0,5,0,0q�$Panel=�.+�$Contact phone:	$
�Bold"��2
��	#FFBE4410$
�Bold"��*
Row.HomePhone+�2!�+<ResourceDictionary
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:dx="http://schemas.devexpress.com/winfx/2008/xaml/core"
    xmlns:dxg="http://schemas.devexpress.com/winfx/2008/xaml/grid"
    xmlns:dxgt="clr-namespace:DevExpress.Xpf.Grid.Themes;assembly=DevExpress.Xpf.Grid.v13.1"
    xmlns:dxe="http://schemas.devexpress.com/winfx/2008/xaml/editors"
    xmlns:dxp="http://schemas.devexpress.com/winfx/2008/xaml/printing">

    <ResourceDictionary.MergedDictionaries>
        <ResourceDictionary Source="/GridDemo;component/Themes/generic.xaml" />
    </ResourceDictionary.MergedDictionaries>

    <dx:ImageDataConverter x:Key="ImageDataConverter" />
    <Style x:Key="fieldStyle" TargetType="{x:Type dxe:TextEdit}" BasedOn="{StaticResource {dxgt:TableViewThemeKey ResourceKey=DefaultPrintStyleBase}}">
        <Setter Property="Background" Value="#FF6D8C59" />
        <Setter Property="Margin" Value="0,2,2,2" />
        <Setter Property="Width" Value="120" />
        <Setter Property="Foreground" Value="#FFFFFFFF" />
        <Setter Property="FontWeight" Value="Bold" />
    </Style>
    <Style x:Key="dataStyle" TargetType="{x:Type dxe:TextEdit}" BasedOn="{StaticResource {dxgt:TableViewThemeKey ResourceKey=DefaultPrintStyleBase}}">
        <Setter Property="Background" Value="#FFF0EDDA" />
        <Setter Property="Margin" Value="0,2,2,2" />
        <Setter Property="TextWrapping" Value="Wrap" />
    </Style>
    <Style x:Key="photoColumnStyle" TargetType="{x:Type dxe:PopupImageEdit}" BasedOn="{StaticResource {dxgt:TableViewThemeKey ResourceKey=DefaultPrintCellStyle}}">
        <Setter Property="dxp:ExportSettings.TargetType" Value="Panel" />
        <Setter Property="DisplayTemplate">
            <Setter.Value>
                <ControlTemplate TargetType="dxe:PopupImageEdit">
                    <dxe:ImageEdit IsPrintingMode="True" Margin="4" HorizontalAlignment="Center" VerticalAlignment="Center"
                                      Source="{Binding Path=Value, Converter={StaticResource ImageDataConverter}}" />
                </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style>

    <DataTemplate x:Key="detailPrintRowTemplate">
        <ContentControl Foreground="{Binding Foreground, RelativeSource={RelativeSource TemplatedParent}}">
            <Grid DataContext="{Binding DataContext.Content, RelativeSource={RelativeSource TemplatedParent}}" Width="{Binding Path=(dxg:GridPrintingHelper.PrintRowInfo).TotalHeaderWidth}" Margin="0,12,0,0">
                <Grid.ColumnDefinitions>
                    <ColumnDefinition Width="Auto" />
                    <ColumnDefinition Width="12" />
                    <ColumnDefinition />
                </Grid.ColumnDefinitions>
                <dxe:ImageEdit IsPrintingMode="True" Grid.Column="0" VerticalAlignment="Center" BorderThickness="8" BorderBrush="#FFF0EDDA"
                                      Source="{Binding Path=Row.Photo, Converter={StaticResource ImageDataConverter}}" />
                <Grid Grid.Column="2">
                    <Grid.ColumnDefinitions>
                        <ColumnDefinition Width="Auto" />
                        <ColumnDefinition Width="12" />
                        <ColumnDefinition />
                    </Grid.ColumnDefinitions>
                    <Grid.RowDefinitions>
                        <RowDefinition />
                        <RowDefinition />
                        <RowDefinition />
                        <RowDefinition />
                        <RowDefinition />
                        <RowDefinition />
                        <RowDefinition />
                    </Grid.RowDefinitions>

                    <dxe:TextEdit Grid.Column="0" Grid.Row="0" EditValue="First Name:" Style="{StaticResource fieldStyle}" />
                    <dxe:TextEdit Grid.Column="0" Grid.Row="1" EditValue="Last Name:" Style="{StaticResource fieldStyle}" />
                    <dxe:TextEdit Grid.Column="0" Grid.Row="2" EditValue="Birth Date:" Style="{StaticResource fieldStyle}" />
                    <dxe:TextEdit Grid.Column="0" Grid.Row="3" EditValue="Position:" Style="{StaticResource fieldStyle}" />
                    <dxe:TextEdit Grid.Column="0" Grid.Row="4" EditValue="Hire Date:" Style="{StaticResource fieldStyle}" />
                    <dxe:TextEdit Grid.Column="0" Grid.Row="5" EditValue="About:" Style="{StaticResource fieldStyle}" />
                    <dxe:TextEdit Grid.Column="0" Grid.Row="6" EditValue="Address:" Style="{StaticResource fieldStyle}" />

                    <dxe:TextEdit Grid.Column="2" Grid.Row="0" EditValue="{Binding Row.FirstName}" Style="{StaticResource dataStyle}" />
                    <dxe:TextEdit Grid.Column="2" Grid.Row="1" EditValue="{Binding Row.LastName}" Style="{StaticResource dataStyle}" />
                    <dxe:TextEdit Grid.Column="2" Grid.Row="2" EditValue="{Binding Row.BirthDate}" MaskUseAsDisplayFormat="True" MaskType="DateTime" Mask="D" Style="{StaticResource dataStyle}" />
                    <dxe:TextEdit Grid.Column="2" Grid.Row="3" EditValue="{Binding Row.Title}" Style="{StaticResource dataStyle}" />
                    <dxe:TextEdit Grid.Column="2" Grid.Row="4" EditValue="{Binding Row.HireDate}" MaskUseAsDisplayFormat="True" MaskType="DateTime" Mask="D" Style="{StaticResource dataStyle}" />
                    <dxe:TextEdit Grid.Column="2" Grid.Row="5" EditValue="{Binding Row.Notes}" Style="{StaticResource dataStyle}" />
                    <dxe:TextEdit Grid.Column="2" Grid.Row="6" EditValue="{Binding Row.Address}" Style="{StaticResource dataStyle}" />
                </Grid>
            </Grid>
        </ContentControl>
    </DataTemplate>
    <DataTemplate x:Key="detailPrintHeaderTemplate">
        <dxe:TextEdit IsPrintingMode="True" Background="#FF6D8C59" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Padding="12" Margin="0,0,0,8" Width="{Binding Path=Content.(dxg:GridPrintingHelper.PrintRowInfo).TotalHeaderWidth}"
                               Foreground="#FFFFFFFF" FontWeight="Bold" FontSize="20" HorizontalContentAlignment="Center" EditValue="Employee List" />
    </DataTemplate>
    <Style x:Key="mailMergePrintHeaderStyle" TargetType="{x:Type dxe:TextEdit}">
        <Setter Property="BorderThickness" Value="0" />
    </Style>
    <dxg:RowPropertyValueConverter x:Key="RowPropertyValueConverter" />
    <dx:FormatStringConverter x:Key="FormatStringConverter" FormatString="D" />
    <DataTemplate x:Key="mailMergePrintRowTemplate">
        <ContentControl Foreground="{Binding Foreground, RelativeSource={RelativeSource TemplatedParent}}">
            <Grid DataContext="{Binding DataContext.Content, RelativeSource={RelativeSource TemplatedParent}}" Width="{Binding Path=(dxg:GridPrintingHelper.PrintRowInfo).TotalHeaderWidth}" Margin="0,15,0,0" dxp:ExportSettings.TargetType="Panel">
                <Grid.RowDefinitions>
                    <RowDefinition />
                    <RowDefinition />
                    <RowDefinition />
                    <RowDefinition />
                    <RowDefinition />
                    <RowDefinition />
                    <RowDefinition />
                    <RowDefinition />
                </Grid.RowDefinitions>
                <dxe:ImageEdit IsPrintingMode="True" HorizontalAlignment="Center" VerticalAlignment="Center" MaxWidth="150" BorderThickness="1" BorderBrush="Black"
                                      Source="{Binding Path=Row.Photo, Converter={StaticResource ImageDataConverter}}" />
                <dxe:TextEdit Grid.Row="1" HorizontalAlignment="Center" HorizontalContentAlignment="Center" FontSize="24" FontWeight="Bold" Foreground="#FFBE4410" Style="{StaticResource {dxgt:TableViewThemeKey ResourceKey=DefaultPrintStyleBase}}"
                                  Padding="5,2,5,2" EditValue="{Binding Path=DataContext, Converter={StaticResource RowPropertyValueConverter}, ConverterParameter=FullName}">
                </dxe:TextEdit>
                <dxe:TextEdit Grid.Row="2" EditValue="Details" FontSize="20" HorizontalAlignment="Center" Margin="2,4,2,4" Foreground="#FF797979" Style="{StaticResource {dxgt:TableViewThemeKey ResourceKey=DefaultPrintStyleBase}}"
                                  />
                <WrapPanel Grid.Row="3" dxp:ExportSettings.TargetType="Panel">
                    <dxe:TextEdit EditValue="Birth date:" FontWeight="Bold" Style="{StaticResource {dxgt:TableViewThemeKey ResourceKey=DefaultPrintStyleBase}}" />
                    <dxe:TextEdit EditValue="{Binding Row.BirthDate, Converter={StaticResource FormatStringConverter}}" Style="{StaticResource {dxgt:TableViewThemeKey ResourceKey=DefaultPrintStyleBase}}" />
                </WrapPanel>
                <WrapPanel Grid.Row="4" dxp:ExportSettings.TargetType="Panel">
                    <dxe:TextEdit EditValue="Position:" FontWeight="Bold" Style="{StaticResource {dxgt:TableViewThemeKey ResourceKey=DefaultPrintStyleBase}}" />
                    <dxe:TextEdit EditValue="{Binding Row.Title}" Style="{StaticResource {dxgt:TableViewThemeKey ResourceKey=DefaultPrintStyleBase}}" />
                </WrapPanel>
                <WrapPanel Grid.Row="5" dxp:ExportSettings.TargetType="Panel">
                    <dxe:TextEdit EditValue="Deparment:" FontWeight="Bold" Style="{StaticResource {dxgt:TableViewThemeKey ResourceKey=DefaultPrintStyleBase}}" />
                    <dxe:TextEdit EditValue="{Binding Row.Region}" Style="{StaticResource {dxgt:TableViewThemeKey ResourceKey=DefaultPrintStyleBase}}" />
                </WrapPanel>
                <Grid Grid.Row="6" dxp:ExportSettings.TargetType="Panel">
                    <Grid.ColumnDefinitions>
                        <ColumnDefinition Width="Auto" />
                        <ColumnDefinition Width="*" />
                    </Grid.ColumnDefinitions>

                    <dxe:TextEdit Grid.Column="0" EditValue="Notes:" FontWeight="Bold" VerticalAlignment="Top" Style="{StaticResource {dxgt:TableViewThemeKey ResourceKey=DefaultPrintStyleBase}}">
                    </dxe:TextEdit>
                    <dxe:TextEdit Grid.Column="1" EditValue="{Binding Row.Notes}" TextWrapping="Wrap" Style="{StaticResource {dxgt:TableViewThemeKey ResourceKey=DefaultPrintStyleBase}}">
                    </dxe:TextEdit>
                </Grid>
                <WrapPanel Grid.Row="7" Margin="0,5,0,0" dxp:ExportSettings.TargetType="Panel">
                    <dxe:TextEdit EditValue="Contact phone:" FontWeight="Bold" Style="{StaticResource {dxgt:TableViewThemeKey ResourceKey=DefaultPrintStyleBase}}" />
                    <dxe:TextEdit EditValue="{Binding Row.HomePhone}" Foreground="#FFBE4410" FontWeight="Bold" Style="{StaticResource {dxgt:TableViewThemeKey ResourceKey=DefaultPrintStyleBase}}" />
                </WrapPanel>
            </Grid>
        </ContentControl>
    </DataTemplate>
</ResourceDictionary>!�.using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Collections.ObjectModel;
using System.Collections;
using System.Diagnostics;
using System.Threading;
using System.ComponentModel;

namespace GridDemo {
    public class ChangeThread {
        readonly ObservableCollection<MarketData> collection = new ObservableCollection<MarketData>();
        public IList List { get { return this.collection; } }
        public int InterEventDelay = 1024000;
        volatile public bool NeedStop;
        readonly Stopwatch sw;
        readonly static Stopwatch backgroundSw = new Stopwatch();
        readonly static object syncObject = new object();
        public static bool UserRealtimeSource = true;
        static int backgroungTimerElapsed { get { lock(syncObject) return (int)backgroundSw.ElapsedMilliseconds; } }
        int changesFromPriopChangePerSecond = 0;
        int priorChanges;
        public int ChangePerSecond {
            get {
                if(Interlocked.CompareExchange(ref changesFromPriopChangePerSecond, 0, 0) == 0) {
                    return priorChanges;
                } else {
                    int changes = Interlocked.Exchange(ref changesFromPriopChangePerSecond, 0);
                    TimeSpan changeReportInterval = sw.Elapsed;
                    priorChanges = Convert.ToInt32(changes / changeReportInterval.TotalSeconds);
                    sw.Restart();
                    return priorChanges;
                }
            }
        }
        public ChangeThread() {
            this.NeedStop = false;
            this.sw = new Stopwatch();
            sw.Start();
            collection.Add(new MarketData("ANR"));
            collection.Add(new MarketData("FE"));
            collection.Add(new MarketData("GT"));
            collection.Add(new MarketData("PRGO"));
            collection.Add(new MarketData("APD"));
            collection.Add(new MarketData("PPL"));
            collection.Add(new MarketData("AES"));
            collection.Add(new MarketData("AVB"));
            collection.Add(new MarketData("IBM"));
            collection.Add(new MarketData("GAS"));
            collection.Add(new MarketData("EFX"));
            collection.Add(new MarketData("GPC"));
            collection.Add(new MarketData("ICE"));
            collection.Add(new MarketData("IVZ"));
            collection.Add(new MarketData("KO"));
            collection.Add(new MarketData("CCE"));
            collection.Add(new MarketData("SO"));
            collection.Add(new MarketData("STI"));
            collection.Add(new MarketData("BWA"));
            collection.Add(new MarketData("HRL"));
            collection.Add(new MarketData("WFM"));
            collection.Add(new MarketData("LM"));
            collection.Add(new MarketData("TROW"));
            collection.Add(new MarketData("K"));
            collection.Add(new MarketData("EXPE"));
            collection.Add(new MarketData("PCAR"));
            collection.Add(new MarketData("TRIP"));
            collection.Add(new MarketData("WHR"));
            collection.Add(new MarketData("WMT"));
            collection.Add(new MarketData("NU"));
            collection.Add(new MarketData("HST"));
            collection.Add(new MarketData("CVH"));
            collection.Add(new MarketData("LMT"));
            collection.Add(new MarketData("MAR"));
            collection.Add(new MarketData("CVC"));
            collection.Add(new MarketData("RF"));
            collection.Add(new MarketData("VMC"));
            collection.Add(new MarketData("PHM"));
            collection.Add(new MarketData("MU"));
            collection.Add(new MarketData("IRM"));
            collection.Add(new MarketData("AMT"));
            collection.Add(new MarketData("BXP"));
            collection.Add(new MarketData("STT"));
            collection.Add(new MarketData("PBCT"));
            collection.Add(new MarketData("FISV"));
            collection.Add(new MarketData("BLL"));
            collection.Add(new MarketData("MTB"));
            collection.Add(new MarketData("DIS"));
            collection.Add(new MarketData("LH"));
            collection.Add(new MarketData("AKAM"));
            collection.Add(new MarketData("CPB"));
            collection.Add(new MarketData("MYL"));
            collection.Add(new MarketData("LIFE"));
            collection.Add(new MarketData("LEG"));
            collection.Add(new MarketData("SCG"));
            collection.Add(new MarketData("CNX"));
            collection.Add(new MarketData("COL"));
            collection.Add(new MarketData("MCHP"));
            collection.Add(new MarketData("GR"));
            collection.Add(new MarketData("DUK"));
            collection.Add(new MarketData("BAC"));
            collection.Add(new MarketData("NUE"));
            collection.Add(new MarketData("UNM"));
            collection.Add(new MarketData("DLTR"));
            collection.Add(new MarketData("ABC"));
            collection.Add(new MarketData("TEG"));
            collection.Add(new MarketData("RRD"));
            collection.Add(new MarketData("EQR"));
            collection.Add(new MarketData("EXC"));
            collection.Add(new MarketData("BA"));
            collection.Add(new MarketData("CME"));
            collection.Add(new MarketData("NTRS"));
            collection.Add(new MarketData("VTR"));
            collection.Add(new MarketData("FITB"));
            collection.Add(new MarketData("PG"));
            collection.Add(new MarketData("KR"));
            collection.Add(new MarketData("M"));
            collection.Add(new MarketData("SNI"));
            collection.Add(new MarketData("ETN"));
            collection.Add(new MarketData("CLF"));
            collection.Add(new MarketData("PH"));
            collection.Add(new MarketData("KEY"));
            collection.Add(new MarketData("SHW"));
            collection.Add(new MarketData("HD"));
            collection.Add(new MarketData("AFL"));
            collection.Add(new MarketData("TSS"));
            collection.Add(new MarketData("CMI"));
            collection.Add(new MarketData("HBAN"));
            collection.Add(new MarketData("AEP"));
            collection.Add(new MarketData("BIG"));
            collection.Add(new MarketData("LTD"));
            collection.Add(new MarketData("ESRX"));
            collection.Add(new MarketData("GLW"));
            collection.Add(new MarketData("WPI"));
            collection.Add(new MarketData("MON"));
            collection.Add(new MarketData("AAPL"));
            collection.Add(new MarketData("DF"));
            collection.Add(new MarketData("T"));
            collection.Add(new MarketData("CMA"));
            collection.Add(new MarketData("THC"));
            collection.Add(new MarketData("LUV"));
            collection.Add(new MarketData("TXN"));
            collection.Add(new MarketData("TIE"));
            collection.Add(new MarketData("PX"));
        }
        public void Do() {
            Random rndRow = new Random();
            do {
                Stopwatch watch = Stopwatch.StartNew();
                int row = rndRow.Next(0, collection.Count);
                collection[row].Update();
                Interlocked.Increment(ref changesFromPriopChangePerSecond);
                for(; ; ) {
                    var elapsed = watch.ElapsedTicks;
                    var left = InterEventDelay - elapsed;
                    if(left <= 0) {
                        while(!UserRealtimeSource && backgroungTimerElapsed > 12)
                            Thread.Sleep(2);
                        break;
                    }
                    if(left > 2000)
                        Thread.Sleep(1);
                    else
                        Thread.Sleep(0);
                }
                watch.Stop();
            } while(!NeedStop);
        }
        public void Stop() {
            this.NeedStop = true;
        }
        public static void OnIdle(object sender, EventArgs e) {
            backgroundSw.Restart();
        }
    }
    public class MarketData : INotifyPropertyChanged {
        readonly static Random rnd = new Random();
        const double MAX = 950;
        const double MIN = 350;
        string ticker;
        public string Ticker {
            get { return ticker; }
            private set {
                ticker = value;
                if(PropertyChanged != null)
                    PropertyChanged(this, new PropertyChangedEventArgs("Ticker"));
            }
        }
        double last;
        public double Last {
            get { return last; }
            private set {
                last = value;
                if(PropertyChanged != null)
                    PropertyChanged(this, new PropertyChangedEventArgs("Last"));
            }
        }
        double chgPercent;
        public double ChgPercent {
            get { return chgPercent * 100; }
            private set {
                chgPercent = value;
                if(PropertyChanged != null)
                    PropertyChanged(this, new PropertyChangedEventArgs("ChgPercent"));
            }
        }
        double open;
        public double Open {
            get { return open; }
            private set {
                open = value;
                if(PropertyChanged != null)
                    PropertyChanged(this, new PropertyChangedEventArgs("Open"));
            }
        }
        double high;
        public double High {
            get { return high; }
            private set {
                high = value;
                if(PropertyChanged != null)
                    PropertyChanged(this, new PropertyChangedEventArgs("High"));
            }
        }
        double low;
        public double Low {
            get { return low; }
            private set {
                low = value;
                if(PropertyChanged != null)
                    PropertyChanged(this, new PropertyChangedEventArgs("High"));
            }
        }
        DateTime date;
        public DateTime Date {
            get { return date; }
            private set {
                date = value;
                if(PropertyChanged != null)
                    PropertyChanged(this, new PropertyChangedEventArgs("Date"));
            }
        }
        double dayVal;
        public double DayVal {
            get { return dayVal; }
            private set {
                dayVal = value;
                if(PropertyChanged != null)
                    PropertyChanged(this, new PropertyChangedEventArgs("DayVal"));
            }
        }
        public event PropertyChangedEventHandler PropertyChanged;

        public MarketData(string name) {
            Ticker = name;
            Open = (NextRnd() * (MAX - MIN)) + MIN;
            DayVal = open;
            UpdateInternal(Open);
        }
        public void Update() {
            double value = dayVal - (MAX - MIN) * 0.05 + NextRnd() * (MAX - MIN) * 0.1;
            if(value <= MIN) value = MIN;
            if(value >= MAX) value = MAX;
            UpdateInternal(value);
        }
        void UpdateInternal(double value) {
            last = dayVal;
            dayVal = value;
            chgPercent = (dayVal - last) / dayVal;
            high = Math.Max(Open, Math.Max(dayVal, last));
            low = Math.Min(Open, Math.Min(dayVal, last));
            date = DateTime.Now;
            if(PropertyChanged != null)
                PropertyChanged(this, new PropertyChangedEventArgs(""));
        }
        static double NextRnd() {
            double value = 0;
            for(int i = 0; i < 5; i++)
                value += rnd.NextDouble();
            return value / 5;
        }
    }
}![
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using DevExpress.Xpf.DemoBase.Helpers;
using System.Threading;
using System.Windows.Threading;
using System.Collections;

namespace GridDemo {
    public class RealtimeDataSourceViewModel : DemoViewModelBase {
        readonly ChangeThread changeThread;
        readonly Thread thread;
        readonly DispatcherTimer timerShow;
        readonly DispatcherTimer backgroundTimer;

        public RealtimeDataSourceViewModel() {
            changeThread = new ChangeThread();
            ThreadStart chtrDo = (ThreadStart)Delegate.CreateDelegate(typeof(ThreadStart), changeThread, "Do");
            thread = new Thread(chtrDo);
            thread.IsBackground = true;
            changeThread.NeedStop = false;
            timerShow = new DispatcherTimer(TimeSpan.FromSeconds(0.5), DispatcherPriority.Send, TimerShowCallback, Dispatcher.CurrentDispatcher);
            EventHandler onIdle = (EventHandler)Delegate.CreateDelegate(typeof(EventHandler), typeof(ChangeThread), "OnIdle");
            backgroundTimer = new DispatcherTimer(TimeSpan.FromMilliseconds(10), DispatcherPriority.Background, onIdle, Dispatcher.CurrentDispatcher);
            thread.Start();
        }

        public event EventHandler TimerShowTick;
        public int ChangePerSecond { get { return changeThread.ChangePerSecond; } }
        public int InterEventDelay { set { Interlocked.Exchange(ref changeThread.InterEventDelay, value); } }
        bool withRealTimeSource;
        public bool WithRealTimeSource {
            get { return withRealTimeSource; }
            set {
                if(withRealTimeSource == value)
                    return;
                withRealTimeSource = value;
                OnPropertyChanged("WithRealTimeSource");
            }
        }
        public IList List { get { return changeThread.List; } }
        public void Update() {
            WithRealTimeSource = !WithRealTimeSource;
            if(WithRealTimeSource) {
                ChangeThread.UserRealtimeSource = true;
            } else {
                ChangeThread.UserRealtimeSource = false;
            }
        }
        public void Dispose() {
            changeThread.Stop();
            timerShow.Stop();
            backgroundTimer.Stop();
        }
        void TimerShowCallback(object sender, EventArgs e) {
            RaiseTimerShowTickEvent();
        }
        void RaiseTimerShowTickEvent() {
            if(TimerShowTick != null)
                TimerShowTick(this, EventArgs.Empty);
        }
    }
}!6	using System;
using System.Windows;
using System.Windows.Input;
using System.Windows.Interactivity;
using DevExpress.Xpf.Utils;
using System.Windows.Markup;
using DevExpress.Xpf.Editors;

namespace GridDemo {
    public class RoutedEventCommandHelper : Behavior<FrameworkElement> {
        public static readonly DependencyProperty CommandProperty;
        static RoutedEventCommandHelper() {
            CommandProperty = DependencyPropertyManager.Register("Command", typeof(ICommand), typeof(RoutedEventCommandHelper), new PropertyMetadata(null));
        }
        readonly RoutedEventHandler handler;
        private RoutedEvent routedEvent;
        public RoutedEventCommandHelper() {
            this.handler = new RoutedEventHandler(OnRaiseEvent);
        }
        protected override void OnAttached() {
            base.OnAttached();
            if(RoutedEvent == null) return;
            UpdateSubsrcribtion();
        }
        private void UpdateSubsrcribtion() {
            AssociatedObject.RemoveHandler(RoutedEvent, handler);
            AssociatedObject.AddHandler(RoutedEvent, this.handler);
        }
        private void OnRaiseEvent(object sender, RoutedEventArgs e) {
            if(Command == null) return;
            Command.Execute(new RoutedEventHandlerArgs(sender, e));
        }
        public RoutedEvent RoutedEvent {
            get { return this.routedEvent; }
            set {
                this.routedEvent = value;
                if(AssociatedObject == null) return;
                UpdateSubsrcribtion();
            }
        }
        public ICommand Command {
            get { return (ICommand)GetValue(CommandProperty); }
            set { SetValue(CommandProperty, value); }
        }
    }
    public class RoutedEventHandlerArgs {
        public object Sender { get; private set; }
        public RoutedEventArgs Args { get; private set; }
        public RoutedEventHandlerArgs(object sender, RoutedEventArgs e) {
            Sender = sender;
            Args = e;
        }
    }
    public class EditValueChangedEventExtension : MarkupExtension {
        public EditValueChangedEventExtension() { }
        public override object ProvideValue(IServiceProvider serviceProvider) {
            return BaseEdit.EditValueChangedEvent;
        }
    }
}!using System;
using System.Windows.Controls;
using DevExpress.Xpf.Core;

namespace GridDemo {
    public class SendEmailButton : Button {
        public SendEmailButton() {
            this.SetDefaultStyleKey(typeof(SendEmailButton));
        }
    }
}!�MSBAML```����D@GridDemo, Version=13.1.4.0, Culture=neutral, PublicKeyToken=null#clr-namespace:GridDemoGridDemo\XPresentationFramework, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35RNWindowsBase, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35WSPresentationCore, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35RNSystem.Xaml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089a]DevExpress.Xpf.Core.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49afbDevExpress.Xpf.Grid.v13.1.Core, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49aa]DevExpress.Xpf.Grid.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49alhDevExpress.Xpf.Grid.v13.1.Extensions, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a/)DevExpress.Xpf.Core.FormatStringConverter FormatStringConverterFormatString,&DevExpress.Xpf.Core.ImageDataConverter ImageDataConverter 
eMailTemplateGridDemo.SendEmailButton
�Cursor�	ClickMode��
TargetType�ColumnDefinitionsF�Name�Stretch�ElementName��Triggers	��Value
��Binding�Path�
TargetName
�Property�Value^�
Conditions��Binding��Value�RelativeSource DetailCoreTemplate-'DevExpress.Xpf.Core.MeasurePixelSnapper& DevExpress.Xpf.Editors.ImageEditShowMenu
Source�	Converter�RowDefinitions detailContainerTemplate�Padding rowDetailTemplate��Orientation��Name3-DevExpress.Xpf.Grid.RowDetailContainerControl expandableRowDetailTemplate$DevExpress.Xpf.Core.DXExpanderHorizontalExpandVerticalExpand
IsExpanded rowToolTipTemplate^�InitialShowDelay^�
HasDropShadow^�ToolTip
 �Tag�D9http://schemas.microsoft.com/winfx/2006/xaml/presentation:x,http://schemas.microsoft.com/winfx/2006/xaml;dx2http://schemas.devexpress.com/winfx/2008/xaml/core?dxe5http://schemas.devexpress.com/winfx/2008/xaml/editors@dxg2http://schemas.devexpress.com/winfx/2008/xaml/grid localclr-namespace:GridDemo%�&	&	
&	&	+77&	�&	W7&	�7&	�$D����.R�$	�4,0q�$�Center=�$
Hand��$Press=���*Value+���*
View.Tag+���*Value+���"�.R��
��������$
�Auto���$�19�.+���$
�text��$
�0,0,0,1q�#��z�$�Center=�F�$
path��$
Fill=��������&�����b&����fS&@V�р-�&����fS&��[��b&��L���&������&������&����o�&@V�р6�&����o�&��[���&��L���&���$�Center=�$�0q�$�Center=�$�8��$�7��$�1����*
Foreground+$
text����$	False��
�$RowData.IsFocused�.a��$
text��
����	#FF2A6DBD^����$RowData.IsFocused�	False���$IsMouseOver���*Self+True.0��$
text��
����	#FF5E9AE2�$
path��
����	#FF5E9AE2��.R�._����$
�Auto���$�12���.+�$	�150��$
�Left=�$	�Top=�$�0�.�$	Row.Photo�8��$("CellData[0].Column.ActualDataWidth��$�2���$
�Auto���$�12��������.+���$�0�$��0�$��Name:����$�0�$��1�$��	Position:����$�0�$��2�$��
Hire Date:����$�0�$��3�$��About:����$�0�$��4�$��Address:����$�2�$��0����*
Row.FirstName+��$�2�$��1����*	Row.Title+��$�2�$��2����*Row.HireDate+8��$�2�$��3�$
�Left=�$
��Wrap=����*	Row.Notes+��$�2�$��4����*
Row.Address+��"��.R��$
��0,1,0,0q�#��z�$
�Stretch=�$
�Stretch=�$12,12,12,12q�#��z�._�����.R���$Vertical=�.+�._���$defaultRowPresenter������*View.DefaultDataRowTemplate+8�#�����.R���$Vertical=�.+�._���$defaultRowPresenter������*View.DefaultDataRowTemplate+$
None=�$FromTopToBottom=��$
IsSelected�._�8�#�����.R�������*View.DefaultDataRowTemplate+$10�.��#�$ Transparent��$	�600����!b<ResourceDictionary
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:dx="http://schemas.devexpress.com/winfx/2008/xaml/core"
    xmlns:dxe="http://schemas.devexpress.com/winfx/2008/xaml/editors"
    xmlns:dxg="http://schemas.devexpress.com/winfx/2008/xaml/grid"
    xmlns:local="clr-namespace:GridDemo">

    <dx:FormatStringConverter x:Key="FormatStringConverter" FormatString="D" />
    <dx:ImageDataConverter x:Key="ImageDataConverter" />

    <DataTemplate x:Key="eMailTemplate">
        <local:SendEmailButton Margin="4,0" VerticalAlignment="Center" Cursor="Hand" Content="{Binding Value}" Command="{Binding View.Tag}" CommandParameter="{Binding Value}" ClickMode="Press">
            <local:SendEmailButton.Template>
                <ControlTemplate TargetType="{x:Type Button}">
                    <Grid Background="Transparent">
                        <Grid.ColumnDefinitions>
                            <ColumnDefinition Width="Auto" />
                            <ColumnDefinition Width="19" />
                        </Grid.ColumnDefinitions>
                        <TextBlock Name="text" Margin="0,0,0,1" Text="{TemplateBinding Content}" VerticalAlignment="Center" />
                        <Path x:Name="path" Stretch="Fill" Fill="{Binding Foreground, ElementName=text}" Data="F1 M 648,462L 644,466L 643,465L 646,462L 643,459L 644,458L 648,462 Z M 652,462L 648,466L 647,465L 650,462L 647,459L 648,458L 652,462 Z " HorizontalAlignment="Center" Margin="0" VerticalAlignment="Center" Width="8" Height="7" Grid.Column="1" />
                    </Grid>
                    <ControlTemplate.Triggers>
                        <DataTrigger Binding="{Binding Path=RowData.IsFocused}" Value="False">
                            <Setter Property="Foreground" Value="#FF2A6DBD" TargetName="text" />
                        </DataTrigger>
                        <MultiDataTrigger>
                            <MultiDataTrigger.Conditions>
                                <Condition Binding="{Binding Path=RowData.IsFocused}" Value="False" />
                                <Condition Binding="{Binding Path=IsMouseOver, RelativeSource={RelativeSource Self}}" Value="True" />
                            </MultiDataTrigger.Conditions>
                            <Setter Property="Foreground" Value="#FF5E9AE2" TargetName="text" />
                            <Setter Property="Fill" Value="#FF5E9AE2" TargetName="path" />
                        </MultiDataTrigger>
                    </ControlTemplate.Triggers>
                </ControlTemplate>
            </local:SendEmailButton.Template>
        </local:SendEmailButton>
    </DataTemplate>
    <DataTemplate x:Key="DetailCoreTemplate">
        <dx:MeasurePixelSnapper>
            <Grid>
                <Grid.ColumnDefinitions>
                    <ColumnDefinition Width="Auto" />
                    <ColumnDefinition Width="12" />
                    <ColumnDefinition />
                </Grid.ColumnDefinitions>
                <dxe:ImageEdit MaxWidth="150" HorizontalAlignment="Left" VerticalAlignment="Top" Source="{Binding Path=Row.Photo, Converter={StaticResource ImageDataConverter}}" Grid.Column="0" Width="{Binding Path=CellData[0].Column.ActualDataWidth}" ShowMenu="False" />
                <Grid Grid.Column="2">
                    <Grid.ColumnDefinitions>
                        <ColumnDefinition Width="Auto" />
                        <ColumnDefinition Width="12" />
                        <ColumnDefinition />
                    </Grid.ColumnDefinitions>
                    <Grid.RowDefinitions>
                        <RowDefinition />
                        <RowDefinition />
                        <RowDefinition />
                        <RowDefinition />
                        <RowDefinition />
                    </Grid.RowDefinitions>
                    <TextBlock Grid.Column="0" Grid.Row="0" Text="Name:" />
                    <TextBlock Grid.Column="0" Grid.Row="1" Text="Position:" />
                    <TextBlock Grid.Column="0" Grid.Row="2" Text="Hire Date:" />
                    <TextBlock Grid.Column="0" Grid.Row="3" Text="About:" />
                    <TextBlock Grid.Column="0" Grid.Row="4" Text="Address:" />
                    <TextBlock Grid.Column="2" Grid.Row="0" Text="{Binding Row.FirstName}" />
                    <TextBlock Grid.Column="2" Grid.Row="1" Text="{Binding Row.Title}" />
                    <TextBlock Grid.Column="2" Grid.Row="2" Text="{Binding Row.HireDate, Converter={StaticResource FormatStringConverter}}" />
                    <TextBlock Grid.Column="2" Grid.Row="3" HorizontalAlignment="Left" Text="{Binding Row.Notes}" TextWrapping="Wrap" />
                    <TextBlock Grid.Column="2" Grid.Row="4" Text="{Binding Row.Address}" />
                </Grid>
            </Grid>
        </dx:MeasurePixelSnapper>
    </DataTemplate>
    <ControlTemplate x:Key="detailContainerTemplate" TargetType="{x:Type ContentControl}">
        <Border BorderThickness="0,1,0,0" BorderBrush="{TemplateBinding BorderBrush}" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Padding="12,12,12,12" Background="{TemplateBinding Background}">
            <ContentPresenter />
        </Border>
    </ControlTemplate>
    <DataTemplate x:Key="rowDetailTemplate">
        <StackPanel Orientation="Vertical">
            <dx:MeasurePixelSnapper>
                <ContentPresenter x:Name="defaultRowPresenter" Content="{Binding}" ContentTemplate="{Binding View.DefaultDataRowTemplate}" />
            </dx:MeasurePixelSnapper>
            <dxg:RowDetailContainerControl Template="{StaticResource detailContainerTemplate}" Content="{Binding}" ContentTemplate="{DynamicResource DetailCoreTemplate}" />
        </StackPanel>
    </DataTemplate>
    <DataTemplate x:Key="expandableRowDetailTemplate">
        <StackPanel Orientation="Vertical">
            <dx:MeasurePixelSnapper>
                <ContentPresenter x:Name="defaultRowPresenter" Content="{Binding}" ContentTemplate="{Binding View.DefaultDataRowTemplate}" />
            </dx:MeasurePixelSnapper>
            <dx:DXExpander IsExpanded="{Binding Path=IsSelected}" HorizontalExpand="None" VerticalExpand="FromTopToBottom">
                <dxg:RowDetailContainerControl Template="{StaticResource detailContainerTemplate}" Content="{Binding}" ContentTemplate="{DynamicResource DetailCoreTemplate}" />
            </dx:DXExpander>
        </StackPanel>
    </DataTemplate>
    <DataTemplate x:Key="rowToolTipTemplate">
        <ContentPresenter Content="{Binding}" ContentTemplate="{Binding View.DefaultDataRowTemplate}">
            <ToolTipService.InitialShowDelay>10</ToolTipService.InitialShowDelay>
            <ToolTipService.HasDropShadow>false</ToolTipService.HasDropShadow>
            <ToolTipService.ToolTip>
                <ContentControl Content="{Binding}" ContentTemplate="{DynamicResource DetailCoreTemplate}" Tag="Transparent" MaxWidth="600"/>
            </ToolTipService.ToolTip>
        </ContentPresenter>
    </DataTemplate>
</ResourceDictionary>!�using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Linq;
using DevExpress.Xpf.Grid;

namespace GridDemo {
    public class ListColumn {
        public ListColumn(ColumnBase column) {
            this.Column = column;
            HeaderCaption = column.HeaderCaption.ToString();
        }
        public ColumnBase Column { get; private set; }
        public string HeaderCaption { get; private set; }
        public static IList<ListColumn> CreateCollection(GridColumnCollection gridColumns) {
            var collection = new ObservableCollection<ListColumn>(gridColumns.Select(col => new ListColumn(col)));
            return new ReadOnlyObservableCollection<ListColumn>(collection);
        }
    }
}!GMSBAML```����D@GridDemo, Version=13.1.4.0, Culture=neutral, PublicKeyToken=null#clr-namespace:GridDemoGridDemo\XPresentationFramework, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35RNWindowsBase, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35WSPresentationCore, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35RNSystem.Xaml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089a]DevExpress.Xpf.Core.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a1+GridDemo.ShowSearchPanelModeToTextConverter &"ShowSearchPanelModeToTextConverter& GridDemo.FindModeToTextConverter FindModeToTextConverter/)DevExpress.Xpf.Core.IntToBooleanConverter IntToBooleanConverter IntToBooleanConverterInvert
Invert3-DevExpress.Xpf.Core.BoolToVisibilityConverter boolToVisibilityConverter:4DevExpress.Xpf.Core.BoolToVisibilityInverseConverter $ boolToVisibilityInverseConverter'!GridDemo.SearchPanelModeConverter SearchPanelModeConverter "showSearchPanelContentTemplate�	Converter findModeTemplate�D9http://schemas.microsoft.com/winfx/2006/xaml/presentation:x,http://schemas.microsoft.com/winfx/2006/xaml;dx2http://schemas.devexpress.com/winfx/2008/xaml/core localclr-namespace:GridDemo%�&	&	&	
&	&	&	 &	%&	*7&	E7.��.R������8��.R������8!�<ResourceDictionary
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:dx="http://schemas.devexpress.com/winfx/2008/xaml/core"
    xmlns:local="clr-namespace:GridDemo">

    <local:ShowSearchPanelModeToTextConverter x:Key="ShowSearchPanelModeToTextConverter" />
    <local:FindModeToTextConverter x:Key="FindModeToTextConverter" />
    <dx:IntToBooleanConverter x:Key="IntToBooleanConverter"/>
    <dx:IntToBooleanConverter x:Key="IntToBooleanConverterInvert" Invert="True"/>
    <dx:BoolToVisibilityConverter x:Key="boolToVisibilityConverter"/>
    <dx:BoolToVisibilityInverseConverter x:Key="boolToVisibilityInverseConverter"/>
    <local:SearchPanelModeConverter x:Key="SearchPanelModeConverter"/>

    <DataTemplate x:Key="showSearchPanelContentTemplate">
        <TextBlock Text="{Binding Converter={StaticResource ShowSearchPanelModeToTextConverter}}"/>
    </DataTemplate>

    <DataTemplate x:Key="findModeTemplate">
        <TextBlock Text="{Binding Converter={StaticResource FindModeToTextConverter}}"/>
    </DataTemplate>
</ResourceDictionary>!�	using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.Windows.Input;
using DevExpress.Xpf.Core.Commands;
using DevExpress.Xpf.DemoBase.Helpers;
using DevExpress.Xpf.Editors;
using DevExpress.Xpf.Grid;

namespace GridDemo {
    public class GridSearchPanelViewModel : DemoViewModelBase {
        ICommand selectAllItemsCommand;
        IList<ListColumn> columns;
        DataViewBase view;
        public DataViewBase View {
            get { return this.view; }
            set { ChangeProperty(ref this.view, value, "View"); }
        }
        public IList<ListColumn> Columns {
            get { return this.columns; }
            set { ChangeProperty(ref this.columns, value, "Columns"); }
        }
        public ICommand SelectAllItemsCommand {
            get { return this.selectAllItemsCommand; }
            set { ChangeProperty(ref this.selectAllItemsCommand, value, "SelectAllItemsCommand"); }
        }
        public ICommand ChangeAllowSearchPanelCommand { get; private set; }
        public ICommand ChangeSearchPanelVisibilityCommand { get; private set; }
        public ICommand PopulateColumnsCommand { get; private set; }
        public ChangeSelectionAction SelectAllAction { get { return ChangeSelectionAction.SelectAll; } }
        public GridSearchPanelViewModel() {
            ChangeAllowSearchPanelCommand = new DelegateCommand<ObservableCollection<object>>(UpdateAllowSearchPanel, CanUpdateAllowSearchPanel);
            ChangeSearchPanelVisibilityCommand = new DelegateCommand<bool>(ChangeSearchPanelVisibility);
            PopulateColumnsCommand = new DelegateCommand<GridColumnCollection>(PopulateColumns);
            Columns = new List<ListColumn>();
        }
        bool CanUpdateAllowSearchPanel(ObservableCollection<object> selection) {
            return selection != null;
        }
        void PopulateColumns(GridColumnCollection gridColumns) {
            Columns = ListColumn.CreateCollection(gridColumns);
        }
        void ChangeSearchPanelVisibility(bool args) {
            if((bool)args)
                View.Commands.ShowSearchPanel.Execute(false);
            else
                View.Commands.HideSearchPanel.Execute(null);
        }
        void UpdateAllowSearchPanel(ObservableCollection<object> selection) {
            foreach(var listColumn in Columns)
                listColumn.Column.AllowSearchPanel = selection.Contains(listColumn);
        }
    }
}!�using System;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Ink;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;
using System.IO;
using System.Reflection;

namespace GridDemo {
    public abstract class LayoutSampleBase {
        readonly string description;
        public LayoutSampleBase(string description) {
            this.description = description;
        }
        public abstract Stream GetStream();
        public override string ToString() {
            return description;
        }
    }
    public class ResourceLayoutSample : LayoutSampleBase {
        readonly string resourcePath;
        public ResourceLayoutSample(string description, string resourcePath)
            : base(description) {
            this.resourcePath = resourcePath;
        }
        public override Stream GetStream() {
            return Assembly.GetExecutingAssembly().GetManifestResourceStream(resourcePath);
        }
    }
    public class MemoryStreamLayoutSample : LayoutSampleBase {
        readonly MemoryStream stream;
        public MemoryStreamLayoutSample(string description, MemoryStream stream)
            : base(description) {
            this.stream = stream;
        }
        public override Stream GetStream() {
            return stream;
        }
    }
}!�
MSBAML```����D@GridDemo, Version=13.1.4.0, Culture=neutral, PublicKeyToken=null#clr-namespace:GridDemoGridDemo\XPresentationFramework, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35RNWindowsBase, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35WSPresentationCore, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35RNSystem.Xaml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089a]DevExpress.Xpf.Core.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a,&DevExpress.Xpf.Core.ImageDataConverter ImageDataConverter%GridDemo.HeaderToImageConverter HeaderToImageConverter/)GridDemo.BooleanToDefaultBooleanConverter $ booleanToDefaultBooleanConverterGridDemo.CountriesData 
CountriesData TextBlockStyle��
TargetType�Property�Value colCountryItemTemplate�ColumnDefinitions�Path�	Converter colCountryCellTemplate)#DevExpress.Xpf.Editors.ComboBoxEditName+%DevExpress.Xpf.Editors.LookUpEditBaseValueMember'!DevExpress.Xpf.Editors.ButtonEditIsTextEditable%DevExpress.Xpf.Editors.BaseEdit	DisplayTemplate)#DevExpress.Xpf.Editors.TextEditBase
EditNonEditableTemplateItemsSource
�Source
ItemTemplate ColumnHeaderTemplate!	DevExpress.Xpf.Bars.BarItem	UseAsBarItemGlyph��Name�D9http://schemas.microsoft.com/winfx/2006/xaml/presentation:x,http://schemas.microsoft.com/winfx/2006/xaml localclr-namespace:GridDemo;dx2http://schemas.devexpress.com/winfx/2008/xaml/core<dxb2http://schemas.devexpress.com/winfx/2008/xaml/bars?dxe5http://schemas.devexpress.com/winfx/2008/xaml/editors%�&	&	&	
&	&	&	`77&	o77777&	�77��"��.�����$CharacterEllipsis=����$Center=���.R��
��������$
�Auto���.+��$
�4,0,4,0q�$
��Uniform=�$�16��$
�Left=�$�Center=����$0*(dxe:BaseEdit.OwnerEdit).SelectedItem.Flag�8��8�$
�4,0,0,0q�$�1����$0*(dxe:BaseEdit.OwnerEdit).SelectedItem.Name���.R�$PART_Editor��$
Name��.8	8
�$
DataSource�8
��.R����$
�Auto���.+��$
�4,0,4,0q�$
��Uniform=�$�16��$
�Left=�$�Center=����$
Flag�8��8�$
�4,0,0,0q�$�1����$
Name���.R����$
�Auto���.+��$
��None=�$�Center=�.$
�0,0,4,0q����8��$
tbPhone��8�$�1����!�
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
                    xmlns:local="clr-namespace:GridDemo"
                    xmlns:dx="http://schemas.devexpress.com/winfx/2008/xaml/core"
                    xmlns:dxb="http://schemas.devexpress.com/winfx/2008/xaml/bars"
                 xmlns:dxe="http://schemas.devexpress.com/winfx/2008/xaml/editors">
    <dx:ImageDataConverter x:Key="ImageDataConverter" />
    <local:HeaderToImageConverter x:Key="HeaderToImageConverter"/>
    <local:BooleanToDefaultBooleanConverter x:Key="booleanToDefaultBooleanConverter" />
    <local:CountriesData x:Key="CountriesData"/>
    <Style x:Key="TextBlockStyle" TargetType="TextBlock">
        <Setter Property="TextTrimming">
            <Setter.Value>CharacterEllipsis</Setter.Value>
        </Setter>
        <Setter Property="VerticalAlignment" Value="Center"/>
    </Style>
    <ControlTemplate x:Key="colCountryItemTemplate">
        <Grid Background="Transparent">
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="Auto"/>
                <ColumnDefinition/>
            </Grid.ColumnDefinitions>
            <Image Margin="4,0,4,0" Source="{Binding Path=(dxe:BaseEdit.OwnerEdit).SelectedItem.Flag, Converter={StaticResource ImageDataConverter}}" Stretch="Uniform" Height="16" HorizontalAlignment="Left" VerticalAlignment="Center"/>
            <TextBlock Style="{StaticResource TextBlockStyle}" Margin="4,0,0,0" Text="{Binding Path=(dxe:BaseEdit.OwnerEdit).SelectedItem.Name}" Grid.Column="1"/>
        </Grid>
    </ControlTemplate>
    <DataTemplate x:Key="colCountryCellTemplate">
        <dxe:ComboBoxEdit x:Name="PART_Editor" ItemsSource="{Binding Path=DataSource, Source={StaticResource CountriesData}}"
                                              ValueMember="Name" IsTextEditable="False" DisplayTemplate="{StaticResource colCountryItemTemplate}" EditNonEditableTemplate="{StaticResource colCountryItemTemplate}">
            <dxe:ComboBoxEdit.ItemTemplate>
                <DataTemplate>
                    <Grid>
                        <Grid.ColumnDefinitions>
                            <ColumnDefinition Width="Auto"/>
                            <ColumnDefinition/>
                        </Grid.ColumnDefinitions>
                        <Image Margin="4,0,4,0" Source="{Binding Path=Flag, Converter={StaticResource ImageDataConverter}}" Stretch="Uniform"  Height="16"  HorizontalAlignment="Left" VerticalAlignment="Center"/>
                        <TextBlock Style="{StaticResource TextBlockStyle}" Margin="4,0,0,0" Text="{Binding Path=Name}" Grid.Column="1"/>
                    </Grid>
                </DataTemplate>
            </dxe:ComboBoxEdit.ItemTemplate>
        </dxe:ComboBoxEdit>
    </DataTemplate>
    <DataTemplate x:Key="ColumnHeaderTemplate">
        <Grid>
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="Auto"/>
                <ColumnDefinition/>
            </Grid.ColumnDefinitions>
            <Image Source="{Binding Converter={StaticResource HeaderToImageConverter}}" Stretch="None" VerticalAlignment="Center" dxb:BarItem.UseAsBarItemGlyph="True" Margin="0,0,4,0"/>
            <TextBlock x:Name="tbPhone" Style="{StaticResource TextBlockStyle}" Text="{Binding}" Grid.Column="1"/>
        </Grid>
    </DataTemplate>
</ResourceDictionary>!using System;
using System.Collections.Generic;
using System.Globalization;
using System.Windows.Data;
using DevExpress.Xpf.Grid;

namespace GridDemo {
    public class NavigationStyleList : List<GridViewNavigationStyle> { }
    #region Converters
    public class NavigationStyleToIsEnabledConverter : IValueConverter {
        public object Convert(object value, Type targetType, object parameter, CultureInfo culture) {
            if(value == null)
                return true;
            return ((GridViewNavigationStyle)value) != GridViewNavigationStyle.Row;
        }
        public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) {
            throw new NotImplementedException();
        }
    }
    public class ShowTreeListLinesConverter : IValueConverter {
        #region IValueConverter Members
        public object Convert(object value, Type targetType, object parameter, CultureInfo culture) {
            return (TreeListLineStyle)value != TreeListLineStyle.None;
        }
        public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) {
            return (bool)value ? TreeListLineStyle.Solid : TreeListLineStyle.None;
        }
        #endregion
    }
    #endregion
}!�MSBAML```����D@GridDemo, Version=13.1.4.0, Culture=neutral, PublicKeyToken=null#clr-namespace:GridDemoGridDemo\XPresentationFramework, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35RNWindowsBase, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35WSPresentationCore, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35RNSystem.Xaml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089a]DevExpress.Xpf.Core.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a)#GridDemo.ShowTreeListLinesConverter showTreeLinesConverter2,GridDemo.NavigationStyleToIsEnabledConverter '#navigationStyleToIsEnabledConverter82DevExpress.Xpf.Editors.BytesToImageSourceConverter imageConverter/)DevExpress.Xpf.Core.BoolToObjectConverter +'ShowColumnChooserButtonContentConverter	TrueValue
FalseValue 
photoTemplate�Path�	Converter�D9http://schemas.microsoft.com/winfx/2006/xaml/presentation:x,http://schemas.microsoft.com/winfx/2006/xaml;dx2http://schemas.devexpress.com/winfx/2008/xaml/core?dxe5http://schemas.devexpress.com/winfx/2008/xaml/editors localclr-namespace:GridDemo%�&	&	&	
&	&	H7$Hide Column Chooser��$Show Column Chooser����.R��$��
UniformToFill=�$�74��$�60�����$Value�8!�<ResourceDictionary
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:dx="http://schemas.devexpress.com/winfx/2008/xaml/core"
    xmlns:dxe="http://schemas.devexpress.com/winfx/2008/xaml/editors"
    xmlns:local="clr-namespace:GridDemo">

    <local:ShowTreeListLinesConverter x:Key="showTreeLinesConverter" />
    <local:NavigationStyleToIsEnabledConverter x:Key="navigationStyleToIsEnabledConverter"/>
    <dxe:BytesToImageSourceConverter x:Key="imageConverter"/>
    <dx:BoolToObjectConverter x:Key="ShowColumnChooserButtonContentConverter" TrueValue="Hide Column Chooser" FalseValue="Show Column Chooser" />

    <DataTemplate x:Key="photoTemplate">
        <Image Stretch="UniformToFill" Height="74" Width="60" Source="{Binding Path=Value, Converter={StaticResource imageConverter}}" />
    </DataTemplate>
</ResourceDictionary>!�using System;
using System.Windows;
using System.Windows.Controls;
using DevExpress.Xpf.Grid;

namespace GridDemo {
    public class TotalCellTemplateSelector : DataTemplateSelector {
        public override DataTemplate SelectTemplate(object item, DependencyObject container) {
            GridCellData cellData = item as GridCellData;
            if(cellData != null) {
                try {
                    decimal value = Convert.ToDecimal(cellData.Value);
                    if(value >= 500) return TotalCellTemplate;
                } catch(FormatException) { }
            }
            return base.SelectTemplate(item, container);
        }
        public DataTemplate TotalCellTemplate { get; set; }
    }
}!^
MSBAML```����D@GridDemo, Version=13.1.4.0, Culture=neutral, PublicKeyToken=null#clr-namespace:GridDemoGridDemo\XPresentationFramework, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35RNWindowsBase, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35WSPresentationCore, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35RNSystem.Xaml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089a]DevExpress.Xpf.Core.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49afbDevExpress.Xpf.Grid.v13.1.Core, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49aa]DevExpress.Xpf.Grid.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49alhDevExpress.Xpf.Grid.v13.1.Extensions, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a3-DevExpress.Xpf.Grid.RowPropertyValueConverter RowPropertyValueConverter totalCellTemplate1�PaddingJ�IsHitTestVisible%DevExpress.Xpf.Core.DXDockPanel�StretchJ�RenderTransformOrigin�CenterX�CenterY
�ScaleX�Path�	Converter	�ConverterParameter
�ScaleY�AngleT�X
T�Y�StringFormat�Triggers:�RoutedEventg�	BeginTime��
TargetName��TargetPropertyg�RepeatBehaviorO�KeyTimeO�Value("GridDemo.TotalCellTemplateSelector totalCellTemplateSelectorTotalCellTemplate�D9http://schemas.microsoft.com/winfx/2006/xaml/presentation:x,http://schemas.microsoft.com/winfx/2006/xaml;dx2http://schemas.devexpress.com/winfx/2008/xaml/core@dxg2http://schemas.devexpress.com/winfx/2008/xaml/grid localclr-namespace:GridDemo%B&	&	77&	7��.R�����	#FFF9E9FF$�0,0,-1,0q�$
2, 2, 2, 1q�.._�.+�F�$�arrow��$
�Left=�$�0q�$
Fill=����	#FF000000T����63�K�63���������K�RF���K��}G�����qѮ�e�K�63�K$
0.5,0.5&�$
�Left=�$�Center=�$�13��$�15��z�V�.~��	scale��$6Q�$0Q��$
Data�8$	
TotalScale��
�$
Data�8$	
TotalScale���$
-180Q�T�ArrowDownTransform��$1Q�$
0Q���$�Center=�
����.$�Right=����$Value�$$0.00��:�$FrameworkElement.Loaded�.[������.��U�$00:00:00X�$ArrowDownTransform��$Y�$
Forever��.\���$00:00:00��$0Q���$00:00:00.5000000��$
-1.5Q���$00:00:01��$0Q�8!�<ResourceDictionary
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:dx="http://schemas.devexpress.com/winfx/2008/xaml/core"
    xmlns:dxg="http://schemas.devexpress.com/winfx/2008/xaml/grid"
    xmlns:local="clr-namespace:GridDemo">

    <dxg:RowPropertyValueConverter x:Key="RowPropertyValueConverter" />

    <DataTemplate x:Key="totalCellTemplate1">
        <Border Background="#FFF9E9FF" Margin="0,0,-1,0" Padding="2, 2, 2, 1" IsHitTestVisible="True">
            <dx:DXDockPanel>
                <Path Name="arrow" dx:DXDockPanel.Dock="Left" Margin="0" Stretch="Fill" Fill="#FF000000" Data="F1 M 3.35616,0.740234L 3.35616,-7.40686L -3.35616,-7.40686L -3.35616,0.740234L -6.66667,0.740234L -1.65186e-006,7.40674L 6.66667,0.740234L 3.35616,0.740234 Z " RenderTransformOrigin="0.5,0.5" HorizontalAlignment="Left" VerticalAlignment="Center" Width="13" Height="15">
                    <Path.RenderTransform>
                        <TransformGroup>
                            <ScaleTransform x:Name="scale" CenterX="6" CenterY="0"
                                    ScaleX="{Binding Path=Data, Converter={StaticResource RowPropertyValueConverter}, ConverterParameter=TotalScale}"
                                    ScaleY="{Binding Path=Data, Converter={StaticResource RowPropertyValueConverter}, ConverterParameter=TotalScale}" />
                            <RotateTransform Angle="-180" />
                            <TranslateTransform x:Name="ArrowDownTransform" X="1" Y="0" />
                        </TransformGroup>
                    </Path.RenderTransform>
                </Path>
                <TextBlock VerticalAlignment="Center" Foreground="Black" IsHitTestVisible="True" HorizontalAlignment="Right">
      <TextBlock.Text>
       <Binding Path="Value" StringFormat="$0.00" />
      </TextBlock.Text>
                </TextBlock>
                <dx:DXDockPanel.Triggers>
                    <EventTrigger RoutedEvent="FrameworkElement.Loaded">
                        <BeginStoryboard>
                            <BeginStoryboard.Storyboard>
                                <Storyboard>
                                    <DoubleAnimationUsingKeyFrames BeginTime="00:00:00" Storyboard.TargetName="ArrowDownTransform" Storyboard.TargetProperty="Y" RepeatBehavior="Forever">
                                        <SplineDoubleKeyFrame KeyTime="00:00:00" Value="0" />
                                        <SplineDoubleKeyFrame KeyTime="00:00:00.5000000" Value="-1.5" />
                                        <SplineDoubleKeyFrame KeyTime="00:00:01" Value="0" />
                                    </DoubleAnimationUsingKeyFrames>
                                </Storyboard>
                            </BeginStoryboard.Storyboard>
                        </BeginStoryboard>
                    </EventTrigger>
                </dx:DXDockPanel.Triggers>
            </dx:DXDockPanel>
        </Border>
    </DataTemplate>
    <local:TotalCellTemplateSelector x:Key="totalCellTemplateSelector" TotalCellTemplate="{StaticResource totalCellTemplate1}" />
</ResourceDictionary>!using System;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Ink;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;
using System.Globalization;
using DevExpress.Xpf.Core;

namespace GridDemo {
    public abstract class DecimalValidationRule : ValidationRule {
        public override ValidationResult Validate(object value, CultureInfo cultureInfo) {
            if(!IsValueValid(Convert.ToDecimal(value))) {
                return new ValidationResult(false, ErrorText);
            }
            return ValidationResult.ValidResult;
        }
        public decimal Value { get; set; }
        protected abstract string ErrorText { get; }
        protected abstract bool IsValueValid(decimal value);
    }
    public class IsGreaterThanValidationRule : DecimalValidationRule {
        protected override string ErrorText {
            get { return "The value must be greater than " + Value; }
        }
        public override string ToString() {
            return "is greater than " + Value;
        }
        protected override bool IsValueValid(decimal value) {
            return value > this.Value;
        }
    }
    public class IsGreaterThanOrEqualToValidationRule : DecimalValidationRule {
        protected override string ErrorText {
            get { return "The value must be greater than or equal to " + Value; }
        }
        public override string ToString() {
            return "is greater than or equal to " + Value;
        }
        protected override bool IsValueValid(decimal value) {
            return value >= this.Value;
        }
    }
    public class IsLessThanValidationRule : DecimalValidationRule {
        protected override string ErrorText {
            get { return "The value must be less than " + Value; }
        }
        public override string ToString() {
            return "is less than " + Value;
        }
        protected override bool IsValueValid(decimal value) {
            return value < this.Value;
        }
    }
    public class IsLessThanOrEqualToValidationRule : DecimalValidationRule {
        protected override string ErrorText {
            get { return "The value must be less than or equal to " + Value; }
        }
        public override string ToString() {
            return "is less than or equal to " + Value;
        }
        protected override bool IsValueValid(decimal value) {
            return value <= this.Value;
        }
    }
    public class DoesNotEqualValidationRule : DecimalValidationRule {
        protected override string ErrorText {
            get { return "The value must be not equal " + Value; }
        }
        public override string ToString() {
            return "does not equal " + Value;
        }
        protected override bool IsValueValid(decimal value) {
            return !object.Equals(value, this.Value);
        }
    }

}!�MSBAML```����\XPresentationFramework, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35RNWindowsBase, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35WSPresentationCore, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35RNSystem.Xaml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089a]DevExpress.Xpf.Core.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49afbDevExpress.Xpf.Grid.v13.1.Core, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49aa]DevExpress.Xpf.Grid.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49alhDevExpress.Xpf.Grid.v13.1.Extensions, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a82DevExpress.Xpf.Editors.BytesToImageSourceConverter imageConverter ColumnTemplate$DevExpress.Xpf.Grid.GridColumn$DevExpress.Xpf.Grid.ColumnBase	FieldNameEditSettings$DevExpress.Xpf.Grid.BaseColumnWidth
FixedWidth
Header�D9http://schemas.microsoft.com/winfx/2006/xaml/presentation:x,http://schemas.microsoft.com/winfx/2006/xaml?dxe5http://schemas.devexpress.com/winfx/2008/xaml/editors@dxg2http://schemas.devexpress.com/winfx/2008/xaml/grid%�&	&	��.R���.��*	FieldName+�*EditSettings+�*Width+�*
FixedWidth+�*Header+!�<ResourceDictionary
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:dxe="http://schemas.devexpress.com/winfx/2008/xaml/editors"
    xmlns:dxg="http://schemas.devexpress.com/winfx/2008/xaml/grid">

    <dxe:BytesToImageSourceConverter x:Key="imageConverter" />
    <DataTemplate x:Key="ColumnTemplate">
        <ContentControl>
            <dxg:GridColumn FieldName="{Binding FieldName}" EditSettings="{Binding EditSettings}" Width="{Binding Width}" FixedWidth="{Binding FixedWidth}" Header="{Binding Header}" />
        </ContentControl>
    </DataTemplate>

</ResourceDictionary>!�using DevExpress.Xpf.DemoBase.Helpers;

namespace GridDemo {
    public class VerticalScrollingOptionsViewModel : DemoViewModelBase {
        public VerticalScrollingOptionsViewModel() {
        }
        GridControlDefinition selectedDefinition;
        public GridControlDefinition SelectedDefinition {
            get { return selectedDefinition; }
            set {
                if(selectedDefinition == value)
                    return;
                selectedDefinition = value;
                OnPropertyChanged("SelectedDefinition");
            }
        }
        GridControlDefinitionCollection controlDefinitions;
        public GridControlDefinitionCollection ControlDefinitions {
            get { return controlDefinitions; }
            set {
                controlDefinitions = value;
                if(ControlDefinitions != null && ControlDefinitions.Count > 0)
                    SelectedDefinition = ControlDefinitions[0];
            }
        }
    }
}!�MSBAML```����D@GridDemo, Version=13.1.4.0, Culture=neutral, PublicKeyToken=null#clr-namespace:GridDemoGridDemo\XPresentationFramework, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35RNWindowsBase, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35WSPresentationCore, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35RNSystem.Xaml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089a]DevExpress.Xpf.Core.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49ac_System.Windows.Interactivity, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35("GridDemo.IssueStatusImageConverter IssueStatusImageConverter/)GridDemo.BooleanToDefaultBooleanConverter $ BooleanToDefaultBooleanConverterGridDemo.IdToUriConverter IdToUriConverter3-DevExpress.Xpf.Core.DurationToDoubleConverter DurationToDoubleConverter?9DevExpress.Xpf.Core.BooleanToVisibilityConverterExtension  BooleanToVisibilityConverter 
idTemplate�Name�
TargetName�Path�	Converter.(System.Windows.Interactivity.Interaction	Behaviors("GridDemo.HyperLinkAttachedBehavior statusTemplate^�ToolTip��BitmapScalingMode�D9http://schemas.microsoft.com/winfx/2006/xaml/presentation:x,http://schemas.microsoft.com/winfx/2006/xaml;dx2http://schemas.devexpress.com/winfx/2008/xaml/coreBi:http://schemas.microsoft.com/expression/2010/interactivity localclr-namespace:GridDemo%X&	&	&	
&	&	&	7&	�7��.R���$�Center=��$
link��$_blank��.����$Value�8.�.������$Value�.���.R��$�16��$�16��$�Center=��$Value����$Value�8$NearestNeighbor=�!�<ResourceDictionary
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:dx="http://schemas.devexpress.com/winfx/2008/xaml/core"
    xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity"
    xmlns:local="clr-namespace:GridDemo">

    <local:IssueStatusImageConverter x:Key="IssueStatusImageConverter"/>
    <local:BooleanToDefaultBooleanConverter x:Key="BooleanToDefaultBooleanConverter"/>
    <local:IdToUriConverter x:Key="IdToUriConverter" />
    <dx:DurationToDoubleConverter x:Key="DurationToDoubleConverter" />
    <dx:BooleanToVisibilityConverter x:Key="BooleanToVisibilityConverter"/>

    <DataTemplate x:Key="idTemplate">
        <TextBlock HorizontalAlignment="Center">
            <Hyperlink x:Name="link" TargetName="_blank">
                <Hyperlink.NavigateUri>
                    <Binding Path="Value" Converter="{StaticResource IdToUriConverter}" />
                </Hyperlink.NavigateUri>
                <TextBlock Text="{Binding Path=Value}" />
                <i:Interaction.Behaviors>
                    <local:HyperLinkAttachedBehavior />
                </i:Interaction.Behaviors>
            </Hyperlink>
        </TextBlock>
    </DataTemplate>
    <DataTemplate x:Key="statusTemplate">
        <Image Height="16" Width="16" HorizontalAlignment="Center" ToolTipService.ToolTip="{Binding Path=Value}" Source="{Binding Path=Value, Converter={StaticResource IssueStatusImageConverter}}">
            <RenderOptions.BitmapScalingMode>NearestNeighbor</RenderOptions.BitmapScalingMode>
        </Image>
    </DataTemplate>
</ResourceDictionary>!�using System;
using DevExpress.Xpf.DemoBase.Helpers;
using System.Windows.Input;
using DevExpress.Xpf.Core.Commands;
using System.Diagnostics;

namespace GridDemo {
    public class WCFInstantFeedbackViewModel : DemoViewModelBase {
        bool isUseExtendedDataQuery;
        WcfSCService.SCEntities wcfSCService;

        public bool IsUseExtendedDataQuery {
            get { return isUseExtendedDataQuery; }
            set {
                if(isUseExtendedDataQuery == value)
                    return;
                isUseExtendedDataQuery = value;
                OnPropertyChanged("IsUseExtendedDataQuery");
            }
        }
        public WcfSCService.SCEntities WcfSCService {
            get { return wcfSCService; }
            set {
                if(wcfSCService == value)
                    return;
                wcfSCService = value;
                OnPropertyChanged("WcfSCService");
            }
        }
        public WCFInstantFeedbackViewModel() {
            IsUseExtendedDataQuery = true;
            WcfSCService = new WcfSCService.SCEntities(new Uri("http://demos.devexpress.com/Services/WcfLinqSC/WcfSCService.svc/"));
        }
    }
}!�using System;
using System.Windows.Input;
using DevExpress.Xpo;

namespace GridDemo {
    [Persistent("dbo.SCIssuesDemo")]
    public class Question : XPLiteObject {
        [Key(true)]
        public Guid Oid { get; set; }
        public string Id { get; set; }
        public string Subject { get; set; }
        public DateTime ModifiedOn { get; set; }
        public DateTime CreatedOn { get; set; }
        public string ProductName { get; set; }
        public string TechnologyName { get; set; }
        public bool Urgent { get; set; }
        public string Status { get; set; }
        public Question(Session session) : base(session) { }
        public Question() : base(Session.DefaultSession) { }
    }
}!�MSBAML```����D@GridDemo, Version=13.1.4.0, Culture=neutral, PublicKeyToken=null#clr-namespace:GridDemoGridDemo\XPresentationFramework, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35RNWindowsBase, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35WSPresentationCore, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35RNSystem.Xaml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089c_System.Windows.Interactivity, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35a]DevExpress.Xpf.Core.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a3-DevExpress.Xpf.Core.DurationToDoubleConverter DurationToDoubleConverter?9DevExpress.Xpf.Core.BooleanToVisibilityConverterExtension  BooleanToVisibilityConverter("GridDemo.IssueStatusImageConverter IssueStatusImageConverterGridDemo.IdToUriConverter IdToUriConverter CustomWaitIndicatorStyle��
TargetType'!DevExpress.Xpf.Core.WaitIndicator�Property�Value 
idTemplate�
TargetName�Path�	Converter.(System.Windows.Interactivity.Interaction	Behaviors("GridDemo.HyperLinkAttachedBehavior statusTemplate^�ToolTip��BitmapScalingMode�D9http://schemas.microsoft.com/winfx/2006/xaml/presentation:x,http://schemas.microsoft.com/winfx/2006/xamlBi:http://schemas.microsoft.com/expression/2010/interactivity;dx2http://schemas.devexpress.com/winfx/2008/xaml/core localclr-namespace:GridDemo%�&	&	&	
&	&	&	T7&	�7��".����$Right=����$Bottom=���.R���$�Center=��$_blank��.����$Value�8.�.������$Value�.���.R��$�16��$�16��$�Center=��$Value����$Value�8$NearestNeighbor=�!!<ResourceDictionary
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity"
    xmlns:dx="http://schemas.devexpress.com/winfx/2008/xaml/core"
    xmlns:local="clr-namespace:GridDemo">

    <dx:DurationToDoubleConverter x:Key="DurationToDoubleConverter" />
    <dx:BooleanToVisibilityConverter x:Key="BooleanToVisibilityConverter"/>
    <local:IssueStatusImageConverter x:Key="IssueStatusImageConverter"/>
    <local:IdToUriConverter x:Key="IdToUriConverter" />
    <Style x:Key="CustomWaitIndicatorStyle" TargetType="{x:Type dx:WaitIndicator}">
        <Setter Property="HorizontalAlignment" Value="Right" />
        <Setter Property="VerticalAlignment" Value="Bottom" />
    </Style>
    <DataTemplate x:Key="idTemplate">
        <TextBlock HorizontalAlignment="Center">
            <Hyperlink TargetName="_blank">
                <Hyperlink.NavigateUri>
                    <Binding Path="Value" Converter="{StaticResource IdToUriConverter}" />
                </Hyperlink.NavigateUri>
                <TextBlock Text="{Binding Path=Value}" />
                <i:Interaction.Behaviors>
                    <local:HyperLinkAttachedBehavior />
                </i:Interaction.Behaviors>
            </Hyperlink>
        </TextBlock>
    </DataTemplate>
    <DataTemplate x:Key="statusTemplate">
        <Image Height="16" Width="16" HorizontalAlignment="Center" ToolTipService.ToolTip="{Binding Path=Value}" Source="{Binding Path=Value, Converter={StaticResource IssueStatusImageConverter}}">
            <RenderOptions.BitmapScalingMode>NearestNeighbor</RenderOptions.BitmapScalingMode>
        </Image>
    </DataTemplate>
</ResourceDictionary>!�MSBAML```����D@GridDemo, Version=13.1.4.0, Culture=neutral, PublicKeyToken=null#clr-namespace:GridDemoGridDemoOKmscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089I2clr-namespace:System.Collections;assembly=mscorlibSystem.CollectionsGridDemo.AutoFilterRow\XPresentationFramework, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35RNWindowsBase, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35WSPresentationCore, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35D9http://schemas.microsoft.com/winfx/2006/xaml/presentationRNSystem.Xaml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089:x,http://schemas.microsoft.com/winfx/2006/xamla]DevExpress.Xpf.Core.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a;dx2http://schemas.devexpress.com/winfx/2008/xaml/corefbDevExpress.Xpf.Grid.v13.1.Core, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49aa]DevExpress.Xpf.Grid.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49al	hDevExpress.Xpf.Grid.v13.1.Extensions, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a@dxg2http://schemas.devexpress.com/winfx/2008/xaml/grid	&localclr-namespace:GridDemo	e
aDevExpress.Xpf.DemoBase.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49aAdxdb6http://schemas.devexpress.com/winfx/2008/xaml/demobase
?dxe5http://schemas.devexpress.com/winfx/2008/xaml/editorsDcollections2clr-namespace:System.Collections;assembly=mscorlibDmc;http://schemas.openxmlformats.org/markup-compatibility/2006:d2http://schemas.microsoft.com/expression/blend/2008$
�Stretch=�$
�Stretch=��	Resources
�MergedDictionaries
�SourceGridDemo.DemoDataProvider DemoDataProvider��$-'/GridDemo;component/Themes/generic.xaml?��$E?/GridDemo;component/ModuleResources/AutoFilterRowTemplates.xaml?�%&	.�/
)DevExpress.Xpf.DemoBase.DemoModuleControl(!SupressGroupFramePaddingInOptions.OptionsContent& DevExpress.Xpf.Editors.CheckEditContent)#DevExpress.Xpf.Core.ObjectConverter$Show Auto Filter Row$	�Top=�	IsChecked��Path$View.ShowAutoFilterRow��Mode$TwoWay=�	Content.	%DevExpress.Xpf.Grid.GridControl-
Name$

grid��$
�Stretch=�$
�Stretch=�)#DevExpress.Xpf.Grid.DataControlBaseDesignTimeDataObjectTypeGridDemo.OutlookData"View#DevExpress.Xpf.Grid.TableView-
Name$
gridView��&	 DevExpress.Xpf.Grid.GridViewBase	ShowGroupedColumns.ShowAutoFilterRow.&
 DevExpress.Xpf.Grid.DataViewBase
AllowEditing.	AutoWidth. columnOptionsTemplate,
%ColumnHeaderCustomizationAreaTemplate#[Columns$DevExpress.Xpf.Grid.GridColumn$DevExpress.Xpf.Grid.ColumnBase	FieldName$	OID��$
DevExpress.Xpf.Grid.BaseColumn

Header$Id
MinWidth$50��
Width$50��ReadOnly.-Name$colPriority��$Priority��SortMode$Value=�$40��$40��ColumnFilterMode$DisplayText=�$
From��$	100��$	100��$
ToId��$To$	100��$	100��AutoFilterCondition$Equals=�EditSettings:4DevExpress.Xpf.Editors.Settings.ComboBoxEditSettings82DevExpress.Xpf.Editors.Settings.ButtonEditSettingsIsTextEditable.<6DevExpress.Xpf.Editors.Settings.LookUpEditSettingsBaseValueMember$Id�� 
DisplayMember$
 Name��!ItemsSource!�*Users+
"�Source#"[$
Sent��$	100��$	100��#
GroupInterval$#	DateRange=�$Equals=�60DevExpress.Xpf.Editors.Settings.DateEditSettings60DevExpress.Xpf.Editors.Settings.BaseEditSettings$
DisplayFormat$$d��-%Name$%colHoursActive��$HoursActive��$70��$70��$
Like=�-$%colHasAttachment��$
HasAttachment��$50��$50��$Equals=�!V<local:GridDemoModule x:Class="GridDemo.AutoFilterRow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:dx="http://schemas.devexpress.com/winfx/2008/xaml/core"
    xmlns:dxg="http://schemas.devexpress.com/winfx/2008/xaml/grid"
    xmlns:local="clr-namespace:GridDemo"
 xmlns:dxdb="http://schemas.devexpress.com/winfx/2008/xaml/demobase"
 xmlns:dxe="http://schemas.devexpress.com/winfx/2008/xaml/editors"
 xmlns:collections="clr-namespace:System.Collections;assembly=mscorlib"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    mc:Ignorable="d" d:DesignHeight="400" d:DesignWidth="800"
 HorizontalAlignment="Stretch" VerticalAlignment="Stretch">
    <local:GridDemoModule.Resources>
        <ResourceDictionary>
            <ResourceDictionary.MergedDictionaries>
                <ResourceDictionary Source="/GridDemo;component/Themes/generic.xaml" />
                <ResourceDictionary Source="/GridDemo;component/ModuleResources/AutoFilterRowTemplates.xaml" />
            </ResourceDictionary.MergedDictionaries>
            <local:DemoDataProvider x:Key="DemoDataProvider" />
        </ResourceDictionary>
    </local:GridDemoModule.Resources>

    <dxdb:DemoModuleControl SupressGroupFramePaddingInOptions="False">
        <dxdb:DemoModuleControl.OptionsContent>
            <dxe:CheckEdit Content="Show Auto Filter Row" IsChecked="{Binding Path=View.ShowAutoFilterRow, Mode=TwoWay}" VerticalAlignment="Top" />
        </dxdb:DemoModuleControl.OptionsContent>

        <dxg:GridControl x:Name="grid" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" DesignTimeDataObjectType="local:OutlookData">
            <dxg:GridControl.View>
                <dxg:TableView ShowGroupedColumns="True" ShowAutoFilterRow="True" x:Name="gridView" AllowEditing="True" AutoWidth="True" ColumnHeaderCustomizationAreaTemplate="{StaticResource columnOptionsTemplate}" />
            </dxg:GridControl.View>
            <dxg:GridControl.Columns>
                <dxg:GridColumn FieldName="OID" Header="Id" MinWidth="50" Width="50" ReadOnly="true" />
                <dxg:GridColumn Name="colPriority" FieldName="Priority" SortMode="Value" MinWidth="40" Width="40" ColumnFilterMode="DisplayText" />
                <dxg:GridColumn FieldName="From" MinWidth="100" Width="100" />
                <dxg:GridColumn FieldName="ToId" Header="To" MinWidth="100" Width="100" AutoFilterCondition="Equals">
                    <dxg:GridColumn.EditSettings>
                        <dxe:ComboBoxEditSettings IsTextEditable="False" ValueMember="Id" DisplayMember="Name" ItemsSource="{Binding Users, Source={StaticResource DemoDataProvider}}" />
                    </dxg:GridColumn.EditSettings>
                </dxg:GridColumn>
                <dxg:GridColumn FieldName="Sent" MinWidth="100" Width="100" GroupInterval="DateRange" AutoFilterCondition="Equals">
                    <dxg:GridColumn.EditSettings>
                        <dxe:DateEditSettings DisplayFormat="d" />
                    </dxg:GridColumn.EditSettings>
                </dxg:GridColumn>
                <dxg:GridColumn x:Name="colHoursActive" FieldName="HoursActive" MinWidth="70" Width="70" AutoFilterCondition="Like" />
                <dxg:GridColumn x:Name="colHasAttachment" FieldName="HasAttachment" MinWidth="50" Width="50" AutoFilterCondition="Equals" />
            </dxg:GridControl.Columns>
        </dxg:GridControl>
    </dxdb:DemoModuleControl>
</local:GridDemoModule>!using System;
using System.Windows;
using System.Windows.Data;
using GridDemo;
using DevExpress.Xpf.Editors.Settings;
using DevExpress.Data.Mask;
using DevExpress.Xpf.Editors;
using DevExpress.Xpf.DemoBase;

namespace GridDemo {
    [CodeFile("ModuleResources/AutoFilterRowTemplates(.SL).xaml")]
    [CodeFile("ModuleResources/AutoFilterRowClasses.(cs)")]
 public partial class AutoFilterRow : GridDemoModule {
  public AutoFilterRow() {
   InitializeComponent();
   grid.ItemsSource = OutlookDataGenerator.CreateOutlookDataTable(1000);
            ComboBoxEditSettings settings = new ComboBoxEditSettings() { IsTextEditable = false };
            ComboBoxEdit.SetupComboBoxSettingsEnumItemSource<Priority>(settings);
            colPriority.EditSettings = settings;
  }
 }
}!9MSBAML```����D@GridDemo, Version=13.1.4.0, Culture=neutral, PublicKeyToken=null#clr-namespace:GridDemoGridDemoOKmscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089I2clr-namespace:System.Collections;assembly=mscorlibSystem.CollectionsGridDemo.BandedView\XPresentationFramework, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35RNWindowsBase, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35WSPresentationCore, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35D9http://schemas.microsoft.com/winfx/2006/xaml/presentationRNSystem.Xaml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089:x,http://schemas.microsoft.com/winfx/2006/xamla]DevExpress.Xpf.Core.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a;dx2http://schemas.devexpress.com/winfx/2008/xaml/corefbDevExpress.Xpf.Grid.v13.1.Core, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49aa]DevExpress.Xpf.Grid.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49al	hDevExpress.Xpf.Grid.v13.1.Extensions, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a@dxg2http://schemas.devexpress.com/winfx/2008/xaml/grid	&localclr-namespace:GridDemo	e
aDevExpress.Xpf.DemoBase.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49aAdxdb6http://schemas.devexpress.com/winfx/2008/xaml/demobase
?dxe5http://schemas.devexpress.com/winfx/2008/xaml/editorsDcollections2clr-namespace:System.Collections;assembly=mscorlibDmc;http://schemas.openxmlformats.org/markup-compatibility/2006:d2http://schemas.microsoft.com/expression/blend/2008c_System.Windows.Interactivity, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35Bi:http://schemas.microsoft.com/expression/2010/interactivity$
�Stretch=�$
�Stretch=�.�/
)DevExpress.Xpf.DemoBase.DemoModuleControlOptionsContent��.+�$DevExpress.Xpf.Core.GroupFrame$��Bands Layout Options��$�0,0,0,12q�.���.+�& DevExpress.Xpf.Editors.CheckEdit-Name$showBandsPanelCheckEdit��Content)#DevExpress.Xpf.Core.ObjectConverter$Show Bands Panel$
�0,0,0,4q�	IsChecked��Path$View.ShowBandsPanel��Mode$TwoWay=�-$& allowChangeColumnParentCheckEdit��$ Allow Change Column Parent$
�0,0,0,4q��$"View.AllowChangeColumnParent�$TwoWay=�-$$allowChangeBandParentCheckEdit��$Allow Change Band Parent$
�0,0,0,4q��$ View.AllowChangeBandParent�$TwoWay=�-$+%showBandsInCustomizationFormCheckEdit��$& Show Bands In Customization Form$
�0,0,0,4q��$'!View.ShowBandsInCustomizationForm�$TwoWay=�-$allowBandMovingCheckEdit��$Allow Band Moving$
�0,0,0,4q��$View.AllowBandMoving�$TwoWay=�-$ allowBandResizingCheckEdit��$Allow Band Resizing$
�0,0,0,4q��$View.AllowBandResizing�$TwoWay=�$��Table View Options��$�0,0,0,12q�.���.+�-$autoWidthCheckEdit��$
Auto Width$
�0,0,0,4q��$View.AutoWidth�$TwoWay=�-$%allowPerPixelScrollingCheckEdit��$Allow Per Pixel Scrolling$
�0,0,0,4q��$!View.AllowPerPixelScrolling�$TwoWay=�-	$ showAutoFilterRowCheckEdit��$Show Auto Filter Row$
�0,0,0,4q��$View.ShowAutoFilterRow�$TwoWay=�-
$allowMovingCheckEdit��$Allow Moving$
�0,0,0,4q��$View.AllowColumnMoving�$TwoWay=�-$allowResizingCheckEdit��$Allow Resizing$
�0,0,0,4q��$View.AllowResizing�$TwoWay=�Content.%DevExpress.Xpf.Grid.GridControl-Name$
grid��Bands)#DevExpress.Xpf.Grid.GridControlBand$DevExpress.Xpf.Grid.BaseColumn
	Header$
	Main
Columns.
$DevExpress.Xpf.Grid.GridColumn$	DevExpress.Xpf.Grid.ColumnBase		FieldName$	Trademark��$Category��"
DevExpress.Xpf.Grid.BandBase
GridRow$1�


GridColumn$
0�$Model��$1�$
1�	EditSettings60DevExpress.Xpf.Editors.Settings.TextEditSettings$Price��$2�$
0�MaskType$
Numeric=�MaskUseAsDisplayFormat.Mask$c��MaskCulture$en-US��$DeliveryDate��$	
Delivery Date$2�$
1�$	IsInStock��$		In Stock?$2�$
2�$	Perfomance Attributes.
$HP��$	Cyl��$1�$Liter��$	Capacity$1�$TransmissSpeedCount��$	
# of Gears$2�$TransmissAutomatic��$	Automatic Transmission$2�$
	Picture.
$ImageSource��$
	Icon	CellTemplate��.R�& DevExpress.Xpf.Editors.ImageEdit$�55��Stretch$
Uniform=�$�Center=�$
�0,3,0,3q�ShowMenu.
Source�$Value�View#
DevExpress.Xpf.Grid.TableView

	AutoWidth.
AllowPerPixelScrolling.
ShowAutoFilterRow.
AllowChangeBandParent.
AllowChangeColumnParent.!<local:GridDemoModule x:Class="GridDemo.BandedView"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:dx="http://schemas.devexpress.com/winfx/2008/xaml/core"
    xmlns:dxg="http://schemas.devexpress.com/winfx/2008/xaml/grid"
    xmlns:local="clr-namespace:GridDemo"
 xmlns:dxdb="http://schemas.devexpress.com/winfx/2008/xaml/demobase"
 xmlns:dxe="http://schemas.devexpress.com/winfx/2008/xaml/editors"
 xmlns:collections="clr-namespace:System.Collections;assembly=mscorlib"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity"
    mc:Ignorable="d" d:DesignHeight="400" d:DesignWidth="800"
 HorizontalAlignment="Stretch" VerticalAlignment="Stretch">

    <dxdb:DemoModuleControl>
        <dxdb:DemoModuleControl.OptionsContent>
            <StackPanel>
                <dx:GroupFrame Header="Bands Layout Options" Margin="0,0,0,12">
                    <StackPanel>
                        <dxe:CheckEdit x:Name="showBandsPanelCheckEdit" Content="Show Bands Panel" IsChecked="{Binding Path=View.ShowBandsPanel, Mode=TwoWay}" Margin="0,0,0,4"/>
                        <dxe:CheckEdit x:Name="allowChangeColumnParentCheckEdit" Content="Allow Change Column Parent" IsChecked="{Binding Path=View.AllowChangeColumnParent, Mode=TwoWay}" Margin="0,0,0,4"/>
                        <dxe:CheckEdit x:Name="allowChangeBandParentCheckEdit" Content="Allow Change Band Parent" IsChecked="{Binding Path=View.AllowChangeBandParent, Mode=TwoWay}" Margin="0,0,0,4"/>
                        <dxe:CheckEdit x:Name="showBandsInCustomizationFormCheckEdit" Content="Show Bands In Customization Form" IsChecked="{Binding Path=View.ShowBandsInCustomizationForm, Mode=TwoWay}" Margin="0,0,0,4"/>
                        <dxe:CheckEdit x:Name="allowBandMovingCheckEdit" Content="Allow Band Moving" IsChecked="{Binding Path=View.AllowBandMoving, Mode=TwoWay}" Margin="0,0,0,4"/>
                        <dxe:CheckEdit x:Name="allowBandResizingCheckEdit" Content="Allow Band Resizing" IsChecked="{Binding Path=View.AllowBandResizing, Mode=TwoWay}" Margin="0,0,0,4"/>
                    </StackPanel>
                </dx:GroupFrame>
                <dx:GroupFrame Header="Table View Options" Margin="0,0,0,12">
                    <StackPanel>
                        <dxe:CheckEdit x:Name="autoWidthCheckEdit" Content="Auto Width" IsChecked="{Binding Path=View.AutoWidth, Mode=TwoWay}" Margin="0,0,0,4"/>
                        <dxe:CheckEdit x:Name="allowPerPixelScrollingCheckEdit" Content="Allow Per Pixel Scrolling" IsChecked="{Binding Path=View.AllowPerPixelScrolling, Mode=TwoWay}" Margin="0,0,0,4"/>
                        <dxe:CheckEdit x:Name="showAutoFilterRowCheckEdit" Content="Show Auto Filter Row" IsChecked="{Binding Path=View.ShowAutoFilterRow, Mode=TwoWay}" Margin="0,0,0,4"/>
                        <dxe:CheckEdit x:Name="allowMovingCheckEdit" Content="Allow Moving" IsChecked="{Binding Path=View.AllowColumnMoving, Mode=TwoWay}" Margin="0,0,0,4"/>
                        <dxe:CheckEdit x:Name="allowResizingCheckEdit" Content="Allow Resizing" IsChecked="{Binding Path=View.AllowResizing, Mode=TwoWay}" Margin="0,0,0,4"/>
                    </StackPanel>
                </dx:GroupFrame>
            </StackPanel>
        </dxdb:DemoModuleControl.OptionsContent>
        <dxg:GridControl x:Name="grid">
            <dxg:GridControl.Bands>
                <dxg:GridControlBand Header="Main">
                    <dxg:GridColumn FieldName="Trademark"/>
                    <dxg:GridColumn FieldName="Category" dxg:BandBase.GridRow="1" dxg:BandBase.GridColumn="0"/>
                    <dxg:GridColumn FieldName="Model" dxg:BandBase.GridRow="1" dxg:BandBase.GridColumn="1">
                        <dxg:GridColumn.EditSettings>
                            <dxe:TextEditSettings />
                        </dxg:GridColumn.EditSettings>
                    </dxg:GridColumn>
                    <dxg:GridColumn FieldName="Price" dxg:BandBase.GridRow="2" dxg:BandBase.GridColumn="0">
                        <dxg:GridColumn.EditSettings>
                            <dxe:TextEditSettings MaskType="Numeric" MaskUseAsDisplayFormat="True" Mask="c" MaskCulture="en-US" />
                        </dxg:GridColumn.EditSettings>
                    </dxg:GridColumn>
                    <dxg:GridColumn FieldName="DeliveryDate" Header="Delivery Date" dxg:BandBase.GridRow="2" dxg:BandBase.GridColumn="1"/>
                    <dxg:GridColumn FieldName="IsInStock" Header="In Stock?" dxg:BandBase.GridRow="2" dxg:BandBase.GridColumn="2"/>
                </dxg:GridControlBand>
                <dxg:GridControlBand Header="Perfomance Attributes">
                    <dxg:GridColumn FieldName="HP"/>
                    <dxg:GridColumn FieldName="Cyl" dxg:BandBase.GridRow="1"/>
                    <dxg:GridColumn FieldName="Liter" Header="Capacity" dxg:BandBase.GridRow="1"/>
                    <dxg:GridColumn FieldName="TransmissSpeedCount" Header="# of Gears" dxg:BandBase.GridRow="2"/>
                    <dxg:GridColumn FieldName="TransmissAutomatic" Header="Automatic Transmission" dxg:BandBase.GridRow="2"/>
                </dxg:GridControlBand>
                <dxg:GridControlBand Header="Picture">
                    <dxg:GridColumn FieldName="ImageSource" Header="Icon">
                        <dxg:GridColumn.CellTemplate>
                            <DataTemplate>
                                <dxe:ImageEdit Height="55" Stretch="Uniform" Source="{Binding Path=Value}" HorizontalAlignment="Center" Margin="0,3,0,3" ShowMenu="False" />
                            </DataTemplate>
                        </dxg:GridColumn.CellTemplate>
                    </dxg:GridColumn>
                </dxg:GridControlBand>
            </dxg:GridControl.Bands>
            <dxg:GridControl.View>
                <dxg:TableView AutoWidth="True" AllowPerPixelScrolling="True" ShowAutoFilterRow="False" AllowChangeBandParent="True" AllowChangeColumnParent="True"/>
            </dxg:GridControl.View>
        </dxg:GridControl>
    </dxdb:DemoModuleControl>
</local:GridDemoModule>!�using System;
using System.Windows;
using System.Windows.Data;
using GridDemo;
using DevExpress.Xpf.Editors.Settings;
using DevExpress.Data.Mask;
using DevExpress.Xpf.Editors;
using DevExpress.Xpf.DemoBase.DataClasses;

namespace GridDemo {
 public partial class BandedView : GridDemoModule {
  public BandedView() {
   InitializeComponent();
            grid.ItemsSource = CarsData.NewDataSource;
  }
 }
}!�MSBAML```����D@GridDemo, Version=13.1.4.0, Culture=neutral, PublicKeyToken=null#clr-namespace:GridDemoGridDemoOKmscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089I2clr-namespace:System.Collections;assembly=mscorlibSystem.Collections1&clr-namespace:System;assembly=mscorlibSystem%GridDemo.BindingToDynamicObject\XPresentationFramework, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35RNWindowsBase, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35WSPresentationCore, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35D9http://schemas.microsoft.com/winfx/2006/xaml/presentationRNSystem.Xaml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089:x,http://schemas.microsoft.com/winfx/2006/xamla]DevExpress.Xpf.Core.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a;dx2http://schemas.devexpress.com/winfx/2008/xaml/corefbDevExpress.Xpf.Grid.v13.1.Core, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49aa]DevExpress.Xpf.Grid.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49al	hDevExpress.Xpf.Grid.v13.1.Extensions, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a@dxg2http://schemas.devexpress.com/winfx/2008/xaml/grid	?dxe5http://schemas.devexpress.com/winfx/2008/xaml/editorse
aDevExpress.Xpf.DemoBase.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49aAdxdb6http://schemas.devexpress.com/winfx/2008/xaml/demobase
"localclr-namespace:GridDemo
Dcollections2clr-namespace:System.Collections;assembly=mscorlib
0sys&clr-namespace:System;assembly=mscorlib
Dmc;http://schemas.openxmlformats.org/markup-compatibility/2006
:d2http://schemas.microsoft.com/expression/blend/2008
�	Resources
)#GridDemo.StringStateToBoolConverter StringStateToBoolConverter�%&	.�/
)DevExpress.Xpf.DemoBase.DemoModuleControl(!SupressGroupFramePaddingInOptions.OptionsContent�.+���-��Name$optionsPanel��$	�180��$	�230��.+���$
�0,0,0,3q�$��New column field name:��%DevExpress.Xpf.Editors.TextEdit-Name$FieldNameBox��%DevExpress.Xpf.Editors.BaseEditValidateOnTextInput.MaskType$RegEx=�Mask$[a-zA-Z_]\w*��$
�0,0,0,5q�NullText$#Enter new column name here...��		NullValue$	
New Column��)#DevExpress.Xpf.Editors.TextEditBase
Text
�*
ColumnName+�Mode$TwoWay=��UpdateSourceTrigger$PropertyChanged=���$
�0,0,0,3q�$��New column type:��)#DevExpress.Xpf.Editors.ComboBoxEdit-
Name$

TypeBox��$�0,0,0,12q�
���'!DevExpress.Xpf.Editors.ButtonEditIsTextEditable.+%DevExpress.Xpf.Editors.LookUpEditBase
SelectedIndex�*	TypeIndex+$TwoWay=�Items-	'DevExpress.Xpf.Editors.ComboBoxEditItem	$
�Integer��	$�String��	$�DateTime��	$
�Boolean����$
�0,0,0,3q�$��New column default value:��%
DevExpress.Xpf.Editors.SpinEdit
-
Name$DefaultValueBoxSpin��$�0,0,0,12q�
Value$0~�
IsFloatValue.y���Path$	TypeIndex��	Converter/)DevExpress.Xpf.Core.EnumToObjectConverterDefaultValue$	Collapsed��
Values
��System.Collections.Generic.Dictionary`2[[System.Object, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089],[System.Object, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]],
&DevExpress.Xpf.Core.EnumObjectProvider
 Key0
Value$
Visible��-$DefaultValueBoxText��$�0,0,0,12q�$$Enter new column value here...��y��$	TypeIndex�$	Collapsed��

1$
Visible��%DevExpress.Xpf.Editors.DateEdit-Name$DefaultValueBoxDate��$�0,0,0,12q�
���y��$	TypeIndex�$	Collapsed��

2$
Visible��& DevExpress.Xpf.Editors.CheckEdit-Name$DefaultValueBoxCheck��$�0,0,0,12q�	IsChecked$
TrueY�$�Center=�y��$	TypeIndex�$	Collapsed��

3$
Visible���-�Name$CreateNewColBtn��$�0,0,0,12q�$�Create new column��{��$
ColumnName�#[Content.%DevExpress.Xpf.Grid.GridControl-	Name$
grid��Columns$DevExpress.Xpf.Grid.GridColumn$DevExpress.Xpf.Grid.BaseColumn
 Header)#DevExpress.Xpf.Core.ObjectConverter$ Id$DevExpress.Xpf.Grid.ColumnBase!Binding!�$RowData.Row.Id�$TwoWay=�$ 
First Name!�$RowData.Row.FirstName�$TwoWay=�$ 	Last Name!�$RowData.Row.LastName�$TwoWay=�"View"#DevExpress.Xpf.Grid.TableView-
$
�View��#ShowAutoFilterRow#.$NewItemRowPosition$	$Top=�%AllowPerPixelScrolling%.!`<local:GridDemoModule x:Class="GridDemo.BindingToDynamicObject"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:dx="http://schemas.devexpress.com/winfx/2008/xaml/core"
    xmlns:dxg="http://schemas.devexpress.com/winfx/2008/xaml/grid"
 xmlns:dxe="http://schemas.devexpress.com/winfx/2008/xaml/editors"
 xmlns:dxdb="http://schemas.devexpress.com/winfx/2008/xaml/demobase"
    xmlns:local="clr-namespace:GridDemo"
    xmlns:collections="clr-namespace:System.Collections;assembly=mscorlib"
    xmlns:sys="clr-namespace:System;assembly=mscorlib"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    mc:Ignorable="d" d:DesignHeight="400" d:DesignWidth="800">
    <local:GridDemoModule.Resources>
        <local:StringStateToBoolConverter  x:Key="StringStateToBoolConverter"></local:StringStateToBoolConverter>
    </local:GridDemoModule.Resources>
    <dxdb:DemoModuleControl SupressGroupFramePaddingInOptions="False">
        <dxdb:DemoModuleControl.OptionsContent>
            <Grid>
                <StackPanel MinWidth="180" MaxWidth="230" x:Name="optionsPanel">
                    <TextBlock Margin="0,0,0,3" Text="New column field name:"/>
                    <dxe:TextEdit x:Name="FieldNameBox" ValidateOnTextInput="True" MaskType="RegEx" Mask="[a-zA-Z_]\w*"  Margin="0,0,0,5" NullText="Enter new column name here..." NullValue="New Column"
                                  Text="{Binding ColumnName, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
                              Validate="FieldNameBox_Validate"/>
                    <TextBlock Margin="0,0,0,3" Text="New column type:"/>
                    <dxe:ComboBoxEdit x:Name="TypeBox" Margin="0,0,0,12" SelectedIndex="{Binding TypeIndex, Mode=TwoWay}" Foreground="Black" IsTextEditable="False">
                        <dxe:ComboBoxEdit.Items>
                            <dxe:ComboBoxEditItem Content="Integer"/>
                            <dxe:ComboBoxEditItem Content="String"/>
                            <dxe:ComboBoxEditItem Content="DateTime"/>
                            <dxe:ComboBoxEditItem Content="Boolean"/>
                        </dxe:ComboBoxEdit.Items>
                    </dxe:ComboBoxEdit>
                    <TextBlock Margin="0,0,0,3" Text="New column default value:"/>
                    <dxe:SpinEdit x:Name="DefaultValueBoxSpin" Margin="0,0,0,12" Value="0" IsFloatValue="False">
                        <dxe:SpinEdit.Visibility>
                            <Binding Path="TypeIndex">
                                <Binding.Converter>
                                    <dx:EnumToObjectConverter DefaultValue="Collapsed">
                                        <dx:EnumToObjectConverter.Values>
                                            <dx:EnumObjectProvider x:Key="0" Value="Visible"/>
                                        </dx:EnumToObjectConverter.Values>
                                    </dx:EnumToObjectConverter>
                                </Binding.Converter>
                            </Binding>
                        </dxe:SpinEdit.Visibility>
                    </dxe:SpinEdit>
                    <dxe:TextEdit x:Name="DefaultValueBoxText" Margin="0,0,0,12" NullText="Enter new column value here...">
                        <dxe:TextEdit.Visibility>
                            <Binding Path="TypeIndex">
                                <Binding.Converter>
                                    <dx:EnumToObjectConverter DefaultValue="Collapsed">
                                        <dx:EnumToObjectConverter.Values>
                                            <dx:EnumObjectProvider x:Key="1" Value="Visible"/>
                                        </dx:EnumToObjectConverter.Values>
                                    </dx:EnumToObjectConverter>
                                </Binding.Converter>
                            </Binding>
                        </dxe:TextEdit.Visibility>
                    </dxe:TextEdit>
                    <dxe:DateEdit x:Name="DefaultValueBoxDate" Margin="0,0,0,12" Foreground="Black">
                        <dxe:DateEdit.Visibility>
                            <Binding Path="TypeIndex">
                                <Binding.Converter>
                                    <dx:EnumToObjectConverter DefaultValue="Collapsed">
                                        <dx:EnumToObjectConverter.Values>
                                            <dx:EnumObjectProvider x:Key="2" Value="Visible"/>
                                        </dx:EnumToObjectConverter.Values>
                                    </dx:EnumToObjectConverter>
                                </Binding.Converter>
                            </Binding>
                        </dxe:DateEdit.Visibility>
                    </dxe:DateEdit>
                    <dxe:CheckEdit x:Name="DefaultValueBoxCheck" Margin="0,0,0,12" IsChecked="True" HorizontalAlignment="Center" >
                        <dxe:CheckEdit.Visibility>
                            <Binding Path="TypeIndex">
                                <Binding.Converter>
                                    <dx:EnumToObjectConverter DefaultValue="Collapsed">
                                        <dx:EnumToObjectConverter.Values>
                                            <dx:EnumObjectProvider x:Key="3" Value="Visible"/>
                                        </dx:EnumToObjectConverter.Values>
                                    </dx:EnumToObjectConverter>
                                </Binding.Converter>
                            </Binding>
                        </dxe:CheckEdit.Visibility>
                    </dxe:CheckEdit>
                    <Button x:Name="CreateNewColBtn" Margin="0,0,0,12" Content="Create new column" Click="CreateNewColBtn_Click"
                    IsEnabled="{Binding Path=ColumnName, Converter={StaticResource StringStateToBoolConverter}}"/>
                </StackPanel>
            </Grid>
        </dxdb:DemoModuleControl.OptionsContent>
        <dxg:GridControl x:Name="grid">
            <dxg:GridControl.Columns>
                <dxg:GridColumn Header="Id" Binding="{Binding Path=RowData.Row.Id, Mode=TwoWay}"/>
                <dxg:GridColumn Header="First Name" Binding="{Binding Path=RowData.Row.FirstName, Mode=TwoWay}"/>
                <dxg:GridColumn Header="Last Name" Binding="{Binding Path=RowData.Row.LastName, Mode=TwoWay}"/>
            </dxg:GridControl.Columns>
            <dxg:GridControl.View>
                <dxg:TableView Name="View"  ShowAutoFilterRow="True" NewItemRowPosition="Top" AllowPerPixelScrolling="True"/>
            </dxg:GridControl.View>
        </dxg:GridControl>
    </dxdb:DemoModuleControl>
</local:GridDemoModule>!�using System;
using System.Collections.Generic;
using System.Windows;
using System.Windows.Data;
using DevExpress.Xpf.Grid;
using System.Dynamic;
using System.Collections.ObjectModel;
using DevExpress.Data;
using System.ComponentModel;
using DevExpress.Xpf.DemoBase;

namespace GridDemo {
    [CodeFile("ModuleResources/BindingToDynamicObjectClasses.(cs)")]
    public partial class BindingToDynamicObject : GridDemoModule {
        static string[] FirstNames = new string[] { "Anne", "Bob", "Michael", "Mike", "Bryan", "Steve", "Alex", "Don", "David", "Sandra", "Samantha", "Jim", "Jo" };
        static string[] LastNames = new string[] { "Dodsworth", "Smith", "Miller", "Vargas", "Mares", "Ralls", "Seamans", "Myer", "Moreland", "Walton", "Masters", "Berry", "Hines" };
        static Random rnd = new Random();
        DynamicBindingList list = new DynamicBindingList();
        public BindingToDynamicObject() {
            InitializeComponent();
            optionsPanel.DataContext = new NewColumnModel();
            for(int i = 0; i < 50; i++) {
                DynamicDictionary dictionary = new DynamicDictionary();
                dictionary.SetValue("Id", i);
                dictionary.SetValue("FirstName", FirstNames[rnd.Next(0, FirstNames.Length)]);
                dictionary.SetValue("LastName", LastNames[rnd.Next(0, LastNames.Length)]);
                list.Add(dictionary);
            }
            grid.ItemsSource = list;
        }
        private void CreateNewColBtn_Click(object sender, RoutedEventArgs e) {
            CreateNewColumn();
            FieldNameBox.Text = "";
        }

        void CreateNewColumn() {
            string fieldName = FieldNameBox.Text;
            for(int i = 0; i < list.Count; i++) {
                ((DynamicDictionary)list[i]).SetValue(fieldName, GetDefaultValue());
            }
            GridColumn column = new GridColumn();
            column.Binding = new Binding("RowData.Row." + fieldName) { Mode = BindingMode.TwoWay };
            column.Header = fieldName;
            grid.Columns.Add(column);
        }

        private object GetDefaultValue() {
            switch(TypeBox.SelectedIndex) {
                case 0: return ((int)DefaultValueBoxSpin.Value);
                case 1: return DefaultValueBoxText.Text;
                case 2: return DefaultValueBoxDate.DateTime;
                case 3: return DefaultValueBoxCheck.IsChecked;
            }
            return null;
        }

        private UnboundColumnType GetNewColunUnboundType() {
            switch(TypeBox.SelectedIndex) {
                case 0: return UnboundColumnType.Integer;
                case 1: return UnboundColumnType.String;
                case 2: return UnboundColumnType.DateTime;
                case 3: return UnboundColumnType.Boolean;
            }
            return UnboundColumnType.Object;
        }

        void FieldNameBox_Validate(object sender, DevExpress.Xpf.Editors.ValidationEventArgs e) {
            object value = e.Value;
            if(value != null) {
                if(!IsValidFieldName(value.ToString())) {
                    e.ErrorContent = "A column bound to the same field in the data source already exists.";
                    e.IsValid = false;
                    return;
                }
            }
        }
        bool IsValidFieldName(string name) {
            if(grid == null)
                return false;
            foreach(GridColumn column in grid.Columns) {
                string path = ((Binding)column.Binding).Path.Path;
                path = path.Substring(12);
                if(path == name)
                    return false;
            }
            return true;
        }
    }
}!MSBAML```����D@GridDemo, Version=13.1.4.0, Culture=neutral, PublicKeyToken=null#clr-namespace:GridDemoGridDemoOKmscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089I2clr-namespace:System.Collections;assembly=mscorlibSystem.Collections1&clr-namespace:System;assembly=mscorlibSystemGridDemo.BindingToXML\XPresentationFramework, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35RNWindowsBase, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35WSPresentationCore, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35D9http://schemas.microsoft.com/winfx/2006/xaml/presentationRNSystem.Xaml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089:x,http://schemas.microsoft.com/winfx/2006/xamla]DevExpress.Xpf.Core.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a;dx2http://schemas.devexpress.com/winfx/2008/xaml/corefbDevExpress.Xpf.Grid.v13.1.Core, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49aa]DevExpress.Xpf.Grid.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49al	hDevExpress.Xpf.Grid.v13.1.Extensions, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a@dxg2http://schemas.devexpress.com/winfx/2008/xaml/grid	?dxe5http://schemas.devexpress.com/winfx/2008/xaml/editorse
aDevExpress.Xpf.DemoBase.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49aAdxdb6http://schemas.devexpress.com/winfx/2008/xaml/demobase
"localclr-namespace:GridDemo
Dcollections2clr-namespace:System.Collections;assembly=mscorlib
0sys&clr-namespace:System;assembly=mscorlib
Dmc;http://schemas.openxmlformats.org/markup-compatibility/2006
:d2http://schemas.microsoft.com/expression/blend/2008
�	Resources
#GridDemo.XmlDateTimeConverter XmlDateTimeConverter"GridDemo.XmlIntegerConverter XmlIntegerConverter�%&	&	.�/
)DevExpress.Xpf.DemoBase.DemoModuleControlContent.�.+�%DevExpress.Xpf.Grid.GridControl-Name$
grid��Columns$DevExpress.Xpf.Grid.GridColumn$DevExpress.Xpf.Grid.BaseColumn
Header)#DevExpress.Xpf.Core.ObjectConverter$IdWidth$50��$DevExpress.Xpf.Grid.ColumnBaseBinding��Path$RowData.Row[Id].InnerText��RelativeSource��*Self+	�Mode$	TwoWay=�
�	Converter#
[EditSettings6	0DevExpress.Xpf.Editors.Settings.SpinEditSettings		IsFloatValue.$
First Name�$& RowData.Row[FirstName].InnerText���*Self+$	TwoWay=�6
0DevExpress.Xpf.Editors.Settings.TextEditSettings
60DevExpress.Xpf.Editors.Settings.BaseEditSettings
	NullValue$
��$	Last Name�$%RowData.Row[LastName].InnerText���*Self+$	TwoWay=�
$
��$	Job�$%RowData.Row[JobTitle].InnerText���*Self+$	TwoWay=�
$
��$
Email Address$	200���$)#RowData.Row[EmailAddress].InnerText���*Self+$	TwoWay=�
$
��$	BirthDate$	100���$& RowData.Row[BirthDate].InnerText���*Self+$	TwoWay=�#
[View#DevExpress.Xpf.Grid.TableView	AutoWidth.ShowAutoFilterRow.AllowPerPixelScrolling.!�<local:GridDemoModule x:Class="GridDemo.BindingToXML"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:dx="http://schemas.devexpress.com/winfx/2008/xaml/core"
    xmlns:dxg="http://schemas.devexpress.com/winfx/2008/xaml/grid"
 xmlns:dxe="http://schemas.devexpress.com/winfx/2008/xaml/editors"
 xmlns:dxdb="http://schemas.devexpress.com/winfx/2008/xaml/demobase"
    xmlns:local="clr-namespace:GridDemo"
    xmlns:collections="clr-namespace:System.Collections;assembly=mscorlib"
    xmlns:sys="clr-namespace:System;assembly=mscorlib"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    mc:Ignorable="d" d:DesignHeight="400" d:DesignWidth="800">
    <local:GridDemoModule.Resources>
        <local:XmlDateTimeConverter x:Key="XmlDateTimeConverter"/>
        <local:XmlIntegerConverter x:Key="XmlIntegerConverter"/>
    </local:GridDemoModule.Resources>
    <dxdb:DemoModuleControl>
        <Grid>
            <dxg:GridControl x:Name="grid">
                <dxg:GridControl.Columns>
                    <dxg:GridColumn Header="Id" Width="50" Binding="{Binding Path=RowData.Row[Id].InnerText, RelativeSource={RelativeSource Self}, Mode=TwoWay, Converter={StaticResource XmlIntegerConverter}}">
                        <dxg:GridColumn.EditSettings>
                            <dxe:SpinEditSettings IsFloatValue="False" />
                        </dxg:GridColumn.EditSettings>
                    </dxg:GridColumn>
                    <dxg:GridColumn Header="First Name" Binding="{Binding Path=RowData.Row[FirstName].InnerText, RelativeSource={RelativeSource Self}, Mode=TwoWay}">
                        <dxg:GridColumn.EditSettings>
                            <dxe:TextEditSettings NullValue=""/>
                        </dxg:GridColumn.EditSettings>
                    </dxg:GridColumn>
                    <dxg:GridColumn Header="Last Name" Binding="{Binding Path=RowData.Row[LastName].InnerText, RelativeSource={RelativeSource Self}, Mode=TwoWay}">
                        <dxg:GridColumn.EditSettings>
                            <dxe:TextEditSettings NullValue=""/>
                        </dxg:GridColumn.EditSettings>
                    </dxg:GridColumn>
                    <dxg:GridColumn Header="Job" Binding="{Binding Path=RowData.Row[JobTitle].InnerText, RelativeSource={RelativeSource Self}, Mode=TwoWay}">
                        <dxg:GridColumn.EditSettings>
                            <dxe:TextEditSettings NullValue=""/>
                        </dxg:GridColumn.EditSettings>
                    </dxg:GridColumn>
                    <dxg:GridColumn Header="Email Address" Width="200" Binding="{Binding Path=RowData.Row[EmailAddress].InnerText, RelativeSource={RelativeSource Self}, Mode=TwoWay}">
                        <dxg:GridColumn.EditSettings>
                            <dxe:TextEditSettings NullValue=""/>
                        </dxg:GridColumn.EditSettings>
                    </dxg:GridColumn>
                    <dxg:GridColumn Header="BirthDate" Width="100" Binding="{Binding Path=RowData.Row[BirthDate].InnerText, RelativeSource={RelativeSource Self}, Mode=TwoWay, Converter={StaticResource XmlDateTimeConverter}}">
                    </dxg:GridColumn>
                </dxg:GridControl.Columns>
                <dxg:GridControl.View>
                    <dxg:TableView AutoWidth="True" ShowAutoFilterRow="True" AllowPerPixelScrolling="True"/>
                </dxg:GridControl.View>
            </dxg:GridControl>
        </Grid>
    </dxdb:DemoModuleControl>
</local:GridDemoModule>!�using System.Collections.Generic;
using System.IO;
using System.Reflection;
using System.Xml.Linq;
using DevExpress.Xpf.DemoBase.DataClasses;
using DevExpress.Xpf.DemoBase;
using System.Xml;

namespace GridDemo {
    [CodeFile("ModuleResources/BindingToXMLClasses.(cs)")]
    public partial class BindingToXML : GridDemoModule {
        public BindingToXML() {
            InitializeComponent();
            Assembly assembly = typeof(BindingToXML).Assembly;
            Stream stream = EmployeesWithPhotoData.GetDataStream();
            XmlDocument document = new XmlDocument();
            document.Load(stream);
            grid.ItemsSource = document.SelectNodes("/Employees/Employee");
        }
    }
}!MSBAML```����OKmscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089M4clr-namespace:System.Globalization;assembly=mscorlibSystem.GlobalizationD@GridDemo, Version=13.1.4.0, Culture=neutral, PublicKeyToken=null#clr-namespace:GridDemoGridDemo#clr-namespace:GridDemoGridDemoI2clr-namespace:System.Collections;assembly=mscorlibSystem.Collections1&clr-namespace:System;assembly=mscorlibSystemGridDemo.CardTemplates\XPresentationFramework, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35RNWindowsBase, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35WSPresentationCore, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35D9http://schemas.microsoft.com/winfx/2006/xaml/presentationRNSystem.Xaml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089:x,http://schemas.microsoft.com/winfx/2006/xamlGglobal4clr-namespace:System.Globalization;assembly=mscorlib)dxdemoclr-namespace:GridDemoa]DevExpress.Xpf.Core.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a;dx2http://schemas.devexpress.com/winfx/2008/xaml/coreFdxt<http://schemas.devexpress.com/winfx/2008/xaml/core/themekeysfbDevExpress.Xpf.Grid.v13.1.Core, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49aa]DevExpress.Xpf.Grid.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49al	hDevExpress.Xpf.Grid.v13.1.Extensions, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a@dxg2http://schemas.devexpress.com/winfx/2008/xaml/grid	?dxe5http://schemas.devexpress.com/winfx/2008/xaml/editorsJdxet?http://schemas.devexpress.com/winfx/2008/xaml/editors/themekeyse
aDevExpress.Xpf.DemoBase.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49aAdxdb6http://schemas.devexpress.com/winfx/2008/xaml/demobase
"localclr-namespace:GridDemo
Dcollections2clr-namespace:System.Collections;assembly=mscorlib
0sys&clr-namespace:System;assembly=mscorlib
Dmc;http://schemas.openxmlformats.org/markup-compatibility/2006
:d2http://schemas.microsoft.com/expression/blend/2008
�	Resources
�MergedDictionaries
�Source"System.Collections.ArrayList CardHeaderTemplates EMailOptions 
CardTemplates��$-'/GridDemo;component/Themes/generic.xaml?��$E?/GridDemo;component/ModuleResources/CardTemplatesResources.xaml?�%�&	&	C&	���None����
	Full Name����Photo and Full Name����Default����
Cell Template����Row Template����Default����Tabbed Details����Expandable Notes��.�/
)DevExpress.Xpf.DemoBase.DemoModuleControlOptionsContent����Orientation$Vertical=�.+�$DevExpress.Xpf.Core.GroupFrame$��Card Header��$
�0,0,0,4q�.�("DevExpress.Xpf.Editors.ListBoxEdit-$�cardHeaderTemplateListBox��
SelectedIndex$1�%DevExpress.Xpf.Editors.BaseEdit
ShowBorder.ItemsSource#��Z�
StyleSettings:4DevExpress.Xpf.Editors.RadioListBoxEditStyleSettings$��
Card Contents��$
�0,0,0,4q�.�-$�cardTemplateListBox��.$1�#��Z�-$�eMailTemplateGroupBox��$��E-mail Template��$
�0,0,0,0q�.�-$�eMailTemplateListBox��{�..$1�#��Z�	Content.	%DevExpress.Xpf.Grid.GridControl-$
�grid��$�0�'
!DevExpress.Xpf.DemoBase.NWindData
	Employees)	#DevExpress.Xpf.Grid.DataControlBase	ItemsSource#Z
Columns$
DevExpress.Xpf.Grid.GridColumn
$DevExpress.Xpf.Grid.ColumnBase
	FieldName$
	FirstName��
$
LastName��
$
Photo��AllowColumnFiltering]YDevExpress.Data.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a5/DevExpress.Utils.Design.DefaultBooleanConverter$FalseCellTemplate��.R�&
 DevExpress.Xpf.Editors.ImageEdit
$
�Left=�$�5q�
Stretch$
None=�
ShowMenu.
MenuTemplate��*>8DevExpress.Xpf.Editors.Themes.ImageEditThemeKeyExtension��DevExpress.Xpf.Utils.Themes.ThemeKeyExtensionInternalBase`1[[DevExpress.Xpf.Editors.Themes.ImageEditThemeKeys, DevExpress.Xpf.Core.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a]]ResourceKey$MenuTemplate=�+

Source��Path$Value�
$
	BirthDate��EditSettingsE?DevExpress.Xpf.Editors.Settings.Extension.DateSettingsExtensionE?DevExpress.Xpf.Editors.Settings.Extension.TextSettingsExtension
DisplayFormat$d��
$
Title��$DevExpress.Xpf.Grid.BaseColumn
Header)#DevExpress.Xpf.Core.ObjectConverter$Position
-
Name$colEMail��$
EMail��$E-mailUnboundType82DevExpress.Utils.Design.UnboundColumnTypeConverter$StringUnboundExpression$)#Lower([LastName])+'@devexpress.com'�� eMailTemplateCards#�View"DevExpress.Xpf.Grid.CardView-$
�view��	FixedSize$	300Q�& DevExpress.Xpf.Grid.GridViewBaseShowGroupedColumns.& DevExpress.Xpf.Grid.DataViewBaseNavigationStyle$	Row=� headerTemplateFullName CardHeaderTemplate# � 
cardTemplate1!CardTemplate#!�"MinFixedSize$	"200Q�!4<local:GridDemoModule x:Class="GridDemo.CardTemplates"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:global="clr-namespace:System.Globalization;assembly=mscorlib"
    xmlns:dxdemo="clr-namespace:GridDemo"
    xmlns:dx="http://schemas.devexpress.com/winfx/2008/xaml/core"
    xmlns:dxt="http://schemas.devexpress.com/winfx/2008/xaml/core/themekeys"
    xmlns:dxg="http://schemas.devexpress.com/winfx/2008/xaml/grid"
 xmlns:dxe="http://schemas.devexpress.com/winfx/2008/xaml/editors"
    xmlns:dxet="http://schemas.devexpress.com/winfx/2008/xaml/editors/themekeys"
    xmlns:dxdb="http://schemas.devexpress.com/winfx/2008/xaml/demobase"
    xmlns:local="clr-namespace:GridDemo"
    xmlns:collections="clr-namespace:System.Collections;assembly=mscorlib"
    xmlns:sys="clr-namespace:System;assembly=mscorlib"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    mc:Ignorable="d" d:DesignHeight="400" d:DesignWidth="800">
    <local:GridDemoModule.Resources>
        <ResourceDictionary>
            <ResourceDictionary.MergedDictionaries>
                <ResourceDictionary Source="/GridDemo;component/Themes/generic.xaml" />
                <ResourceDictionary Source="/GridDemo;component/ModuleResources/CardTemplatesResources.xaml" />
            </ResourceDictionary.MergedDictionaries>
            <collections:ArrayList x:Key="CardHeaderTemplates">
                <sys:String>None</sys:String>
                <sys:String>Full Name</sys:String>
                <sys:String>Photo and Full Name</sys:String>
            </collections:ArrayList>
            <collections:ArrayList x:Key="EMailOptions">
                <sys:String>Default</sys:String>
                <sys:String>Cell Template</sys:String>
                <sys:String>Row Template</sys:String>
            </collections:ArrayList>
            <collections:ArrayList x:Key="CardTemplates">
                <sys:String>Default</sys:String>
                <sys:String>Tabbed Details</sys:String>
                <sys:String>Expandable Notes</sys:String>
            </collections:ArrayList>
        </ResourceDictionary>
    </local:GridDemoModule.Resources>
    <dxdb:DemoModuleControl>
        <dxdb:DemoModuleControl.OptionsContent>
            <StackPanel Orientation="Vertical">
                <dx:GroupFrame Header="Card Header" Margin="0,0,0,4">
                    <dxe:ListBoxEdit Background="{x:Null}" Name="cardHeaderTemplateListBox" SelectedIndex="1" ShowBorder="False" ItemsSource="{DynamicResource CardHeaderTemplates}" EditValueChanged="cardHeaderTemplateListBox_SelectionChanged">
                        <dxe:ListBoxEdit.StyleSettings>
                            <dxe:RadioListBoxEditStyleSettings />
                        </dxe:ListBoxEdit.StyleSettings>
                    </dxe:ListBoxEdit>
                </dx:GroupFrame>
                <dx:GroupFrame Header="Card Contents" Margin="0,0,0,4">
                    <dxe:ListBoxEdit Background="{x:Null}" Name="cardTemplateListBox" ShowBorder="False" SelectedIndex="1" ItemsSource="{DynamicResource CardTemplates}" EditValueChanged="cardTemplateListBox_SelectionChanged">
                        <dxe:ListBoxEdit.StyleSettings>
                            <dxe:RadioListBoxEditStyleSettings />
                        </dxe:ListBoxEdit.StyleSettings>
                    </dxe:ListBoxEdit>
                </dx:GroupFrame>
                <dx:GroupFrame Header="E-mail Template" Margin="0,0,0,0" Name="eMailTemplateGroupBox">
                    <dxe:ListBoxEdit Background="{x:Null}" IsEnabled="False" Name="eMailTemplateListBox" ShowBorder="False" SelectedIndex="1" ItemsSource="{DynamicResource EMailOptions}" EditValueChanged="eMailTemplateListBox_SelectionChanged">
                        <dxe:ListBoxEdit.StyleSettings>
                            <dxe:RadioListBoxEditStyleSettings />
                        </dxe:ListBoxEdit.StyleSettings>
                    </dxe:ListBoxEdit>
                </dx:GroupFrame>
            </StackPanel>
        </dxdb:DemoModuleControl.OptionsContent>

        <dxg:GridControl Name="grid" Grid.Column="0" ItemsSource="{x:Static dxdb:NWindData.Employees}">
            <dxg:GridControl.Columns>
                <dxg:GridColumn FieldName="FirstName" />
                <dxg:GridColumn FieldName="LastName" />
                <dxg:GridColumn FieldName="Photo" AllowColumnFiltering="False">
                    <dxg:GridColumn.CellTemplate>
                        <DataTemplate>
                            <dxe:ImageEdit MenuTemplate="{StaticResource {dxet:ImageEditThemeKey ResourceKey=MenuTemplate}}" Source="{Binding Path=Value}" HorizontalAlignment="Left" Margin="5" Stretch="None" ShowMenu="False" />
                        </DataTemplate>
                    </dxg:GridColumn.CellTemplate>
                </dxg:GridColumn>
                <dxg:GridColumn FieldName="BirthDate" EditSettings="{dxe:DateSettings DisplayFormat=d}" />
                <dxg:GridColumn FieldName="Title" Header="Position" />
                <dxg:GridColumn x:Name="colEMail" FieldName="EMail" Header="E-mail" UnboundType="String" UnboundExpression="Lower([LastName])+'@devexpress.com'" CellTemplate="{DynamicResource eMailTemplateCards}" />
            </dxg:GridControl.Columns>
            <dxg:GridControl.View>
                <dxg:CardView Name="view" FixedSize="300" ShowGroupedColumns="True" NavigationStyle="Row" CardHeaderTemplate="{DynamicResource headerTemplateFullName}"
                              CardTemplate="{DynamicResource cardTemplate1}" MinFixedSize="200" />
            </dxg:GridControl.View>
        </dxg:GridControl>
    </dxdb:DemoModuleControl>
</local:GridDemoModule>!:using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using DevExpress.Xpf.Grid;
using System.Diagnostics;
using DevExpress.Xpf.Core;
using DevExpress.Xpf.Utils.Themes;
using DevExpress.Xpf.DemoBase;

namespace GridDemo {
    [CodeFile("ModuleResources/CardTemplatesClasses.(cs)")]
    [CodeFile("ModuleResources/CardTemplatesResources(.SL).xaml")]
    public partial class CardTemplates : GridDemoModule {
        public static readonly RoutedCommand SendMail = new RoutedCommand("SendMail", typeof(RowTemplate));

        public static readonly DependencyProperty SelectedTabIndexProperty;
        public static readonly DependencyProperty IsNotesExpandedProperty;
        static CardTemplates() {
            SelectedTabIndexProperty = DependencyProperty.RegisterAttached("SelectedTabIndex", typeof(int), typeof(CardTemplates), new PropertyMetadata(0, null, OnSelectedTabIndexCoerce));
            IsNotesExpandedProperty = DependencyProperty.RegisterAttached("IsNotesExpanded", typeof(bool), typeof(CardTemplates), new PropertyMetadata(false));
        }
        static object OnSelectedTabIndexCoerce(DependencyObject d, object baseValue) {
            if((int)baseValue == -1)
                return GetSelectedTabIndex(d);
            return baseValue;
        }

        public static void SetSelectedTabIndex(DependencyObject element, int value) {
            element.SetValue(SelectedTabIndexProperty, value);
        }
        public static int GetSelectedTabIndex(DependencyObject element) {
            return (int)element.GetValue(SelectedTabIndexProperty);
        }
        public static void SetIsNotesExpanded(DependencyObject element, bool value) {
            element.SetValue(IsNotesExpandedProperty, value);
        }
        public static bool GetIsNotesExpanded(DependencyObject element) {
            return (bool)element.GetValue(IsNotesExpandedProperty);
        }

        public CardTemplates() {
            InitializeComponent();
            CommandBindings.Add(new CommandBinding(SendMail, new ExecutedRoutedEventHandler(OnSendMail)));
        }
        void OnSendMail(object sender, ExecutedRoutedEventArgs e) {
            try {
                Process.Start("mailto:" + e.Parameter.ToString());
            } catch { }
        }
        private void cardHeaderTemplateListBox_SelectionChanged(object sender, DevExpress.Xpf.Editors.EditValueChangedEventArgs e) {
            if(grid == null)
                return;
            if(cardHeaderTemplateListBox.SelectedIndex == 0)
                view.ClearValue(DevExpress.Xpf.Grid.CardView.CardHeaderTemplateProperty);
            if(cardHeaderTemplateListBox.SelectedIndex == 1)
                view.CardHeaderTemplate = (DataTemplate)FindResource("headerTemplateFullName");
            if(cardHeaderTemplateListBox.SelectedIndex == 2)
                view.CardHeaderTemplate = (DataTemplate)FindResource("headerTemplateFullNameWithIcon");
        }

        private void eMailTemplateListBox_SelectionChanged(object sender, DevExpress.Xpf.Editors.EditValueChangedEventArgs e) {
            if(grid == null)
                return;
            if(eMailTemplateListBox.SelectedIndex == 0)
                colEMail.CellTemplate = null;
            if(eMailTemplateListBox.SelectedIndex == 1)
                colEMail.CellTemplate = (DataTemplate)FindResource("eMailTemplateCards");
            view.CardRowTemplateSelector = null;
            if(eMailTemplateListBox.SelectedIndex == 2)
                view.CardRowTemplateSelector = new EMailCardRowTemplateSelector((DataTemplate)FindResource("eMailTemplateCards"));
        }

        private void cardTemplateListBox_SelectionChanged(object sender, DevExpress.Xpf.Editors.EditValueChangedEventArgs e) {
            if(grid == null)
                return;
            if(cardTemplateListBox.SelectedIndex == 0) {
    view.ClearValue(CardsPanel.FixedSizeProperty);
                view.ClearValue(DevExpress.Xpf.Grid.CardView.CardTemplateProperty);
                eMailTemplateListBox.IsEnabled = true;
    return;
            }
   view.FixedSize = 300;
            if(cardTemplateListBox.SelectedIndex == 1) {
                view.CardTemplate = (DataTemplate)FindResource("cardTemplate1");
                eMailTemplateListBox.IsEnabled = false;
            }
            if(cardTemplateListBox.SelectedIndex == 2) {
                view.CardTemplate = (DataTemplate)FindResource("cardTemplate2");
                eMailTemplateListBox.IsEnabled = false;
            }
        }
    }
}!�MSBAML```����OKmscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e0891&clr-namespace:System;assembly=mscorlibSystemD@GridDemo, Version=13.1.4.0, Culture=neutral, PublicKeyToken=null#clr-namespace:GridDemoGridDemo#clr-namespace:GridDemoGridDemoGridDemo.CardView\XPresentationFramework, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35RNWindowsBase, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35WSPresentationCore, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35D9http://schemas.microsoft.com/winfx/2006/xaml/presentationRNSystem.Xaml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089:x,http://schemas.microsoft.com/winfx/2006/xaml6sys&clr-namespace:System;assembly=mscorliba]DevExpress.Xpf.Core.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a;dx2http://schemas.devexpress.com/winfx/2008/xaml/corefbDevExpress.Xpf.Grid.v13.1.Core, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49aa]DevExpress.Xpf.Grid.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49al	hDevExpress.Xpf.Grid.v13.1.Extensions, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a@dxg2http://schemas.devexpress.com/winfx/2008/xaml/grid	?dxe5http://schemas.devexpress.com/winfx/2008/xaml/editorse
aDevExpress.Xpf.DemoBase.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49aAdxdb6http://schemas.devexpress.com/winfx/2008/xaml/demobase
"localclr-namespace:GridDemo
#dxdemoclr-namespace:GridDemo
Dmc;http://schemas.openxmlformats.org/markup-compatibility/2006
:d2http://schemas.microsoft.com/expression/blend/2008
�	Resources
�MergedDictionaries
�Source!GridDemo.DemoValuesProvider DemoValuesProvider��$-'/GridDemo;component/Themes/generic.xaml?��$@:/GridDemo;component/ModuleResources/CardViewTemplates.xaml?�%&	.�/
)DevExpress.Xpf.DemoBase.DemoModuleControlOptionsContent��.�����Orientation$Vertical=�.+�$DevExpress.Xpf.Core.GroupFrame$��
Appearance��$�0,0,0,12q�.���.+���$
�0,0,0,0q�$
�Layout:��)#DevExpress.Xpf.Editors.ComboBoxEdit-$
�0,4,0,0q�'!DevExpress.Xpf.Editors.ButtonEditIsTextEditable.+%DevExpress.Xpf.Editors.LookUpEditBaseItemsSource�*
CardLayouts+
�Source#[SelectedItem�	�Path$	View.CardLayout�
�Mode$
TwoWay=���$
�0,8,0,0q�$�
Alignment:��$
�0,0,0,0q�.�*
Alignments+#[�$	View.CardAlignment�$
TwoWay=�$��Column/Row Size��$�0,0,0,12q�.���.+�& DevExpress.Xpf.Editors.CheckEditContent)#DevExpress.Xpf.Core.ObjectConverter$Allow Resizing$
�0,0,0,4q�	IsChecked�$	View.AllowCardResizing�+	
%DevExpress.Xpf.DemoBase.SliderControl	

	Header$

Fixed Size��	Maximum$	500Q�	
ValueMinWidth$20Q�		SmallStep$10Q�$	�150��		EditValue�$	View.FixedSize�$
TwoWay=�	Minimum�$	View.MinFixedSize�$��Cards in a Row��$�0,0,0,12q�.���$Vertical=�.+�	�-$)�#maxCardCountInRowNoLimitRadioButton��$
�0,0,0,4q�$�	Unlimited��d�	IsChecked$
TrueY�	�-$'�!maxCardCountInRowValueRadioButton��$�0,0,0,12q�$�Maximum Value:��%
DevExpress.Xpf.Editors.SpinEdit
-
Name$maxCardCountInRowSpinEdit��%DevExpress.Xpf.Editors.BaseEdit	EditValue$1
MinValue$1X�
MaxValue$10X�$	�150��{�.$��Navigation Style��$�0,0,0,12q�.�("DevExpress.Xpf.Editors.ListBoxEdit-Name$NavigationStyleComboBox��$�0,0,30,0q�
ShowBorder.
SelectedIndex$0� navigationStyleTemplateItemTemplate#[�Z�ItemsSource�*NavigationStyles+#[SelectedItem�$	View.NavigationStyle�
StyleSettings:
4DevExpress.Xpf.Editors.RadioListBoxEditStyleSettings
Content.%DevExpress.Xpf.Grid.GridControl-$
�grid�� Columns $DevExpress.Xpf.Grid.GridColumn$DevExpress.Xpf.Grid.ColumnBase!	FieldName$!Category��$!	Trademark��$!Model��"EditSettings"60DevExpress.Xpf.Editors.Settings.TextEditSettings#TextWrapping$#WrapWithOverflow=�$
!Icon��$AllowColumnFiltering]YDevExpress.Data.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a5/DevExpress.Utils.Design.DefaultBooleanConverter$$False iconTemplate%CellTemplate#%[$!Price��"60DevExpress.Xpf.Editors.Settings.BaseEditSettings&
DisplayFormat$&$0��'MaskType$
'Numeric=�$	!Cyl��$!Description��$DevExpress.Xpf.Grid.BaseColumn(MinWidth$	(100��"E?DevExpress.Xpf.Editors.Settings.Extension.MemoSettingsExtension)ShowIcon).JDDevExpress.Xpf.Editors.Settings.Extension.PopupBaseSettingsExtension*
PopupWidth$	*500Q�+PopupHeight$	+300Q�,MemoTextWrapping$
,Wrap=�&-MemoVerticalScrollBarVisibility$
-Auto=�.View."DevExpress.Xpf.Grid.CardView-$
�view��& DevExpress.Xpf.Grid.DataViewBase/AllowEditing/.& DevExpress.Xpf.Grid.GridViewBase0ShowGroupedColumns0.1NavigationStyle$
1Cell=�2	FixedSize$	2250Q�3MinFixedSize$	3150Q�4CardHeaderBinding4�$	
Data.Model�5�RelativeSource5��*Self+!<local:GridDemoModule x:Class="GridDemo.CardView"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:sys="clr-namespace:System;assembly=mscorlib"
    xmlns:dx="http://schemas.devexpress.com/winfx/2008/xaml/core"
    xmlns:dxg="http://schemas.devexpress.com/winfx/2008/xaml/grid"
 xmlns:dxe="http://schemas.devexpress.com/winfx/2008/xaml/editors"
    xmlns:dxdb="http://schemas.devexpress.com/winfx/2008/xaml/demobase"
    xmlns:local="clr-namespace:GridDemo"
    xmlns:dxdemo="clr-namespace:GridDemo"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    mc:Ignorable="d" d:DesignHeight="400" d:DesignWidth="800">
    <local:GridDemoModule.Resources>
        <ResourceDictionary>
            <ResourceDictionary.MergedDictionaries>
                <ResourceDictionary Source="/GridDemo;component/Themes/generic.xaml" />
                <ResourceDictionary Source="/GridDemo;component/ModuleResources/CardViewTemplates.xaml" />
            </ResourceDictionary.MergedDictionaries>
            <local:DemoValuesProvider x:Key="DemoValuesProvider" />
        </ResourceDictionary>
    </local:GridDemoModule.Resources>
    <dxdb:DemoModuleControl>
        <dxdb:DemoModuleControl.OptionsContent>
            <ContentControl>
                <StackPanel Orientation="Vertical">
                    <dx:GroupFrame Header="Appearance" Margin="0,0,0,12">
                        <StackPanel>
                            <Label Margin="0,0,0,0" Content="Layout:" />
                            <dxe:ComboBoxEdit Margin="0,4,0,0" EditValueChanged="ComboBoxEdit_EditValueChanged" ItemsSource="{Binding CardLayouts, Source={StaticResource DemoValuesProvider}}" IsTextEditable="False" SelectedItem="{Binding Path=View.CardLayout, Mode=TwoWay}" />
                            <Label Margin="0,8,0,0" Content="Alignment:" />
                            <dxe:ComboBoxEdit Margin="0,0,0,0" ItemsSource="{Binding Alignments, Source={StaticResource DemoValuesProvider}}" IsTextEditable="False" SelectedItem="{Binding Path=View.CardAlignment, Mode=TwoWay}" />
                        </StackPanel>
                    </dx:GroupFrame>
                    <dx:GroupFrame Header="Column/Row Size" Margin="0,0,0,12">
                        <StackPanel>
                            <dxe:CheckEdit Content="Allow Resizing" IsChecked="{Binding Path=View.AllowCardResizing}" Margin="0,0,0,4" />
                            <dxdb:SliderControl Header="Fixed Size" EditValue="{Binding Path=View.FixedSize, Mode=TwoWay}" Minimum="{Binding Path=View.MinFixedSize}" Maximum="500" ValueMinWidth="20" SmallStep="10" Width="150" />
                        </StackPanel>
                    </dx:GroupFrame>
                    <dx:GroupFrame Header="Cards in a Row" Margin="0,0,0,12">
                        <StackPanel Orientation="Vertical">
                            <RadioButton Margin="0,0,0,4" Name="maxCardCountInRowNoLimitRadioButton" Content="Unlimited" IsChecked="True" Checked="maxCardCountInRowNoLimitRadioButton_Checked" />
                            <RadioButton Margin="0,0,0,12" Name="maxCardCountInRowValueRadioButton" Content="Maximum Value:" Checked="maxCardCountInRowValueRadioButton_Checked" />
                            <dxe:SpinEdit x:Name="maxCardCountInRowSpinEdit" EditValue="1" MinValue="1" MaxValue="10" Width="150" IsEnabled="False" EditValueChanged="maxCardCountInRowSpinEdit_EditValueChanged" />
                        </StackPanel>
                    </dx:GroupFrame>
                    <dx:GroupFrame Header="Navigation Style" Margin="0,0,0,12">
                        <dxe:ListBoxEdit Background="{x:Null}" Margin="0,0,30,0" ShowBorder="False" x:Name="NavigationStyleComboBox"
                                         ItemsSource="{Binding NavigationStyles, Source={StaticResource DemoValuesProvider}}" SelectedIndex="0"
                                         SelectedItem="{Binding Path=View.NavigationStyle}" ItemTemplate="{StaticResource navigationStyleTemplate}">
                            <dxe:ListBoxEdit.StyleSettings>
                                <dxe:RadioListBoxEditStyleSettings />
                            </dxe:ListBoxEdit.StyleSettings>
                        </dxe:ListBoxEdit>
                    </dx:GroupFrame>
                </StackPanel>
            </ContentControl>
        </dxdb:DemoModuleControl.OptionsContent>
        <dxg:GridControl Name="grid">
            <dxg:GridControl.Columns>
                <dxg:GridColumn FieldName="Category" />
                <dxg:GridColumn FieldName="Trademark" />
                <dxg:GridColumn FieldName="Model">
                    <dxg:GridColumn.EditSettings>
                        <dxe:TextEditSettings TextWrapping="WrapWithOverflow" />
                    </dxg:GridColumn.EditSettings>
                </dxg:GridColumn>
                <dxg:GridColumn FieldName="Icon" AllowColumnFiltering="False" CellTemplate="{StaticResource iconTemplate}" />
                <dxg:GridColumn FieldName="Price">
                    <dxg:GridColumn.EditSettings>
                        <dxe:TextEditSettings DisplayFormat="$0" MaskType="Numeric" />
                    </dxg:GridColumn.EditSettings>
                </dxg:GridColumn>
                <dxg:GridColumn FieldName="Cyl" />
                <dxg:GridColumn FieldName="Description" MinWidth="100" EditSettings="{dxe:MemoSettings ShowIcon=False, PopupWidth=500, PopupHeight=300, MemoTextWrapping=Wrap, MemoVerticalScrollBarVisibility=Auto}" />
            </dxg:GridControl.Columns>
            <dxg:GridControl.View>
                <dxg:CardView AllowEditing="True" ShowGroupedColumns="True" NavigationStyle="Cell" FixedSize="250" MinFixedSize="150" Name="view" CardHeaderBinding="{Binding Path=Data.Model, RelativeSource={RelativeSource Self}}" />
            </dxg:GridControl.View>
        </dxg:GridControl>
    </dxdb:DemoModuleControl>
</local:GridDemoModule>!�using System.Windows;
using System.Windows.Controls;
using DevExpress.Xpf.DemoBase.DataClasses;
using DevExpress.Xpf.Editors;
using DevExpress.Xpf.Editors.Settings;
using DevExpress.Xpf.Grid;
using DevExpress.Xpf.DemoBase;

namespace GridDemo {
    [CodeFile("ModuleResources/CardViewTemplates(.SL).xaml")]
    public partial class CardView : GridDemoModule {
        public CardView() {
            InitializeComponent();
            grid.ItemsSource = CarsData.NewDataView;
        }

        private void maxCardCountInRowSpinEdit_EditValueChanged(object sender, EditValueChangedEventArgs e) {
            if(view == null)
                return;
            if(maxCardCountInRowValueRadioButton.IsChecked.Value)
                view.MaxCardCountInRow = (int)maxCardCountInRowSpinEdit.Value;
        }

        private void maxCardCountInRowNoLimitRadioButton_Checked(object sender, RoutedEventArgs e) {
            if(view == null)
                return;
            maxCardCountInRowSpinEdit.IsEnabled = false;
            view.MaxCardCountInRow = int.MaxValue;
        }

        private void maxCardCountInRowValueRadioButton_Checked(object sender, RoutedEventArgs e) {
            if(view == null)
                return;
            maxCardCountInRowSpinEdit.IsEnabled = true;
            view.MaxCardCountInRow = (int)maxCardCountInRowSpinEdit.Value;
        }

        private void ComboBoxEdit_EditValueChanged(object sender, EditValueChangedEventArgs e) {
            MemoEditSettings settings = new MemoEditSettings()
            {
                ShowIcon = false,
                PopupWidth = 500,
                PopupHeight = 300,
                MemoTextWrapping = TextWrapping.Wrap,
                MemoVerticalScrollBarVisibility = ScrollBarVisibility.Auto
            };
            if(object.Equals((CardLayout)e.NewValue, CardLayout.Rows))
                settings.MaxWidth = 300d;
            grid.Columns["Description"].EditSettings = settings;

        }
    }
}!7
MSBAML```����D@GridDemo, Version=13.1.4.0, Culture=neutral, PublicKeyToken=null#clr-namespace:GridDemoGridDemoOKmscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089I2clr-namespace:System.Collections;assembly=mscorlibSystem.Collections1&clr-namespace:System;assembly=mscorlibSystemGridDemo.CellsSelection\XPresentationFramework, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35RNWindowsBase, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35WSPresentationCore, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35D9http://schemas.microsoft.com/winfx/2006/xaml/presentationRNSystem.Xaml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089:x,http://schemas.microsoft.com/winfx/2006/xamlfbDevExpress.Xpf.Grid.v13.1.Core, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49aa]DevExpress.Xpf.Grid.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49alhDevExpress.Xpf.Grid.v13.1.Extensions, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a@dxg2http://schemas.devexpress.com/winfx/2008/xaml/gridGdxgt<http://schemas.devexpress.com/winfx/2008/xaml/grid/themekeysa	]DevExpress.Xpf.Core.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a?dxe5http://schemas.devexpress.com/winfx/2008/xaml/editors	e
aDevExpress.Xpf.DemoBase.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49aAdxdb6http://schemas.devexpress.com/winfx/2008/xaml/demobase
;dx2http://schemas.devexpress.com/winfx/2008/xaml/core	"localclr-namespace:GridDemo	Dcollections2clr-namespace:System.Collections;assembly=mscorlib	0sys&clr-namespace:System;assembly=mscorlib	Dmc;http://schemas.openxmlformats.org/markup-compatibility/2006	:d2http://schemas.microsoft.com/expression/blend/2008	.�/
)DevExpress.Xpf.DemoBase.DemoModuleControl(!SupressGroupFramePaddingInOptions.OptionsTopText$MGSelect cells by clicking them while holding the SHIFT or CTRL key down.��OptionsContent��.+�&	 DevExpress.Xpf.Editors.CheckEdit-Name$	checkEdit��	IsChecked$
TrueY�Content)	#DevExpress.Xpf.Core.ObjectConverter$/)Calculate summary for selected cells only$	DevExpress.Xpf.Core.GroupFrame$��Select cells��$�0,12,0,0q�.���.+��-$�20 Best Selling���-$�20 Worst Selling��$
�0,4,0,0q�Content.%DevExpress.Xpf.Grid.GridControl-Name$
grid��)#DevExpress.Xpf.Grid.DataControlBase
SelectionMode$
Cell=�	AutoGenerateColumns$
	KeepOld=�
View
#DevExpress.Xpf.Grid.TableView-Name$
view��IndicatorWidth$	110Q�& DevExpress.Xpf.Grid.GridViewBase
ShowGroupPanel
.&	 DevExpress.Xpf.Grid.DataViewBase	ShowTotalSummary. 	IsTotalSummaryMenuEnabled."RowIndicatorContentTemplate��.R�%
	DevExpress.Xpf.Editors.TextEdit
$�Right=�%	DevExpress.Xpf.Editors.BaseEditEditMode$InplaceInactive=�)	#DevExpress.Xpf.Editors.TextEditBaseText��Path$	Row[Date]��StringFormat$Y��!�
<local:GridDemoModule x:Class="GridDemo.CellsSelection"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
 xmlns:dxg="http://schemas.devexpress.com/winfx/2008/xaml/grid"
    xmlns:dxgt="http://schemas.devexpress.com/winfx/2008/xaml/grid/themekeys"
 xmlns:dxe="http://schemas.devexpress.com/winfx/2008/xaml/editors"
 xmlns:dxdb="http://schemas.devexpress.com/winfx/2008/xaml/demobase"
 xmlns:dx="http://schemas.devexpress.com/winfx/2008/xaml/core"
 xmlns:local="clr-namespace:GridDemo"
 xmlns:collections="clr-namespace:System.Collections;assembly=mscorlib"
 xmlns:sys="clr-namespace:System;assembly=mscorlib"
 xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    mc:Ignorable="d" d:DesignHeight="400" d:DesignWidth="800">
    <dxdb:DemoModuleControl SupressGroupFramePaddingInOptions="False">
        <dxdb:DemoModuleControl.OptionsTopText>
            Select cells by clicking them while holding the SHIFT or CTRL key down.
        </dxdb:DemoModuleControl.OptionsTopText>
        <dxdb:DemoModuleControl.OptionsContent>
            <StackPanel>
                <dxe:CheckEdit x:Name="checkEdit" IsChecked="True" Content="Calculate summary for selected cells only" EditValueChanged="CheckEdit_EditValueChanged" />
                <dx:GroupFrame Header="Select cells" Margin="0,12,0,0">
                    <StackPanel>
                        <Button Content="20 Best Selling" Click="Button_Click" />
                        <Button Content="20 Worst Selling" Click="Button_Click_1" Margin="0,4,0,0" />
                    </StackPanel>
                </dx:GroupFrame>
            </StackPanel>
        </dxdb:DemoModuleControl.OptionsContent>
        <dxg:GridControl x:Name="grid" SelectionMode="Cell" AutoGenerateColumns="KeepOld" CustomSummary="grid_CustomSummary" SelectionChanged="TableView_SelectionChanged">
            <dxg:GridControl.View>
                <dxg:TableView x:Name="view" IndicatorWidth="110" ShowGroupPanel="False"
                           ShowTotalSummary="True" IsTotalSummaryMenuEnabled="False">
                    <dxg:TableView.RowIndicatorContentTemplate>
                        <DataTemplate>
                            <dxe:TextEdit Text="{Binding Path=Row[Date], StringFormat=Y}" HorizontalAlignment="Right" EditMode="InplaceInactive" />
                        </DataTemplate>
                    </dxg:TableView.RowIndicatorContentTemplate>
                </dxg:TableView>
            </dxg:GridControl.View>
        </dxg:GridControl>
    </dxdb:DemoModuleControl>
</local:GridDemoModule>!fusing System;
using System.Collections.Generic;
using System.Windows;
using GridDemo;
using System.Collections;
using System.Globalization;
using DevExpress.Data;
using DevExpress.Xpf.DemoBase;
using DevExpress.Xpf.Grid;
using DevExpress.Xpf.Editors.Settings;
using DevExpress.Xpf.Editors;
using System.Data;

namespace GridDemo {
    public partial class CellsSelection : GridDemoModule {
        public CellsSelection() {
            InitializeComponent();
            AssignDataSource();

            SelectCells();
        }

        void SelectCells() {
            grid.BeginSelection();
            int[,] selectedCells = new int[,] {
                {0, 1}, {1, 1}, {2, 1}, {3, 1}, {4, 1}, {5, 1}, {6, 1}, {7, 1}, {6, 1},{6, 1}, {7, 1}, {8, 1}, {9, 1}, {10, 1},
                {0, 2}, {1, 2}, {2, 2}, {8, 2}, {9, 2}, {10, 2},
                {2, 3}, {3, 3}, {4, 3}, {5, 3}, {6, 3}, {7, 3}, {8, 3},

                {12, 1}, {13, 1}, {14, 1}, {15, 1}, {19, 1}, {20, 1},  {21, 1},  {22, 1},
                {14, 2}, {15, 2}, {16, 2}, {17, 2}, {18, 2}, {19, 2}, {20, 2},
                {12, 3}, {13, 3}, {14, 3}, {15, 3}, {19, 3}, {20, 3},  {21, 3},  {22, 3}
            };
            for(int i = 0; i < selectedCells.GetLength(0); i++)
                view.SelectCell(selectedCells[i, 0], view.VisibleColumns[selectedCells[i, 1]]);
            grid.EndSelection();
        }

        void AssignDataSource() {
            grid.ItemsSource = SalesByYearData.GetSalesByYearData();
            grid.Columns["Date"].Visible = false;
            grid.Columns["Date"].ShowInColumnChooser = false;
            foreach(GridColumn column in view.VisibleColumns) {
                grid.TotalSummary.Add(new GridSummaryItem() { FieldName = column.FieldName, SummaryType = DevExpress.Data.SummaryItemType.Custom, DisplayFormat = "${0:N}" });
                column.EditSettings = new SpinEditSettings() { MaskType = MaskType.Numeric, MaskUseAsDisplayFormat = true, Mask = "c", MaskCulture = new CultureInfo("en-US") };
            }
        }

        int sum = 0;
        void grid_CustomSummary(object sender, DevExpress.Data.CustomSummaryEventArgs e) {
            if(object.Equals(e.SummaryProcess, CustomSummaryProcess.Start)) {
                sum = 0;
            }
            if(e.SummaryProcess == CustomSummaryProcess.Calculate) {
                if(grid.View != null) {
                    if(!checkEdit.IsChecked.Value || view.IsCellSelected(e.RowHandle, grid.Columns[((GridSummaryItem)e.Item).FieldName])) {
                        if(e.FieldValue != DBNull.Value && e.FieldValue != null)
                            sum += (int)e.FieldValue;
                    }
                }
            }
            if(e.SummaryProcess == CustomSummaryProcess.Finalize)
                e.TotalValue = sum;
        }

        void TableView_SelectionChanged(object sender, DevExpress.Xpf.Grid.GridSelectionChangedEventArgs e) {
            grid.UpdateTotalSummary();
        }

        void CheckEdit_EditValueChanged(object sender, DevExpress.Xpf.Editors.EditValueChangedEventArgs e) {
            grid.UpdateTotalSummary();
        }

        void Button_Click(object sender, RoutedEventArgs e) {
            SelectCells(true);
        }
        void Button_Click_1(object sender, RoutedEventArgs e) {
            SelectCells(false);
        }

        void SelectCells(bool shouldSelectTopValues) {
            List<KeyValuePair<GridCell, int>> list = new List<KeyValuePair<GridCell, int>>();
            for(int i = 0; i < grid.VisibleRowCount; i++)
                for(int j = 0; j < view.VisibleColumns.Count; j++)
                    list.Add(new KeyValuePair<GridCell, int>(new GridCell(i, view.VisibleColumns[j]), (int)grid.GetCellValue(i, view.VisibleColumns[j])));
            list.Sort(delegate(KeyValuePair<GridCell, int> x, KeyValuePair<GridCell, int> y) {
                return Compare(x, y, shouldSelectTopValues);
            });

            grid.BeginSelection();
            view.DataControl.UnselectAll();
            for(int i = 0; i < Math.Min(20, list.Count); i++) {
                view.SelectCell(list[list.Count - i - 1].Key.RowHandle, list[list.Count - i - 1].Key.Column);
            }
            grid.EndSelection();
        }

        private static int Compare(KeyValuePair<GridCell, int> x, KeyValuePair<GridCell, int> y, bool shouldSelectTopValues) {
            if(shouldSelectTopValues)
                return Comparer<int>.Default.Compare(x.Value, y.Value);
            else
                return Comparer<int>.Default.Compare(y.Value, x.Value);
        }
    }
}!QMSBAML```����D@GridDemo, Version=13.1.4.0, Culture=neutral, PublicKeyToken=null#clr-namespace:GridDemoGridDemoOKmscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089I2clr-namespace:System.Collections;assembly=mscorlibSystem.Collections1&clr-namespace:System;assembly=mscorlibSystem1clr-namespace:DXDemo.ControlsDXDemo.ControlsGridDemo.CollectionView\XPresentationFramework, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35RNWindowsBase, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35WSPresentationCore, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35D9http://schemas.microsoft.com/winfx/2006/xaml/presentationRNSystem.Xaml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089:x,http://schemas.microsoft.com/winfx/2006/xamla]DevExpress.Xpf.Core.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a;dx2http://schemas.devexpress.com/winfx/2008/xaml/corefbDevExpress.Xpf.Grid.v13.1.Core, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49aa]DevExpress.Xpf.Grid.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49al	hDevExpress.Xpf.Grid.v13.1.Extensions, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a@dxg2http://schemas.devexpress.com/winfx/2008/xaml/grid	?dxe5http://schemas.devexpress.com/winfx/2008/xaml/editorse
aDevExpress.Xpf.DemoBase.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49aAdxdb6http://schemas.devexpress.com/winfx/2008/xaml/demobase
"localclr-namespace:GridDemo
Dcollections2clr-namespace:System.Collections;assembly=mscorlib
0sys&clr-namespace:System;assembly=mscorlib
Dmc;http://schemas.openxmlformats.org/markup-compatibility/2006
:d2http://schemas.microsoft.com/expression/blend/2008
,controlsclr-namespace:DXDemo.Controls
�	Resources
�MergedDictionaries
�Source��$>8/GridDemo;component/ModuleResources/SharedResources.xaml?�%�DataContext& GridDemo.CollectionViewViewModel.�/
)DevExpress.Xpf.DemoBase.DemoModuleControlOptionsContent�.+���*
DataContext+.+�-'DXDemo.Controls.CollectionViewNavigator-Name$	navigator��CurrentSortFieldName$JobTitle��CurrentGroupFieldName$JobTitle��CollectionView�*CollectionView+	Content.	%DevExpress.Xpf.Grid.GridControl-
Name$

grid��)#DevExpress.Xpf.Grid.DataControlBaseItemsSource�*CollectionView+Columns$DevExpress.Xpf.Grid.GridColumn$DevExpress.Xpf.Grid.ColumnBase
	FieldName$
JobTitle��$
	FirstName��$
LastName��$
	BirthDate��-Name$
colCountry��$
CountryRegionName��$DevExpress.Xpf.Grid.BaseColumn
Header)	#DevExpress.Xpf.Core.ObjectConverter$
Country	Width$	130�� colCountryCellTemplateCellTemplate#[View#
DevExpress.Xpf.Grid.TableView
-$
�View��& DevExpress.Xpf.Grid.GridViewBaseShowGroupedColumns.
	AutoWidth.
AllowPerPixelScrolling.
ScrollAnimationDuration$0Q�
ShowAutoFilterRow.
NewItemRowPosition$	Top=�& DevExpress.Xpf.Grid.DataViewBaseShowTotalSummary.$IsSynchronizedWithCurrentItem�*IsSynchronizedWithCurrentItem+�ElementName$	navigator��!<local:GridDemoModule x:Class="GridDemo.CollectionView"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:dx="http://schemas.devexpress.com/winfx/2008/xaml/core"
    xmlns:dxg="http://schemas.devexpress.com/winfx/2008/xaml/grid"
 xmlns:dxe="http://schemas.devexpress.com/winfx/2008/xaml/editors"
 xmlns:dxdb="http://schemas.devexpress.com/winfx/2008/xaml/demobase"
    xmlns:local="clr-namespace:GridDemo"
    xmlns:collections="clr-namespace:System.Collections;assembly=mscorlib"
    xmlns:sys="clr-namespace:System;assembly=mscorlib"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:controls="clr-namespace:DXDemo.Controls"
    mc:Ignorable="d" d:DesignHeight="400" d:DesignWidth="800">
    <local:GridDemoModule.Resources>
        <ResourceDictionary>
            <ResourceDictionary.MergedDictionaries>
                <ResourceDictionary Source="/GridDemo;component/ModuleResources/SharedResources.xaml" />
            </ResourceDictionary.MergedDictionaries>
        </ResourceDictionary>
    </local:GridDemoModule.Resources>
    <local:GridDemoModule.DataContext>
        <local:CollectionViewViewModel/>
    </local:GridDemoModule.DataContext>
    <dxdb:DemoModuleControl>
        <dxdb:DemoModuleControl.OptionsContent>
            <Grid>
                <Grid DataContext="{Binding DataContext}">
                    <controls:CollectionViewNavigator x:Name="navigator" CurrentSortFieldName="JobTitle" CurrentGroupFieldName="JobTitle" CollectionView="{Binding CollectionView}"/>
                </Grid>
            </Grid>
        </dxdb:DemoModuleControl.OptionsContent>
        <dxg:GridControl x:Name="grid" ItemsSource="{Binding CollectionView}">
            <dxg:GridControl.Columns>
                <dxg:GridColumn FieldName="JobTitle"/>
                <dxg:GridColumn FieldName="FirstName"/>
                <dxg:GridColumn FieldName="LastName"/>
                <dxg:GridColumn FieldName="BirthDate"/>
                <dxg:GridColumn Name="colCountry" FieldName="CountryRegionName" Header="Country" Width="130" CellTemplate="{StaticResource colCountryCellTemplate}"/>
            </dxg:GridControl.Columns>
            <dxg:GridControl.View>
                <dxg:TableView Name="View" ShowGroupedColumns="True" IsSynchronizedWithCurrentItem="{Binding IsSynchronizedWithCurrentItem, ElementName=navigator}" AutoWidth="True" AllowPerPixelScrolling="True" ScrollAnimationDuration="0" ShowAutoFilterRow="True" NewItemRowPosition="Top" ShowTotalSummary="True"/>
            </dxg:GridControl.View>
        </dxg:GridControl>
    </dxdb:DemoModuleControl>
</local:GridDemoModule>!�using DevExpress.Xpf.DemoBase;

namespace GridDemo {
    [CodeFile("Controls/CollectionViewNavigator.xaml")]
    [CodeFile("Controls/CollectionViewNavigator.xaml.(cs)")]
    [CodeFile("ModuleResources/CollectionViewViewModel.(cs)")]
    public partial class CollectionView : GridDemoModule {
        public CollectionView() {
            InitializeComponent();
        }
    }
}!�MSBAML```����OKmscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e0891&clr-namespace:System;assembly=mscorlibSystemD@GridDemo, Version=13.1.4.0, Culture=neutral, PublicKeyToken=null#clr-namespace:GridDemoGridDemoI2clr-namespace:System.Collections;assembly=mscorlibSystem.CollectionsGridDemo.ColumnChooser\XPresentationFramework, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35RNWindowsBase, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35WSPresentationCore, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35D9http://schemas.microsoft.com/winfx/2006/xaml/presentationRNSystem.Xaml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089:x,http://schemas.microsoft.com/winfx/2006/xaml6sys&clr-namespace:System;assembly=mscorliba]DevExpress.Xpf.Core.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a;dx2http://schemas.devexpress.com/winfx/2008/xaml/corefbDevExpress.Xpf.Grid.v13.1.Core, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49aa]DevExpress.Xpf.Grid.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49al	hDevExpress.Xpf.Grid.v13.1.Extensions, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a@dxg2http://schemas.devexpress.com/winfx/2008/xaml/grid	?dxe5http://schemas.devexpress.com/winfx/2008/xaml/editorsJdxet?http://schemas.devexpress.com/winfx/2008/xaml/editors/themekeys"localclr-namespace:GridDemoe
aDevExpress.Xpf.DemoBase.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49aAdxdb6http://schemas.devexpress.com/winfx/2008/xaml/demobase
Dcollections2clr-namespace:System.Collections;assembly=mscorlib
Dmc;http://schemas.openxmlformats.org/markup-compatibility/2006
:d2http://schemas.microsoft.com/expression/blend/2008
$
�Stretch=�$
�Stretch=��	Resources
�MergedDictionaries
�Source1+GridDemo.GridColumnChooserToExpanderVisible converterToExpanderVisible-
'DevExpress.Xpf.DemoBase.NWindDataLoader NWindDataLoader��$-'/GridDemo;component/Themes/generic.xaml?�%&	&	.�/
)DevExpress.Xpf.DemoBase.DemoModuleControl(!SupressGroupFramePaddingInOptions.OptionsContent�$	�185���RowDefinitions�$
��Auto��$
��Auto��.+�d�-$�showHideButton��$��0�$�22��d�	IsChecked��Path$-'GridControl.View.IsColumnChooserVisible��Mode$TwoWay=�$DevExpress.Xpf.Core.GroupFrame$��1�$��Select Column Chooser��$�0,12,0,0q�.�("DevExpress.Xpf.Editors.ListBoxEdit-	Name$	columnChooserTypesListBox��%DevExpress.Xpf.Editors.BaseEdit

ShowBorder
.SelectedItem�$ColumnChooserType�$TwoWay=��Z�
StyleSettings:4DevExpress.Xpf.Editors.RadioListBoxEditStyleSettings
Items
 GridDemo.ColumnChooserTypeDefault=�
Custom=�*	
$DevExpress.Xpf.DemoBase.DemoExpander	-	Name$!customColumnChooserExpander��$��2�$�0,12,0,0q�y��$SelectedItem��ElementName$columnChooserTypesListBox���	Converter#[9�
IsExpanded�$	IsChecked�$showHideButton��$TwoWay=�.����C�*=
7DevExpress.Xpf.Editors.Themes.TextEditThemeKeyExtension
��DevExpress.Xpf.Utils.Themes.ThemeKeyExtensionInternalBase`1[[DevExpress.Xpf.Editors.Themes.TextEditThemeKeys, DevExpress.Xpf.Core.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a]]ResourceKey$BorderTemplate=�+.��$��2�
��������CornerRadius$0��
�������$��1q�._�'!GridDemo.DemoColumnChooserControl-Name$
columnChooser��View�*GridControl.View+Content.%
DevExpress.Xpf.Grid.GridControl
-$
�grid��$
�Stretch=�$
�Stretch=�)#DevExpress.Xpf.Grid.DataControlBaseItemsSource�$	Customers�
�Source#[
View#DevExpress.Xpf.Grid.TableView-Name$gridView��& DevExpress.Xpf.Grid.DataViewBaseNavigationStyle$	Row=�	AutoWidth.AllowPerPixelScrolling.
Columns$DevExpress.Xpf.Grid.GridColumn$DevExpress.Xpf.Grid.ColumnBase	FieldName$CompanyName��$DevExpress.Xpf.Grid.BaseColumn Width$	 230��$ContactName��$	 150��$ContactTitle��$	 150��$
CustomerID��$ 70��
!Header)#DevExpress.Xpf.Core.ObjectConverter$!ID$Region��$	 100��"Visible".$
Country��$ 90��".$
City��$	 100��".$
Address��$	 260��".$
PostalCode��$	 110��".$	Fax��$	 110��".$Phone��$	 100��".!�<local:GridDemoModule x:Class="GridDemo.ColumnChooser"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:sys="clr-namespace:System;assembly=mscorlib"
    xmlns:dx="http://schemas.devexpress.com/winfx/2008/xaml/core"
    xmlns:dxg="http://schemas.devexpress.com/winfx/2008/xaml/grid"
 xmlns:dxe="http://schemas.devexpress.com/winfx/2008/xaml/editors"
    xmlns:dxet="http://schemas.devexpress.com/winfx/2008/xaml/editors/themekeys"
    xmlns:local="clr-namespace:GridDemo"
 xmlns:dxdb="http://schemas.devexpress.com/winfx/2008/xaml/demobase"
 xmlns:collections="clr-namespace:System.Collections;assembly=mscorlib"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    mc:Ignorable="d" d:DesignHeight="400" d:DesignWidth="800"
 HorizontalAlignment="Stretch" VerticalAlignment="Stretch">
    <local:GridDemoModule.Resources>
        <ResourceDictionary>
            <ResourceDictionary.MergedDictionaries>
                <ResourceDictionary Source="/GridDemo;component/Themes/generic.xaml" />
            </ResourceDictionary.MergedDictionaries>
            <local:GridColumnChooserToExpanderVisible x:Key="converterToExpanderVisible" />
            <dxdb:NWindDataLoader x:Key="NWindDataLoader" />
        </ResourceDictionary>
    </local:GridDemoModule.Resources>
    <dxdb:DemoModuleControl SupressGroupFramePaddingInOptions="False">
        <dxdb:DemoModuleControl.OptionsContent>
            <Grid MinWidth="185">
                <Grid.RowDefinitions>
                    <RowDefinition Height="Auto" />
                    <RowDefinition Height="Auto" />
                    <RowDefinition />
                </Grid.RowDefinitions>
                <ToggleButton Name="showHideButton"
                          Grid.Row="0"
                          Height="22"
                          Checked="showHideButton_Toggle"
                          Unchecked="showHideButton_Toggle"
                          IsChecked="{Binding Path=GridControl.View.IsColumnChooserVisible, Mode=TwoWay}" />
                <dx:GroupFrame Grid.Row="1" Header="Select Column Chooser" Margin="0,12,0,0">
                    <dxe:ListBoxEdit x:Name="columnChooserTypesListBox" ShowBorder="False" SelectedItem="{Binding Path=ColumnChooserType, Mode=TwoWay}" Background="{x:Null}">
                        <dxe:ListBoxEdit.StyleSettings>
                            <dxe:RadioListBoxEditStyleSettings />
                        </dxe:ListBoxEdit.StyleSettings>
                        <dxe:ListBoxEdit.Items>
                            <local:ColumnChooserType>Default</local:ColumnChooserType>
                            <local:ColumnChooserType>Custom</local:ColumnChooserType>
                        </dxe:ListBoxEdit.Items>
                    </dxe:ListBoxEdit>
                </dx:GroupFrame>

                <dxdb:DemoExpander Grid.Row="2" x:Name="customColumnChooserExpander"
                      Expanded="customColumnChooserExpander_Expanded"
                      Collapsed="customColumnChooserExpander_Collapsed"
                      Margin="0,12,0,0"
                      Visibility="{Binding Path=SelectedItem, ElementName=columnChooserTypesListBox, Converter={StaticResource converterToExpanderVisible}}"
                      IsExpanded="{Binding Path=IsChecked, ElementName=showHideButton, Mode=TwoWay}">
                    <ContentControl Template="{DynamicResource {dxet:TextEditThemeKey ResourceKey=BorderTemplate}}">
                        <Border Grid.Row="2" Background="White" CornerRadius="0" BorderBrush="Gray" BorderThickness="1">
                            <local:DemoColumnChooserControl View="{Binding GridControl.View}" x:Name="columnChooser" />
                        </Border>
                    </ContentControl>
                </dxdb:DemoExpander>

            </Grid>
        </dxdb:DemoModuleControl.OptionsContent>
        <dxg:GridControl Name="grid" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" ItemsSource="{Binding Path=Customers, Source={StaticResource NWindDataLoader}}">
            <dxg:GridControl.View>
                <dxg:TableView NavigationStyle="Row" x:Name="gridView" AutoWidth="True" AllowPerPixelScrolling="True"/>
            </dxg:GridControl.View>
            <dxg:GridControl.Columns>
                <dxg:GridColumn FieldName="CompanyName" Width="230" />
                <dxg:GridColumn FieldName="ContactName" Width="150" />
                <dxg:GridColumn FieldName="ContactTitle" Width="150" />
                <dxg:GridColumn FieldName="CustomerID" Width="70" Header="ID" />
                <dxg:GridColumn FieldName="Region" Width="100" Visible="False" />
                <dxg:GridColumn FieldName="Country" Width="90" Visible="False" />
                <dxg:GridColumn FieldName="City" Width="100" Visible="False" />
                <dxg:GridColumn FieldName="Address" Width="260" Visible="False" />
                <dxg:GridColumn FieldName="PostalCode" Width="110" Visible="False" />
                <dxg:GridColumn FieldName="Fax" Width="110" Visible="False" />
                <dxg:GridColumn FieldName="Phone" Width="100" Visible="False" />
            </dxg:GridControl.Columns>
        </dxg:GridControl>

    </dxdb:DemoModuleControl>
</local:GridDemoModule>!�using System;
using System.Globalization;
using System.Windows;
using System.Windows.Data;
using DevExpress.Xpf.Grid;
using DevExpress.Xpf.DemoBase;
using System.Windows.Input;
using System.Windows.Threading;

namespace GridDemo {
    [CodeFile("ModuleResources/ColumnChooserClasses.(cs)")]
    public partial class ColumnChooser : GridDemoModule {
        public static readonly DependencyProperty ColumnChooserTypeProperty = DependencyProperty.Register("ColumnChooserType", typeof(ColumnChooserType), typeof(ColumnChooser),
            new PropertyMetadata(ColumnChooserType.Default, new PropertyChangedCallback(OnColumnChooserTypeChanged)));

        static void OnColumnChooserTypeChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) {
            ((ColumnChooser)d).ColumnChooserTypeChanged((ColumnChooserType)e.NewValue);
        }

        public ColumnChooserType ColumnChooserType {
            get { return (ColumnChooserType)GetValue(ColumnChooserTypeProperty); }
            set { SetValue(ColumnChooserTypeProperty, value); }
        }

        public ColumnChooser() {
            InitializeComponent();
            UpdateToggleButtonContent();
        }

        protected override void RaiseIsPopupContentInvisibleChanged(DependencyPropertyChangedEventArgs e) {
            base.RaiseIsPopupContentInvisibleChanged(e);
            if(!IsPopupContentInvisible) {
                Dispatcher.BeginInvoke(new Action(gridView.ShowColumnChooser), DispatcherPriority.Render, null);
            }
        }

        void columnChooser_PreviewGotKeyboardFocus(object sender, KeyboardFocusChangedEventArgs e) {
            e.Handled = true;
        }

        void ColumnChooserTypeChanged(ColumnChooserType newChooserType) {
            if(newChooserType == ColumnChooserType.Default) {
                columnChooser.View = null;
                grid.View.ClearValue(GridViewBase.ColumnChooserFactoryProperty);
            }
            else {
                columnChooser.View = gridView;
                grid.View.ColumnChooserFactory = new DemoColumnChooser(columnChooser);
                gridView.ShowColumnChooser();
            }
        }

        private void showHideButton_Toggle(object sender, RoutedEventArgs e) {
            UpdateToggleButtonContent();
        }

        void UpdateToggleButtonContent() {
            showHideButton.Content = showHideButton.IsChecked.Value ? "Hide Column Chooser" : "Show Column Chooser";
        }
        protected override object GetModuleDataContext() {
            base.GetModuleDataContext();
            return this;
        }

        private void customColumnChooserExpander_Expanded(object sender, RoutedEventArgs e) {
            customColumnChooserExpander.Header = "Hide Column Chooser";
        }

        private void customColumnChooserExpander_Collapsed(object sender, RoutedEventArgs e) {
            customColumnChooserExpander.Header = "Show Column Chooser";
        }
    }
}!MSBAML```����D@GridDemo, Version=13.1.4.0, Culture=neutral, PublicKeyToken=null#clr-namespace:GridDemoGridDemo#clr-namespace:GridDemoGridDemoGridDemo.ContextMenu\XPresentationFramework, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35RNWindowsBase, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35WSPresentationCore, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35D9http://schemas.microsoft.com/winfx/2006/xaml/presentationRNSystem.Xaml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089:x,http://schemas.microsoft.com/winfx/2006/xaml)dxdemoclr-namespace:GridDemoa]DevExpress.Xpf.Core.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a;dx2http://schemas.devexpress.com/winfx/2008/xaml/corefbDevExpress.Xpf.Grid.v13.1.Core, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49aa]DevExpress.Xpf.Grid.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49alhDevExpress.Xpf.Grid.v13.1.Extensions, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a@dxg2http://schemas.devexpress.com/winfx/2008/xaml/grid?dxe5http://schemas.devexpress.com/winfx/2008/xaml/editors<dxb2http://schemas.devexpress.com/winfx/2008/xaml/bars"localclr-namespace:GridDemoe	aDevExpress.Xpf.DemoBase.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49aAdxdb6http://schemas.devexpress.com/winfx/2008/xaml/demobase	Dmc;http://schemas.openxmlformats.org/markup-compatibility/2006	:d2http://schemas.microsoft.com/expression/blend/2008	-GridDemo.GridDemoModuleName$ContextMenuModule���	Resources
-	'DevExpress.Xpf.DemoBase.NWindDataLoader NWindDataLoaderB<DevExpress.Xpf.Core.DefaultBooleanToNullableBooleanConverter ,(DefaultBooleanToNullableBooleanConverter�%&	&	.�/	)DevExpress.Xpf.DemoBase.DemoModuleControlOptionsTopText$e_Right-click a column header, grid row, group or summary panel and explore available menu items.��OptionsContent��.+�$DevExpress.Xpf.Core.GroupFrame$��Column Menu��$�0,0,0,12q�.�����Orientation$Vertical=�.+�& DevExpress.Xpf.Editors.CheckEdit$
�0,0,0,4q�Content)#DevExpress.Xpf.Core.ObjectConverter$
Enabled	IsChecked��Path$View.IsColumnMenuEnabled��Mode$TwoWay=�-$�columnMenuRemoveItemCheck��$
�0,0,0,4q�$Remove 'Group Box' item-$�columnMenuAddItemCheck��$
�0,0,0,0q�$("Add 'Allow Sorting/Grouping' items$��GroupPanel Menu��$�0,0,0,12q�.���$Vertical=�.+�$
�0,0,0,4q�$
Enabled�$"View.IsGroupPanelMenuEnabled�$TwoWay=�-$#�groupPanelMenuRemoveItemCheck��$
�0,0,0,4q�$"Remove 'Clear Grouping' item-$ �groupPanelMenuAddItemCheck��$
�0,0,0,0q�$("Add 'Allow Sorting/Grouping' items$��	Cell Menu��$�0,0,0,12q�.���$Vertical=�.+�$
�0,0,0,0q�$
Enabled�$View.IsRowCellMenuEnabled�$TwoWay=�$��Footer Menu��$�0,0,0,12q�.���$Vertical=�.+�$
�0,0,0,4q�$
Enabled�$$View.IsTotalSummaryMenuEnabled�$TwoWay=�-$�totalMenuRemoveItemCheck��$
�0,0,0,0q�$Remove 'Customize' item	Content.	$DevExpress.Xpf.Bars.BarManager-$�
barManager��
Items
'	!DevExpress.Xpf.Bars.BarButtonItem	-�Name$copyCellDataItem��!
DevExpress.Xpf.Bars.BarItem
Content$	Cell Data

	IsVisible
��ElementName$ContextMenuModule��$CellMenuInfo.IsCellMenu�
Command�$ContextMenuModule��$CopyCellInfo�
CommandParameter�$CellMenuInfo�$ContextMenuModule��	-	$copyRowDataItem��$Row Data�$ContextMenuModule��$CopyRowInfo��$ContextMenuModule��$& CellMenuInfo.Row.RowHandle.Value�	-
$
deleteRowItem��$Delete�$ContextMenuModule��$	DeleteRow��$ContextMenuModule��$& CellMenuInfo.Row.RowHandle.Value�._�%DevExpress.Xpf.Grid.GridControl-$
�grid��$��1�$�0�)#DevExpress.Xpf.Grid.DataControlBaseItemsSource�$InvoicesNew�
�Source#[Columns$
DevExpress.Xpf.Grid.GridColumn
-$DevExpress.Xpf.Grid.ColumnBaseName$
colCountry��	FieldName$
Country��$DevExpress.Xpf.Grid.BaseColumnMinWidth$30��Width$30��
$
City��$30��$30��
-
$colUnitPrice��$	UnitPrice��$	150��$	150��EditSettings60DevExpress.Xpf.Editors.Settings.TextEditSettingsMaskType$
Numeric=�MaskUseAsDisplayFormat.Mask$c��MaskCulture$en-US��
$Discount��$	150��$	150��60DevExpress.Xpf.Editors.Settings.BaseEditSettings
DisplayFormat$0%��$
Numeric=�TotalSummary)#DevExpress.Xpf.Grid.GridSummaryItem)#DevExpress.Xpf.Grid.SummaryItemBase	FieldName$	UnitPrice�� SummaryType$ Count=�!ShowInColumn$!	UnitPrice��$Discount��$	 Max=�$!Discount��$	UnitPrice��$ Custom=�$!	UnitPrice��"
DisplayFormat$"Median={0:0}��
#Tag$#
customItem$GroupSummary$$	UnitPrice��$	 Sum=�$!"Sum of Unit Price is ${0:N}��%View%#DevExpress.Xpf.Grid.TableView-$
�view��& DevExpress.Xpf.Grid.GridViewBase&ShowGroupedColumns&.& DevExpress.Xpf.Grid.DataViewBase'NavigationStyle$	'Row=�(ShowTotalSummary(.)	AutoWidth).*ColumnMenuCustomizations*.(DevExpress.Xpf.Bars.BarItemLinkSeparator& DevExpress.Xpf.Bars.BarCheckItem-$allowSortingItem��$
Allow Sorting+IsThreeState+.,	IsChecked,�$:4(dxg:GridPopupMenu.GridMenuInfo).Column.AllowSorting�$TwoWay=�-�	Converter#-[.�RelativeSource.��*Self+-$allowGroupingItem��$Allow Grouping+.,�$;5(dxg:GridPopupMenu.GridMenuInfo).Column.AllowGrouping�$TwoWay=�#-[.��*Self+#/GroupPanelMenuCustomizations/-$allowAllSortingItem��$
Allow Sorting,�$82(dxg:GridPopupMenu.GridMenuInfo).View.AllowSorting�$TwoWay=�.��*Self+-$allowAllGroupingItem��$Allow Grouping,�$93(dxg:GridPopupMenu.GridMenuInfo).View.AllowGrouping�$TwoWay=�.��*Self+ 0RowCellMenuCustomizations0+%DevExpress.Xpf.Bars.BarButtonItemLink%DevExpress.Xpf.Bars.BarItemLink1BarItemName$1
deleteRowItem��$DevExpress.Xpf.Bars.BarSubItem-$copyInfoItem��$	Copy Info
^Cclr-namespace:System.Windows.Interop;assembly=PresentationFrameworkSystem.Windows.Interop�QinteropCclr-namespace:System.Windows.Interop;assembly=PresentationFramework	1+System.Windows.Interop.BrowserInteropHelper2IsBrowserHosted#Z2-4.DevExpress.Xpf.Core.NegationConverterExtension3	ItemLinks3$1copyCellDataItem��$1copyRowDataItem��%4TotalSummaryMenuCustomizations4-$customSummaryMenuItem��/)DevExpress.Xpf.Bars.BarItemLinkActionBase5
ItemLinkIndex$55�$Median$
,trueY�6	CloseSubMenuOnClick6.!�%<local:GridDemoModule x:Class="GridDemo.ContextMenu" x:Name="ContextMenuModule"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:dxdemo="clr-namespace:GridDemo"
    xmlns:dx="http://schemas.devexpress.com/winfx/2008/xaml/core"
    xmlns:dxg="http://schemas.devexpress.com/winfx/2008/xaml/grid"
 xmlns:dxe="http://schemas.devexpress.com/winfx/2008/xaml/editors"
    xmlns:dxb="http://schemas.devexpress.com/winfx/2008/xaml/bars"
    xmlns:local="clr-namespace:GridDemo"
    xmlns:dxdb="http://schemas.devexpress.com/winfx/2008/xaml/demobase"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    mc:Ignorable="d" d:DesignHeight="400" d:DesignWidth="800">
    <local:GridDemoModule.Resources>
        <ResourceDictionary>
            <dxdb:NWindDataLoader x:Key="NWindDataLoader" />
            <dx:DefaultBooleanToNullableBooleanConverter x:Key="DefaultBooleanToNullableBooleanConverter" />
        </ResourceDictionary>
    </local:GridDemoModule.Resources>
    <dxdb:DemoModuleControl>
        <dxdb:DemoModuleControl.OptionsTopText>
            Right-click a column header, grid row, group or summary panel and explore available menu items.
        </dxdb:DemoModuleControl.OptionsTopText>
        <dxdb:DemoModuleControl.OptionsContent>
            <StackPanel>
                <dx:GroupFrame Header="Column Menu" Margin="0,0,0,12">
                    <StackPanel Orientation="Vertical">
                        <dxe:CheckEdit Margin="0,0,0,4" IsChecked="{Binding Path=View.IsColumnMenuEnabled, Mode=TwoWay}" Content="Enabled" />
                        <dxe:CheckEdit Name="columnMenuRemoveItemCheck" Margin="0,0,0,4" Content="Remove 'Group Box' item" />
                        <dxe:CheckEdit Name="columnMenuAddItemCheck" Margin="0,0,0,0" Content="Add 'Allow Sorting/Grouping' items" />
                    </StackPanel>
                </dx:GroupFrame>
                <dx:GroupFrame Header="GroupPanel Menu" Margin="0,0,0,12">
                    <StackPanel Orientation="Vertical">
                        <dxe:CheckEdit Margin="0,0,0,4" IsChecked="{Binding Path=View.IsGroupPanelMenuEnabled, Mode=TwoWay}" Content="Enabled" />
                        <dxe:CheckEdit Name="groupPanelMenuRemoveItemCheck" Margin="0,0,0,4" Content="Remove 'Clear Grouping' item" />
                        <dxe:CheckEdit Name="groupPanelMenuAddItemCheck" Margin="0,0,0,0" Content="Add 'Allow Sorting/Grouping' items" />
                    </StackPanel>
                </dx:GroupFrame>
                <dx:GroupFrame Header="Cell Menu" Margin="0,0,0,12">
                    <StackPanel Orientation="Vertical">
                        <dxe:CheckEdit Margin="0,0,0,0" IsChecked="{Binding Path=View.IsRowCellMenuEnabled, Mode=TwoWay}" Content="Enabled" />
                    </StackPanel>
                </dx:GroupFrame>
                <dx:GroupFrame Header="Footer Menu" Margin="0,0,0,12">
                    <StackPanel Orientation="Vertical">
                        <dxe:CheckEdit Margin="0,0,0,4" IsChecked="{Binding Path=View.IsTotalSummaryMenuEnabled, Mode=TwoWay}" Content="Enabled" />
                        <dxe:CheckEdit Name="totalMenuRemoveItemCheck" Margin="0,0,0,0" Content="Remove 'Customize' item" />
                    </StackPanel>
                </dx:GroupFrame>
            </StackPanel>
            </dxdb:DemoModuleControl.OptionsContent>
        <dxb:BarManager Name="barManager">
            <dxb:BarManager.Items>
                <dxb:BarButtonItem Name="copyCellDataItem" IsVisible="{Binding ElementName=ContextMenuModule, Path=CellMenuInfo.IsCellMenu}" Content="Cell Data" Command="{Binding ElementName=ContextMenuModule, Path=CopyCellInfo}" CommandParameter="{Binding Path=CellMenuInfo, ElementName=ContextMenuModule}" />
                <dxb:BarButtonItem Name="copyRowDataItem" Content="Row Data" Command="{Binding ElementName=ContextMenuModule, Path=CopyRowInfo}" CommandParameter="{Binding ElementName=ContextMenuModule, Path=CellMenuInfo.Row.RowHandle.Value}" />
                <dxb:BarButtonItem Name="deleteRowItem" Content="Delete" Command="{Binding ElementName=ContextMenuModule, Path=DeleteRow}" CommandParameter="{Binding ElementName=ContextMenuModule, Path=CellMenuInfo.Row.RowHandle.Value}" />
            </dxb:BarManager.Items>
            <dxg:GridControl Grid.Row="1" Name="grid" Grid.Column="0" ItemsSource="{Binding Path=InvoicesNew, Source={StaticResource NWindDataLoader}}" CustomSummary="grid_CustomSummary" CustomSummaryExists="grid_CustomSummaryExists">
                <dxg:GridControl.Columns>
                    <dxg:GridColumn Name="colCountry" FieldName="Country" MinWidth="30" Width="30" />
                    <dxg:GridColumn FieldName="City" MinWidth="30" Width="30" />
                    <dxg:GridColumn Name="colUnitPrice" FieldName="UnitPrice" MinWidth="150" Width="150">
                        <dxg:GridColumn.EditSettings>
                            <dxe:TextEditSettings MaskType="Numeric" MaskUseAsDisplayFormat="True" Mask="c" MaskCulture="en-US" />
                        </dxg:GridColumn.EditSettings>
                    </dxg:GridColumn>
                    <dxg:GridColumn FieldName="Discount" MinWidth="150" Width="150">
                        <dxg:GridColumn.EditSettings>
                            <dxe:TextEditSettings DisplayFormat="0%" MaskType="Numeric" />
                        </dxg:GridColumn.EditSettings>
                    </dxg:GridColumn>
                </dxg:GridControl.Columns>
                <dxg:GridControl.TotalSummary>
                    <dxg:GridSummaryItem FieldName="UnitPrice" SummaryType="Count" ShowInColumn="UnitPrice" />
                    <dxg:GridSummaryItem FieldName="Discount" SummaryType="Max" ShowInColumn="Discount" />
                    <dxg:GridSummaryItem FieldName="UnitPrice" SummaryType="Custom" ShowInColumn="UnitPrice" DisplayFormat="Median={0:0}" Tag="customItem" />
                </dxg:GridControl.TotalSummary>
                <dxg:GridControl.GroupSummary>
                    <dxg:GridSummaryItem FieldName="UnitPrice" SummaryType="Sum" DisplayFormat="Sum of Unit Price is ${0:N}" />
                </dxg:GridControl.GroupSummary>
                <dxg:GridControl.View>
                    <dxg:TableView Name="view" ShowGroupedColumns="True" NavigationStyle="Row" ShowTotalSummary="True" AutoWidth="True" ShowGridMenu="TableView_ShowGridMenu">
                        <dxg:TableView.ColumnMenuCustomizations>
                            <dxb:BarItemLinkSeparator />
                            <dxb:BarCheckItem Name="allowSortingItem" Content="Allow Sorting" IsChecked="{Binding Path=(dxg:GridPopupMenu.GridMenuInfo).Column.AllowSorting, Mode=TwoWay, Converter={StaticResource DefaultBooleanToNullableBooleanConverter}, RelativeSource={RelativeSource Self}}" IsThreeState="true" />
                            <dxb:BarCheckItem Name="allowGroupingItem" Content="Allow Grouping" IsChecked="{Binding Path=(dxg:GridPopupMenu.GridMenuInfo).Column.AllowGrouping, Mode=TwoWay, Converter={StaticResource DefaultBooleanToNullableBooleanConverter}, RelativeSource={RelativeSource Self}}" IsThreeState="true" />
                        </dxg:TableView.ColumnMenuCustomizations>
                        <dxg:TableView.GroupPanelMenuCustomizations>
                            <dxb:BarItemLinkSeparator />
                            <dxb:BarCheckItem Name="allowAllSortingItem" Content="Allow Sorting" IsChecked="{Binding Path=(dxg:GridPopupMenu.GridMenuInfo).View.AllowSorting, Mode=TwoWay, RelativeSource={RelativeSource Self}}" />
                            <dxb:BarCheckItem Name="allowAllGroupingItem" Content="Allow Grouping" IsChecked="{Binding Path=(dxg:GridPopupMenu.GridMenuInfo).View.AllowGrouping, Mode=TwoWay, RelativeSource={RelativeSource Self}}" />
                        </dxg:TableView.GroupPanelMenuCustomizations>
                        <dxg:TableView.RowCellMenuCustomizations>
                            <dxb:BarButtonItemLink BarItemName="deleteRowItem" />
                            <dxb:BarSubItem Name="copyInfoItem" Content="Copy Info">
                                <dxb:BarItem.IsVisible>
                                    <Binding Source="{x:Static interop:BrowserInteropHelper.IsBrowserHosted}" Converter="{dx:NegationConverter}" xmlns:interop="clr-namespace:System.Windows.Interop;assembly=PresentationFramework" />
                                </dxb:BarItem.IsVisible>
                                <dxb:BarSubItem.ItemLinks>
                                    <dxb:BarButtonItemLink BarItemName="copyCellDataItem" />
                                    <dxb:BarButtonItemLink BarItemName="copyRowDataItem" />
                                </dxb:BarSubItem.ItemLinks>
                            </dxb:BarSubItem>
                        </dxg:TableView.RowCellMenuCustomizations>
                        <dxg:TableView.TotalSummaryMenuCustomizations>
                            <dxb:BarCheckItem Name="customSummaryMenuItem" dxb:BarItemLinkActionBase.ItemLinkIndex="5" Content="Median" IsChecked="true" CloseSubMenuOnClick="False" CheckedChanged="customSummaryMenuItem_CheckedChanged" />
                        </dxg:TableView.TotalSummaryMenuCustomizations>
                    </dxg:TableView>
                </dxg:GridControl.View>
            </dxg:GridControl>
        </dxb:BarManager>
    </dxdb:DemoModuleControl>
</local:GridDemoModule>!Nusing System;
using System.Windows;
using System.Windows.Input;
using GridDemo;
using DevExpress.Xpf.Grid;
using DevExpress.Xpf.Bars;
using DevExpress.Data;
using DevExpress.Xpf.Core.Commands;
using DevExpress.Xpf.Utils;

namespace GridDemo {
    public partial class ContextMenu : GridDemoModule {
        public static readonly DependencyProperty CellMenuInfoProperty = DependencyPropertyManager.Register("CellMenuInfo", typeof(GridCellMenuInfo), typeof(ContextMenu), new FrameworkPropertyMetadata(null));

        public ICommand DeleteRow { get; private set; }
        public ICommand CopyCellInfo { get; private set; }
        public ICommand CopyRowInfo { get; private set; }

        public GridCellMenuInfo CellMenuInfo {
            get { return (GridCellMenuInfo)GetValue(CellMenuInfoProperty); }
            set { SetValue(CellMenuInfoProperty, value); }
        }

        public ContextMenu() {
            DeleteRow = new DelegateCommand<object>(OnDeleteRow);
            CopyCellInfo = new DelegateCommand<object>(OnCopyCellInfo);
            CopyRowInfo = new DelegateCommand<object>(OnCopyRowInfo);
            InitializeComponent();
            grid.GroupBy(colCountry);
        }
        private void TableView_ShowGridMenu(object sender, DevExpress.Xpf.Grid.GridMenuEventArgs e) {
            switch(e.MenuType) {
                case GridMenuType.Column:
                    if(columnMenuRemoveItemCheck.IsChecked.Value)
                        e.Customizations.Add(new RemoveBarItemAndLinkAction() { ItemName = DefaultColumnMenuItemNames.GroupBox });
                    if(!columnMenuAddItemCheck.IsChecked.Value) {
                        e.Customizations.Add(new RemoveBarItemAndLinkAction() { ItemName = "allowSortingItem" });
                        e.Customizations.Add(new RemoveBarItemAndLinkAction() { ItemName = "allowGroupingItem" });
                    }
                    break;
                case GridMenuType.GroupPanel:
                    if(groupPanelMenuRemoveItemCheck.IsChecked.Value)
                        e.Customizations.Add(new RemoveBarItemAndLinkAction() { ItemName = DefaultColumnMenuItemNames.ClearGrouping });
                    if(!groupPanelMenuAddItemCheck.IsChecked.Value) {
                        e.Customizations.Add(new RemoveBarItemAndLinkAction() { ItemName = "allowAllSortingItem" });
                        e.Customizations.Add(new RemoveBarItemAndLinkAction() { ItemName = "allowAllGroupingItem" });
                    }
                    break;
                case GridMenuType.TotalSummary:
                    if(totalMenuRemoveItemCheck.IsChecked.Value)
                        e.Customizations.Add(new RemoveBarItemAndLinkAction() { ItemName = DefaultSummaryMenuItemNames.Customize });
                    if(!object.ReferenceEquals(e.MenuInfo.Column, colUnitPrice))
                        e.Customizations.Add(new RemoveBarItemAndLinkAction() { ItemName = "customSummaryMenuItem" });

                    break;
            }
            CellMenuInfo = e.MenuType == GridMenuType.RowCell ? (GridCellMenuInfo)e.MenuInfo : null;
        }
        void OnDeleteRow(object parameter) {
            if(parameter is int)
                view.DeleteRow(Convert.ToInt32(parameter));
        }
        void OnCopyCellInfo(object parameter) {
            GridCellMenuInfo menuInfo = parameter as GridCellMenuInfo;
            if(menuInfo != null && menuInfo.Row != null) {
                string text = GetCellText(menuInfo.Row.RowHandle.Value, menuInfo.Column);
                SetClibboardText(text);
            }
        }
        void OnCopyRowInfo(object parameter) {
            if(parameter is int) {
                grid.ClipboardCopyMode = ClipboardCopyMode.ExcludeHeader;
                grid.CopyRowsToClipboard(new int[] { Convert.ToInt32(parameter) });
                grid.ClipboardCopyMode = ClipboardCopyMode.IncludeHeader;
            }
        }
        decimal max, min;
        private void grid_CustomSummary(object sender, DevExpress.Data.CustomSummaryEventArgs e) {
            if(object.Equals(e.SummaryProcess, CustomSummaryProcess.Start)) {
                min = decimal.MinValue;
            }
            if(e.SummaryProcess == CustomSummaryProcess.Calculate) {
                decimal value = (decimal)e.FieldValue;
                if(min == decimal.MinValue) {
                    min = max = value;
                }
                else {
                    max = Math.Max(max, value);
                    min = Math.Min(min, value);
                }
            }
            if(e.SummaryProcess == CustomSummaryProcess.Finalize)
                e.TotalValue = (min + max) / 2;
        }

        GridSummaryItem customItemCore;
        GridSummaryItem CustomItem {
            get {
                if(customItemCore == null)
                    customItemCore = GetCustomItem();
                return customItemCore;
            }
        }
        private GridSummaryItem GetCustomItem() {
            foreach(GridSummaryItem item in grid.TotalSummary) {
                if(item.Tag != null && item.Tag.ToString() == "customItem")
                    return item;
            }
            return null;
        }

        private void grid_CustomSummaryExists(object sender, DevExpress.Data.CustomSummaryExistEventArgs e) {
            if((grid != null) && (object.Equals(e.Item, CustomItem)))
                e.Exists = (view.TotalSummaryMenuCustomizations[0] as BarCheckItem).IsChecked.Value;
        }
        private void customSummaryMenuItem_CheckedChanged(object sender, ItemClickEventArgs e) {
            if(grid != null)
                CustomItem.SummaryType = (sender as BarCheckItem).IsChecked.Value ? SummaryItemType.Custom : SummaryItemType.None;
        }
        void SetClibboardText(string text) {
            try {
                Clipboard.SetText(text);
            } catch { }
        }

        string GetCellText(int rowHandle, ColumnBase column) {
            return Convert.ToString(grid.GetCellValue(rowHandle, (GridColumn)column));
        }
    }
}!� MSBAML```����D@GridDemo, Version=13.1.4.0, Culture=neutral, PublicKeyToken=null#clr-namespace:GridDemoGridDemoOKmscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e0891&clr-namespace:System;assembly=mscorlibSystemGridDemo.CopyPaste\XPresentationFramework, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35RNWindowsBase, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35WSPresentationCore, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35D9http://schemas.microsoft.com/winfx/2006/xaml/presentationRNSystem.Xaml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089:x,http://schemas.microsoft.com/winfx/2006/xamla]DevExpress.Xpf.Core.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a;dx2http://schemas.devexpress.com/winfx/2008/xaml/corefbDevExpress.Xpf.Grid.v13.1.Core, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49aa]DevExpress.Xpf.Grid.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49al	hDevExpress.Xpf.Grid.v13.1.Extensions, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a@dxg2http://schemas.devexpress.com/winfx/2008/xaml/grid	Gdxgt<http://schemas.devexpress.com/winfx/2008/xaml/grid/themekeys?dxe5http://schemas.devexpress.com/winfx/2008/xaml/editorse
aDevExpress.Xpf.DemoBase.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49aAdxdb6http://schemas.devexpress.com/winfx/2008/xaml/demobase
<dxb2http://schemas.devexpress.com/winfx/2008/xaml/bars"localclr-namespace:GridDemo0sys&clr-namespace:System;assembly=mscorlibDmc;http://schemas.openxmlformats.org/markup-compatibility/2006:d2http://schemas.microsoft.com/expression/blend/2008$
�Stretch=�$
�Stretch=��	Resources
�MergedDictionaries
�Source��$A;/GridDemo;component/ModuleResources/CopyPasteTemplates.xaml?�%.�/
)DevExpress.Xpf.DemoBase.DemoModuleControl(!SupressGroupFramePaddingInOptions.OptionsContent��J�CommandBindings)#System.Windows.Input.CommandBinding-Command$ApplicationCommands.Copy��-$ApplicationCommands.Cut��-$ApplicationCommands.Paste��-$ ApplicationCommands.Delete��.+�& DevExpress.Xpf.Editors.CheckEdit-Name$& allowCopyingtoClipboardCheckEdit��Content)#DevExpress.Xpf.Core.ObjectConverter$ Allow Copying to Clipboard|�.-$copyHeaderCheckEdit��$
�0,4,0,0q�$Copy Header|�.$DevExpress.Xpf.Core.GroupFrame$�0,12,0,0q�$��
Paste Rows��.���	��Orientation$	Vertical=�.+�("DevExpress.Xpf.Editors.ListBoxEdit-
Name$
	PasteRule��$�0,0,30,0q�%DevExpress.Xpf.Editors.BaseEdit
ShowBorder.
SelectedIndex�
�Path$
PastUnderFocusedRow��	Converter:4GridDemo.PastUnderFocusedRowToSelectedIndexConverter�Mode$TwoWay=��Z�
StyleSettings:	4DevExpress.Xpf.Editors.RadioListBoxEditStyleSettings	Items��After Focused Row����After All Rows���-$�
CopyButton��$�0,12,0,0q�$
�Copy��$��ApplicationCommands.Copy��|�.�-	$�	CutButton��$
�0,4,0,0q�$	�Cut��$��ApplicationCommands.Cut��|�.�-
$�PasteButton��$
�0,4,0,0q�$�Paste��$��ApplicationCommands.Paste��|�.�-$�DeleteButton��$
�0,4,0,0q�$�Delete��$ ��ApplicationCommands.Delete��|�.Content.$
DevExpress.Xpf.Bars.BarManager

Items'!DevExpress.Xpf.Bars.BarButtonItem-�Name$gridCopy��!DevExpress.Xpf.Bars.BarItemContent$
CopyCommand$ApplicationCommands.Copy��-
$
gridCut��$	Cut$ApplicationCommands.Cut��-$	gridPaste��$Paste$ApplicationCommands.Paste��-$
gridDelete��$Delete$ ApplicationCommands.Delete��._��-�Name$DemoContentGrid��$�12q��RowDefinitions�$��*��$��*�.+��$��0��Padding$5q�$�-5q����$
FocusedGrid��ConverterParameter$First��&
 GridDemo.FocusedToColorConverter
._�%DevExpress.Xpf.Grid.GridControl-Name$	firstGrid��)#DevExpress.Xpf.Grid.DataControlBaseDesignTimeDataObjectType#GridDemo.CopyPasteOutlookData"
SelectionMode$	Row=�-$ApplicationCommands.Copy��-$ApplicationCommands.Cut��-$ApplicationCommands.Paste��-$ ApplicationCommands.Delete��

DXContextMenu#DevExpress.Xpf.Bars.PopupMenu-Name$firstPopupMenu�� 	ItemLinks. +%DevExpress.Xpf.Bars.BarButtonItemLink%DevExpress.Xpf.Bars.BarItemLink!BarItemName$!gridCopy��$
!gridCut��$!	gridPaste��$!
gridDelete��"Columns"$DevExpress.Xpf.Grid.GridColumn$DevExpress.Xpf.Grid.ColumnBase#	FieldName$	#OID��$DevExpress.Xpf.Grid.BaseColumn
$Header$$Id%MinWidth$%50��&Width$&50��'ReadOnly'.$
#From��$	%100��$	&100��$
#Sent��$	%100��$	&100��(
GroupInterval$(	DateRange=�)AutoFilterCondition$)Equals=�*EditSettings*E?DevExpress.Xpf.Editors.Settings.Extension.DateSettingsExtensionE?DevExpress.Xpf.Editors.Settings.Extension.TextSettingsExtension+
DisplayFormat$+d��$#HoursActive��$%70��$&70��$
)Like=�$#
HasAttachment��$%50��$&50��$)Equals=�$#AnimationElement��,UnboundType]YDevExpress.Data.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a82DevExpress.Utils.Design.UnboundColumnTypeConverter$,Object-Visible-..ShowInColumnChooser../AllowColumnFiltering5/DevExpress.Utils.Design.DefaultBooleanConverter$/False0View0#DevExpress.Xpf.Grid.TableView1RowMinHeight$10Q�& DevExpress.Xpf.Grid.DataViewBase2NavigationStyle$	2Row=�3	AutoWidth3.& DevExpress.Xpf.Grid.GridViewBase4ShowGroupPanel4.5
AllowGrouping5.6AllowSorting6.7AllowColumnFiltering7. rowTemplate8DataRowTemplate#8[ 9RowCellMenuCustomizations9-$
viewFirstCopy��$
Copy$ApplicationCommands.Copy��-$viewFirstCut��$	Cut$ApplicationCommands.Cut��-$viewFirstPaste��$Paste$ApplicationCommands.Paste��-$viewFirstDelete��$Delete$ ApplicationCommands.Delete����-$�CopyPasteDemoTabControl��$��1�$�0,12,0,0q�.@���$
��Grid��.��$5q�$�-5q����$
FocusedGrid�$Second��
._�-$
secondGrid��"$	Row=�-$ApplicationCommands.Copy��-$ApplicationCommands.Cut��-$ApplicationCommands.Paste��- $ ApplicationCommands.Delete��-!$secondPopupMenu��. $!gridCopy��$
!gridCut��$!	gridPaste��$!
gridDelete��"$	#OID��$$Id$%50��$&50��'.$
#From��$	%100��$	&100��$
#Sent��$	%100��$	&100��$(	DateRange=�$)Equals=�*$+d��$#HoursActive��$%70��$&70��$
)Like=�$#
HasAttachment��$%50��$&50��$)Equals=�$#AnimationElement��$,Object-...$/False0$10Q�$	2Row=�3.4.6.7.5.#8[9-"$viewSecondCopy��$
Copy$ApplicationCommands.Copy��-#$
viewSecondCut��$	Cut$ApplicationCommands.Cut��-$$viewSecondPaste��$Paste$ApplicationCommands.Paste��-%$viewSecondDelete��$Delete$ ApplicationCommands.Delete����$
��Text��.�%DevExpress.Xpf.Editors.TextEdit-&:Name$:textEdit��)#DevExpress.Xpf.Editors.TextEditBase;
AcceptsReturn;.$	�Top=�"<VerticalScrollBarVisibility$
<Visible=�!4<local:GridDemoModule x:Class="GridDemo.CopyPaste"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
 xmlns:dx="http://schemas.devexpress.com/winfx/2008/xaml/core"
 xmlns:dxg="http://schemas.devexpress.com/winfx/2008/xaml/grid"
    xmlns:dxgt="http://schemas.devexpress.com/winfx/2008/xaml/grid/themekeys"
 xmlns:dxe="http://schemas.devexpress.com/winfx/2008/xaml/editors"
 xmlns:dxdb="http://schemas.devexpress.com/winfx/2008/xaml/demobase"
 xmlns:dxb="http://schemas.devexpress.com/winfx/2008/xaml/bars"
 xmlns:local="clr-namespace:GridDemo"
 xmlns:sys="clr-namespace:System;assembly=mscorlib"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    mc:Ignorable="d" d:DesignHeight="400" d:DesignWidth="800"
 HorizontalAlignment="Stretch" VerticalAlignment="Stretch">
    <local:GridDemoModule.Resources>
        <ResourceDictionary>
            <ResourceDictionary.MergedDictionaries>
                <ResourceDictionary Source="/GridDemo;component/ModuleResources/CopyPasteTemplates.xaml" />
            </ResourceDictionary.MergedDictionaries>
        </ResourceDictionary>
    </local:GridDemoModule.Resources>
    <dxdb:DemoModuleControl SupressGroupFramePaddingInOptions="False">
        <dxdb:DemoModuleControl.OptionsContent>
            <StackPanel>
                <StackPanel.CommandBindings>
                    <CommandBinding Command="ApplicationCommands.Copy" Executed="CopyCommandBinding_Executed" CanExecute="CopyCommandBinding_CanExecute"/>
                    <CommandBinding Command="ApplicationCommands.Cut" Executed="CutCommandBinding_Executed" CanExecute="CutCommandBinding_CanExecute"/>
                    <CommandBinding Command="ApplicationCommands.Paste" Executed="PasteCommandBinding_Executed" CanExecute="PasteCommandBinding_CanExecute"/>
                    <CommandBinding Command="ApplicationCommands.Delete" Executed="DeleteCommandBinding_Executed" CanExecute="DeleteCommandBinding_CanExecute"/>
                </StackPanel.CommandBindings>
                <dxe:CheckEdit x:Name="allowCopyingtoClipboardCheckEdit" Checked="allowCopyingtoClipboardCheckEdit_Checked" Unchecked="allowCopyingtoClipboardCheckEdit_Unchecked" Content="Allow Copying to Clipboard" Focusable="False"/>
                <dxe:CheckEdit Margin="0,4,0,0" x:Name="copyHeaderCheckEdit" Checked="copyHeaderCheckEdit_Checked" Unchecked="copyHeaderCheckEdit_Unchecked" Content="Copy Header" Focusable="False"/>
                <dx:GroupFrame Margin="0,12,0,0" Header="Paste Rows">
                    <StackPanel Orientation="Vertical">
                        <dxe:ListBoxEdit Margin="0,0,30,0" x:Name="PasteRule"
          SelectedIndex="{Binding Path=PastUnderFocusedRow, Converter={local:PastUnderFocusedRowToSelectedIndexConverter}, Mode=TwoWay}"
          Background="{x:Null}" ShowBorder="False">
                            <dxe:ListBoxEdit.StyleSettings>
                                <dxe:RadioListBoxEditStyleSettings/>
                            </dxe:ListBoxEdit.StyleSettings>
                            <dxe:ListBoxEdit.Items>
                                <sys:String>After Focused Row</sys:String>
                                <sys:String>After All Rows</sys:String>
                            </dxe:ListBoxEdit.Items>
                        </dxe:ListBoxEdit>
                    </StackPanel>
                </dx:GroupFrame>
                <Button Name="CopyButton" Margin="0,12,0,0" Content="Copy" Command="ApplicationCommands.Copy" Focusable="False"/>
                <Button Name="CutButton" Margin="0,4,0,0" Content="Cut" Command="ApplicationCommands.Cut" Focusable="False"/>
                <Button Name="PasteButton" Margin="0,4,0,0" Content="Paste" Command="ApplicationCommands.Paste" Focusable="False"/>
                <Button Name="DeleteButton" Margin="0,4,0,0" Content="Delete" Command="ApplicationCommands.Delete" Focusable="False"/>
            </StackPanel>
        </dxdb:DemoModuleControl.OptionsContent>
        <dxb:BarManager>
            <dxb:BarManager.Items>
                <dxb:BarButtonItem Name="gridCopy" Content="Copy" Command="ApplicationCommands.Copy"/>
                <dxb:BarButtonItem Name="gridCut" Content="Cut" Command="ApplicationCommands.Cut" />
                <dxb:BarButtonItem Name="gridPaste" Content="Paste" Command="ApplicationCommands.Paste" />
                <dxb:BarButtonItem Name="gridDelete" Content="Delete" Command="ApplicationCommands.Delete" />
            </dxb:BarManager.Items>
            <Grid  Margin="12" x:Name="DemoContentGrid">
                <Grid.RowDefinitions>
                    <RowDefinition Height="*"/>
                    <RowDefinition Height="*"/>
                </Grid.RowDefinitions>
                <Border Grid.Row="0" Padding="5" Margin="-5" Background="{Binding Path=FocusedGrid, ConverterParameter=First, Converter={local:FocusedToColorConverter}}">
                    <dxg:GridControl x:Name="firstGrid" CustomUnboundColumnData="Grid_CustomUnboundColumnData" DesignTimeDataObjectType="local:CopyPasteOutlookData" SelectionMode="Row">
                        <dxg:GridControl.CommandBindings>
                            <CommandBinding Command="ApplicationCommands.Copy" Executed="CopyCommandBinding_Executed" CanExecute="CopyCommandBinding_CanExecute"/>
                            <CommandBinding Command="ApplicationCommands.Cut" Executed="CutCommandBinding_Executed" CanExecute="CutCommandBinding_CanExecute"/>
                            <CommandBinding Command="ApplicationCommands.Paste" Executed="PasteCommandBinding_Executed" CanExecute="PasteCommandBinding_CanExecute"/>
                            <CommandBinding Command="ApplicationCommands.Delete" Executed="DeleteCommandBinding_Executed" CanExecute="DeleteCommandBinding_CanExecute"/>
                        </dxg:GridControl.CommandBindings>
                        <dxb:BarManager.DXContextMenu>
                            <dxb:PopupMenu x:Name="firstPopupMenu">
                                <dxb:BarButtonItemLink  BarItemName="gridCopy"/>
                                <dxb:BarButtonItemLink  BarItemName="gridCut"/>
                                <dxb:BarButtonItemLink  BarItemName="gridPaste"/>
                                <dxb:BarButtonItemLink  BarItemName="gridDelete"/>
                            </dxb:PopupMenu>
                        </dxb:BarManager.DXContextMenu>
                        <dxg:GridControl.Columns>
                            <dxg:GridColumn FieldName="OID" Header="Id" MinWidth="50" Width="50" ReadOnly="true"/>
                            <dxg:GridColumn FieldName="From" MinWidth="100" Width="100" />
                            <dxg:GridColumn FieldName="Sent" MinWidth="100" Width="100" GroupInterval="DateRange"
          EditSettings="{dxe:DateSettings DisplayFormat=d}" AutoFilterCondition="Equals"/>
                            <dxg:GridColumn FieldName="HoursActive" MinWidth="70" Width="70" AutoFilterCondition="Like"/>
                            <dxg:GridColumn FieldName="HasAttachment" MinWidth="50" Width="50" AutoFilterCondition="Equals"/>
                            <dxg:GridColumn FieldName="AnimationElement" UnboundType="Object" Visible="False" ShowInColumnChooser="False" AllowColumnFiltering="False"/>
                        </dxg:GridControl.Columns>
                        <dxg:GridControl.View>
                            <dxg:TableView RowMinHeight="0" NavigationStyle="Row" AutoWidth="True" ShowGroupPanel="False" AllowGrouping="False"
            AllowSorting="False" AllowColumnFiltering="False" DataRowTemplate="{StaticResource rowTemplate}">
                                <dxg:TableView.RowCellMenuCustomizations>
                                    <dxb:BarButtonItem Name="viewFirstCopy" Content="Copy" Command="ApplicationCommands.Copy"/>
                                    <dxb:BarButtonItem Name="viewFirstCut" Content="Cut" Command="ApplicationCommands.Cut"/>
                                    <dxb:BarButtonItem Name="viewFirstPaste" Content="Paste" Command="ApplicationCommands.Paste"/>
                                    <dxb:BarButtonItem Name="viewFirstDelete" Content="Delete" Command="ApplicationCommands.Delete"/>
                                </dxg:TableView.RowCellMenuCustomizations>
                            </dxg:TableView>
                        </dxg:GridControl.View>
                    </dxg:GridControl>
                </Border>
                <TabControl Name="CopyPasteDemoTabControl" Grid.Row="1" Margin="0,12,0,0">
                    <TabItem Header="Grid">
                        <Border Padding="5" Margin="-5" Background="{Binding Path=FocusedGrid, ConverterParameter=Second, Converter={local:FocusedToColorConverter}}">
                            <dxg:GridControl x:Name="secondGrid" CustomUnboundColumnData="Grid_CustomUnboundColumnData" DesignTimeDataObjectType="local:CopyPasteOutlookData" SelectionMode="Row">
                                <dxg:GridControl.CommandBindings>
                                    <CommandBinding Command="ApplicationCommands.Copy" Executed="CopyCommandBinding_Executed" CanExecute="CopyCommandBinding_CanExecute"/>
                                    <CommandBinding Command="ApplicationCommands.Cut" Executed="CutCommandBinding_Executed" CanExecute="CutCommandBinding_CanExecute"/>
                                    <CommandBinding Command="ApplicationCommands.Paste" Executed="PasteCommandBinding_Executed" CanExecute="PasteCommandBinding_CanExecute"/>
                                    <CommandBinding Command="ApplicationCommands.Delete" Executed="DeleteCommandBinding_Executed" CanExecute="DeleteCommandBinding_CanExecute"/>
                                </dxg:GridControl.CommandBindings>
                                <dxb:BarManager.DXContextMenu>
                                    <dxb:PopupMenu x:Name="secondPopupMenu">
                                        <dxb:BarButtonItemLink  BarItemName="gridCopy"/>
                                        <dxb:BarButtonItemLink  BarItemName="gridCut"/>
                                        <dxb:BarButtonItemLink  BarItemName="gridPaste"/>
                                        <dxb:BarButtonItemLink  BarItemName="gridDelete"/>
                                    </dxb:PopupMenu>
                                </dxb:BarManager.DXContextMenu>
                                <dxg:GridControl.Columns>
                                    <dxg:GridColumn FieldName="OID" Header="Id" MinWidth="50" Width="50" ReadOnly="true"/>
                                    <dxg:GridColumn FieldName="From" MinWidth="100" Width="100" />
                                    <dxg:GridColumn FieldName="Sent" MinWidth="100" Width="100" GroupInterval="DateRange"
           EditSettings="{dxe:DateSettings DisplayFormat=d}" AutoFilterCondition="Equals"/>
                                    <dxg:GridColumn FieldName="HoursActive" MinWidth="70" Width="70" AutoFilterCondition="Like"/>
                                    <dxg:GridColumn FieldName="HasAttachment" MinWidth="50" Width="50" AutoFilterCondition="Equals"/>
                                    <dxg:GridColumn FieldName="AnimationElement" UnboundType="Object" Visible="False" ShowInColumnChooser="False" AllowColumnFiltering="False"/>
                                </dxg:GridControl.Columns>
                                <dxg:GridControl.View>
                                    <dxg:TableView RowMinHeight="0" NavigationStyle="Row" AutoWidth="True" ShowGroupPanel="False"
             AllowSorting="False" AllowColumnFiltering="False" AllowGrouping="False"
             DataRowTemplate="{StaticResource rowTemplate}">
                                        <dxg:TableView.RowCellMenuCustomizations>
                                            <dxb:BarButtonItem Name="viewSecondCopy" Content="Copy" Command="ApplicationCommands.Copy"/>
                                            <dxb:BarButtonItem Name="viewSecondCut" Content="Cut" Command="ApplicationCommands.Cut"/>
                                            <dxb:BarButtonItem Name="viewSecondPaste" Content="Paste" Command="ApplicationCommands.Paste"/>
                                            <dxb:BarButtonItem Name="viewSecondDelete" Content="Delete" Command="ApplicationCommands.Delete"/>
                                        </dxg:TableView.RowCellMenuCustomizations>
                                    </dxg:TableView>
                                </dxg:GridControl.View>
                            </dxg:GridControl>
                        </Border>
                    </TabItem>
                    <TabItem Header="Text">
                        <dxe:TextEdit x:Name="textEdit" AcceptsReturn="True" VerticalContentAlignment="Top" VerticalScrollBarVisibility="Visible"/>
                    </TabItem>
                </TabControl>
            </Grid>
        </dxb:BarManager>
    </dxdb:DemoModuleControl>
</local:GridDemoModule>!Husing System;
using System.Collections;
using System.Collections.Generic;
using System.ComponentModel;
using System.Windows;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Markup;
using System.Windows.Media;
using System.Windows.Media.Animation;
using DevExpress.Xpf.Grid;
using System.Threading;
using System.Windows.Threading;
using DevExpress.Xpf.DemoBase;

namespace GridDemo {
    [CodeFile("ModuleResources/CopyPasteTemplates(.SL).xaml")]
    [CodeFile("ModuleResources/CopyPasteClasses.(cs)")]
    public partial class CopyPaste : GridDemoModule {
        public static readonly RoutedEvent PasteCompetedEvent;

        internal int Counter { get; set; }
        public static readonly DependencyProperty PastUnderFocusedRowProperty;
        public static readonly DependencyProperty FocusedGridProperty;
        static CopyPaste() {
            PastUnderFocusedRowProperty = DependencyProperty.Register("PastUnderFocusedRow", typeof(bool), typeof(CopyPaste), new PropertyMetadata(true));
            FocusedGridProperty = DependencyProperty.Register("FocusedGrid", typeof(FocusedGrid), typeof(CopyPaste), new PropertyMetadata(FocusedGrid.None));
            PasteCompetedEvent = EventManager.RegisterRoutedEvent("PasteCompeted", RoutingStrategy.Direct, typeof(RoutedEventHandler), typeof(CopyPaste));
        }
        public event RoutedEventHandler PasteCompeted {
            add { AddHandler(PasteCompetedEvent, value); }
            remove { RemoveHandler(PasteCompetedEvent, value); }
        }
        public bool PastUnderFocusedRow {
            get { return (bool)GetValue(PastUnderFocusedRowProperty); }
            set { SetValue(PastUnderFocusedRowProperty, value); }
        }
        public FocusedGrid FocusedGrid {
            get { return (FocusedGrid)GetValue(FocusedGridProperty); }
            set { SetValue(FocusedGridProperty, value); }
        }
        Dictionary<int, RowsAnimationElement> animationElements = new Dictionary<int, RowsAnimationElement>();
        BindingList<CopyPasteOutlookData> firstList = new BindingList<CopyPasteOutlookData>();
        BindingList<CopyPasteOutlookData> secondList = new BindingList<CopyPasteOutlookData>();
        Dictionary<FocusedGrid, GridControl> GridDictionary = new Dictionary<FocusedGrid, GridControl>();
        public CopyPaste() {
            Counter = 0;
            InitializeComponent();
            DemoContentGrid.DataContext = this;
            ArrayList list = OutlookDataGenerator.CreateOutlookArrayList(10);
            object[] objectForCopying = list.ToArray();
            for(int i = 0; i < objectForCopying.Length; i++) {
                firstList.Add(CopyPasteOutlookData.ConvertOutlookDataToCopyPasteOutlookData((OutlookData)objectForCopying[i], this));
            }
            firstGrid.ItemsSource = firstList;
            secondGrid.ItemsSource = secondList;
            allowCopyingtoClipboardCheckEdit.IsChecked = true;
            copyHeaderCheckEdit.IsChecked = true;

            firstGrid.PreviewMouseDown += new MouseButtonEventHandler(firstGrid_PreviewMouseDown);
            secondGrid.PreviewMouseDown += new MouseButtonEventHandler(secondGrid_PreviewMouseDown);
            GridDictionary.Add(FocusedGrid.First, firstGrid);
            GridDictionary.Add(FocusedGrid.Second, secondGrid);
        }
        void firstGrid_PreviewMouseDown(object sender, MouseButtonEventArgs e) {
            FocusedGrid = GridDemo.FocusedGrid.First;
        }
        void secondGrid_PreviewMouseDown(object sender, MouseButtonEventArgs e) {
            FocusedGrid = GridDemo.FocusedGrid.Second;
        }
        delegate void Action(DevExpress.Xpf.Grid.TableView view, BindingList<CopyPasteOutlookData> list);
        int CompareForDeleteList(int x, int y) {
            if(x > y) {
                return -1;
            } else if(x < y) {
                return 1;
            }
            return 0;
        }
        protected override bool IsGridBorderVisible { get { return true; } }
        protected override object GetModuleDataContext() {
            base.GetModuleDataContext();
            return this;
        }
        protected override void RaiseIsPopupContentInvisibleChanged(DependencyPropertyChangedEventArgs e) {
            base.RaiseIsPopupContentInvisibleChanged(e);
            if(IsPopupContentInvisible && secondGrid != null)
                secondGrid.View.HideColumnChooser();
        }
        void CopyingRows(DevExpress.Xpf.Grid.TableView view, BindingList<CopyPasteOutlookData> list) {
            if(view != null) {
                if(view.Grid.SelectedItems.Count != 0) {
                    view.Grid.CopySelectedItemsToClipboard();
                } else if(view.FocusedRowHandle != GridControl.InvalidRowHandle) {
                    view.Grid.CopyRowsToClipboard(new int[] { view.FocusedRowHandle });
                }
            } else {
                textEdit.Copy();
            }
        }
        void RemoveRow(DevExpress.Xpf.Grid.TableView view, int rowHandle) {
            RemoveAnimationElement(view.Grid.GetListIndexByRowHandle(rowHandle));
            view.DeleteRow(rowHandle);
        }
        void DeleteRows(DevExpress.Xpf.Grid.TableView view, BindingList<CopyPasteOutlookData> list) {
            if(view != null) {
                if(view.Grid.SelectedItems.Count != 0) {
                    view.Grid.BeginDataUpdate();
                    List<int> selectedList = new List<int>(view.Grid.GetSelectedRowHandles());
                    selectedList.Sort(CompareForDeleteList);
                    foreach(int row in selectedList) {
                        RemoveRow(view, row);
                    }
                    view.Grid.EndDataUpdate();
                } else if(view.FocusedRowHandle != GridControl.InvalidRowHandle) {
                    RemoveRow(view, view.FocusedRowHandle);
                }
            } else {
                textEdit.Delete();
            }
        }
        void CutRows(DevExpress.Xpf.Grid.TableView view, BindingList<CopyPasteOutlookData> list) {
            CopyingRows(view, null);
            DeleteRows(view, null);
        }
        readonly int maxAnimationRows = 30;
        internal int MaxAnimationRows { get { return this.maxAnimationRows; } }
        internal void PasteRowsWithoutAnimation(ref int positionNewRow, GridViewBase view, BindingList<CopyPasteOutlookData> list, object[] objectsForCopy, int start, int end) {
            view.Grid.BeginDataUpdate();
            PasteRowsWithAnimation(ref positionNewRow, view, list, objectsForCopy, start, end);
            view.Grid.EndDataUpdate();
        }
        void PasteRowsWithAnimation(ref int positionNewRow, GridViewBase view, BindingList<CopyPasteOutlookData> list, object[] objectsForCopy, int start, int end) {
            bool insertToEndOfRows = view.FocusedRowHandle == GridControl.InvalidRowHandle;
            for(int i = start; i < end; i++) {
                CopyPasteOutlookData obj = ((CopyPasteOutlookData)objectsForCopy[i]);
                obj.UniqueID = ++Counter;
                if(i == maxAnimationRows - 1) {
                    pasteWithoutAnimation = new PasteHelper() { List = list, ObjectsForCopy = objectsForCopy, Owner = this, PositionNewRow = positionNewRow, View = view };
                }
                if(PastUnderFocusedRow && (list.Count != 0) && !insertToEndOfRows) {
                    list.Insert(positionNewRow, obj);
                    positionsNewRowsList.Add(positionNewRow);
                    positionNewRow++;
                } else {
                    list.Add(obj);
                    positionsNewRowsList.Add(list.Count - 1);
                }
            }
        }
        List<int> positionsNewRowsList = new List<int>();
        bool isPasting = false;
        PasteHelper pasteWithoutAnimation = null;
        void PasteRows(GridViewBase view, BindingList<CopyPasteOutlookData> list) {
            if(view != null) {
                ArrayList arrayList = null;
                IDataObject dataObj = GetClipboardDataObject();
                string format = typeof(ArrayList).FullName;
                if(dataObj != null && dataObj.GetDataPresent(format)) {
                    positionsNewRowsList.Clear();
                    pasteWithoutAnimation = null;
                    animation = true;
                    StartPasteForCanCommands();
                    arrayList = dataObj.GetData(format) as ArrayList;
                    object[] objectsForCopy = arrayList.ToArray();
                    int positionNewRow = view.FocusedRowHandle == DataControlBase.InvalidRowHandle ? 0 : view.Grid.GetListIndexByRowHandle(view.FocusedRowHandle) + 1;
                    if(maxAnimationRows > objectsForCopy.Length) {
                        PasteRowsWithAnimation(ref positionNewRow, view, list, objectsForCopy, 0, objectsForCopy.Length);
                    } else {
                        PasteRowsWithAnimation(ref positionNewRow, view, list, objectsForCopy, 0, maxAnimationRows);
                    }
                    Dispatcher.BeginInvoke(new System.Action(AnimationRowsOfPasted), DispatcherPriority.Background);
                }
            } else {
                textEdit.Paste();
            }
        }
        void StartPasteForCanCommands() {
            Cursor = Cursors.Wait;
            isPasting = true;
            CommandManager.InvalidateRequerySuggested();
        }
        internal void EndPasteForCanCommands() {
            Cursor = Cursors.Arrow;
            isPasting = false;
            CommandManager.InvalidateRequerySuggested();
        }
        void AnimationRowsOfPasted() {
            for(int i = 0; i < positionsNewRowsList.Count; i++) {
                if(i == (positionsNewRowsList.Count - 1)) {
                    StartAnimation(positionsNewRowsList[i], pasteWithoutAnimation);
                    if(pasteWithoutAnimation == null)
                        EndPasteForCanCommands();
                } else {
                    StartAnimation(positionsNewRowsList[i], null);
                }
            }
            animation = false;
        }
        void StartAnimation(int positionNewRow, PasteHelper pasteWithoutAnimation) {
            Storyboard addingStoryboard = GetStoryboard("newRowStoryboard");
            Storyboard colorStoryboard = GetStoryboard("newRowColorStoryboard");
            if(pasteWithoutAnimation != null) {
                pasteWithoutAnimation.ColorStoryboard = colorStoryboard;
                colorStoryboard.Completed += new EventHandler(pasteWithoutAnimation.ColorStoryboardCompleted);
            }
            if(positionsNewRowsList[positionsNewRowsList.Count - 1] == positionNewRow) {
                PasteCompetedHelper pasteHelper = new PasteCompetedHelper() { Owner = this, ColorStoryboard = colorStoryboard };
                colorStoryboard.Completed += new EventHandler(pasteHelper.ColorStoryboardCompleted);
            }
            StartStoryboard(addingStoryboard, positionNewRow, RowsAnimationElement.NewRowsProgressProperty);
            StartStoryboard(colorStoryboard, positionNewRow, RowsAnimationElement.NewRowsColorProperty);
        }
        internal void RaisePasteCompetedEvent(RoutedEventArgs e) {
            RaiseEvent(e);
        }
        void StartStoryboard(Storyboard storyboard, int indexElement, DependencyProperty property) {
            Storyboard.SetTargetProperty(storyboard, new PropertyPath(property.Name));
            storyboard.Begin(GetAnimationElement(indexElement), HandoffBehavior.SnapshotAndReplace);
        }
        Storyboard GetStoryboard(string resourceKey) {
            return ((Storyboard)this.FindResource(resourceKey)).Clone();
        }
        void CommandExecute(Action actionForCommand) {
            if(IsFocusedTextEdit()) {
                actionForCommand(null, null);
            } else if(FocusedGrid == GridDemo.FocusedGrid.First) {
                actionForCommand((DevExpress.Xpf.Grid.TableView)firstGrid.View, firstList);
            } else if(FocusedGrid == GridDemo.FocusedGrid.Second) {
                actionForCommand((DevExpress.Xpf.Grid.TableView)secondGrid.View, secondList);
            }
        }
        bool IsFocusedTextEdit() {
            return ((textEdit != null) && (textEdit.IsKeyboardFocusWithin)) ? true : false;
        }
        bool IsSelectRows(DevExpress.Xpf.Grid.TableView view) {
            return ((view.Grid.SelectedItems.Count != 0) || (view.FocusedRowHandle != GridControl.InvalidRowHandle)) ? true : false;
        }
        bool CanExecuteOutputCommands() {
            if(IsFocusedTextEdit()) {
                return (textEdit.SelectionLength != 0);
            } else if(FocusedGrid != GridDemo.FocusedGrid.None) {
                return IsSelectRows((DevExpress.Xpf.Grid.TableView)GridDictionary[FocusedGrid].View);
            }
            return false;
        }
        bool CanExecuteInputCommands() {
            if(isPasting)
                return false;
            if(IsFocusedTextEdit()) {
                IDataObject dataObject = Clipboard.GetDataObject();
                string text = dataObject != null ? ((DataObject)dataObject).GetText() : null;
                if(!string.IsNullOrEmpty(text))
                    return true;
            }
            if(FocusedGrid == GridDemo.FocusedGrid.None)
                return false;
            IDataObject dataObj = GetClipboardDataObject();
            string format = typeof(ArrayList).FullName;
            if(dataObj != null && dataObj.GetDataPresent(format))
                return true;
            return false;
        }
        bool CanCopyCommands() {
            if(IsFocusedTextEdit()) {
                return (textEdit.SelectionLength != 0);
            } else if(FocusedGrid != GridDemo.FocusedGrid.None) {
                return (GridDictionary[FocusedGrid].ClipboardCopyMode != ClipboardCopyMode.None ? true : false);
            }
            return false;
        }
        IDataObject GetClipboardDataObject() {
            try {
                return Clipboard.GetDataObject();
            } catch {
                return null;
            }
        }
        private void CopyCommandBinding_Executed(object sender, ExecutedRoutedEventArgs e) {
            CommandExecute(CopyingRows);
        }
        private void CutCommandBinding_Executed(object sender, ExecutedRoutedEventArgs e) {
            CommandExecute(CutRows);
        }
        private void PasteCommandBinding_Executed(object sender, ExecutedRoutedEventArgs e) {
            CommandExecute(PasteRows);
        }
        private void DeleteCommandBinding_Executed(object sender, ExecutedRoutedEventArgs e) {
            CommandExecute(DeleteRows);
        }
        private void CopyCommandBinding_CanExecute(object sender, CanExecuteRoutedEventArgs e) {
            e.CanExecute = CanExecuteOutputCommands();
            if(e.CanExecute)
                e.CanExecute = CanCopyCommands();
            e.Handled = true;
        }
        private void CutCommandBinding_CanExecute(object sender, CanExecuteRoutedEventArgs e) {
            e.CanExecute = CanExecuteOutputCommands();
            if(e.CanExecute)
                e.CanExecute = CanCopyCommands();
            e.Handled = true;
        }
        private void PasteCommandBinding_CanExecute(object sender, CanExecuteRoutedEventArgs e) {
            e.CanExecute = CanExecuteInputCommands();
            e.Handled = true;
        }
        private void DeleteCommandBinding_CanExecute(object sender, CanExecuteRoutedEventArgs e) {
            e.CanExecute = CanExecuteOutputCommands();
            e.Handled = true;
        }

        private void Grid_CustomUnboundColumnData(object sender, GridColumnDataEventArgs e) {
            if(e.Column != null || e.Column.FieldName == "AnimationElement") {
                int index = GetIndexForAnimationElements(e.ListSourceRowIndex, e.Source.Equals(secondGrid));
                e.Value = GetAnimationElementCore(index);
            }
        }
        int GetIndexForAnimationElements(int index) {
            return GetIndexForAnimationElements(index, FocusedGrid == GridDemo.FocusedGrid.Second);
        }
        int GetIndexForAnimationElements(int index, bool isSecondGrid) {
            return isSecondGrid ? secondList[index].UniqueID : firstList[index].UniqueID;
        }
        bool animation = false;
        RowsAnimationElement GetAnimationElement(int index) {
            return GetAnimationElementCore(GetIndexForAnimationElements(index));
        }
        private RowsAnimationElement GetAnimationElementCore(int index) {
            RowsAnimationElement result = null;
            if(!animationElements.TryGetValue(index, out result)) {
                result = new RowsAnimationElement();
                animationElements.Add(index, result);
                if(animation)
                    result.NewRowsProgress = 0;
            }
            return result;
        }
        void RemoveAnimationElement(int index) {
            index = GetIndexForAnimationElements(index);
            if(animationElements.ContainsKey(index))
                animationElements.Remove(index);
        }
        private void allowCopyingtoClipboardCheckEdit_Checked(object sender, RoutedEventArgs e) {
            SetPropertyToGrids(ClipboardCopyMode.Default);
        }
        private void allowCopyingtoClipboardCheckEdit_Unchecked(object sender, RoutedEventArgs e) {
            SetPropertyToGrids(ClipboardCopyMode.None);
        }
        private void copyHeaderCheckEdit_Checked(object sender, RoutedEventArgs e) {
            SetPropertyToGrids(ClipboardCopyMode.IncludeHeader);
        }
        private void copyHeaderCheckEdit_Unchecked(object sender, RoutedEventArgs e) {
            SetPropertyToGrids(ClipboardCopyMode.ExcludeHeader);
        }
        void SetPropertyToGrids(ClipboardCopyMode copyMode) {
            firstGrid.ClipboardCopyMode = copyMode;
            secondGrid.ClipboardCopyMode = copyMode;
        }
    }
}!�MSBAML```����OKmscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089M4clr-namespace:System.Globalization;assembly=mscorlibSystem.GlobalizationD@GridDemo, Version=13.1.4.0, Culture=neutral, PublicKeyToken=null#clr-namespace:GridDemoGridDemoI2clr-namespace:System.Collections;assembly=mscorlibSystem.Collections1&clr-namespace:System;assembly=mscorlibSystemGridDemo.CurrentDataRow\XPresentationFramework, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35RNWindowsBase, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35WSPresentationCore, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35D9http://schemas.microsoft.com/winfx/2006/xaml/presentationRNSystem.Xaml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089:x,http://schemas.microsoft.com/winfx/2006/xamlGglobal4clr-namespace:System.Globalization;assembly=mscorliba]DevExpress.Xpf.Core.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a;dx2http://schemas.devexpress.com/winfx/2008/xaml/corefbDevExpress.Xpf.Grid.v13.1.Core, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49aa]DevExpress.Xpf.Grid.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49al	hDevExpress.Xpf.Grid.v13.1.Extensions, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a@dxg2http://schemas.devexpress.com/winfx/2008/xaml/grid	?dxe5http://schemas.devexpress.com/winfx/2008/xaml/editors"localclr-namespace:GridDemoe
aDevExpress.Xpf.DemoBase.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49aAdxdb6http://schemas.devexpress.com/winfx/2008/xaml/demobase
Dcollections2clr-namespace:System.Collections;assembly=mscorlib
0sys&clr-namespace:System;assembly=mscorlib
Dmc;http://schemas.openxmlformats.org/markup-compatibility/2006
:d2http://schemas.microsoft.com/expression/blend/2008
�	Resources
�MergedDictionaries
�Source-
'DevExpress.Xpf.DemoBase.NWindDataLoader NWindDataLoader��$-'/GridDemo;component/Themes/generic.xaml?��$F@/GridDemo;component/ModuleResources/CurrentDataRowTemplates.xaml?�%&	.�/
)DevExpress.Xpf.DemoBase.DemoModuleControlContent.�$�12q��RowDefinitions�$��*��$
��Auto�.+�%DevExpress.Xpf.Grid.GridControl-$
�grid��)#DevExpress.Xpf.Grid.DataControlBaseItemsSource��Path$EmployeesNew�
�Source#[Columns$DevExpress.Xpf.Grid.GridColumn$DevExpress.Xpf.Grid.ColumnBase		FieldName$		FirstName��$DevExpress.Xpf.Grid.BaseColumn
MinWidth$	
100��$	LastName��$	
100��$		BirthDate��$	
100��EditSettings60DevExpress.Xpf.Editors.Settings.DateEditSettings6	0DevExpress.Xpf.Editors.Settings.BaseEditSettings	
DisplayFormat$d��$	Title��$	
100��

Header)
#DevExpress.Xpf.Core.ObjectConverter$
Position
$	Notes��$	
100��60DevExpress.Xpf.Editors.Settings.MemoEditSettingsShowIcon.;5DevExpress.Xpf.Editors.Settings.PopupBaseEditSettings
PopupWidth$	250Q�MemoTextWrapping$
Wrap=�&MemoVerticalScrollBarVisibility$
Auto=�View#
DevExpress.Xpf.Grid.TableView
-$
�view��& DevExpress.Xpf.Grid.GridViewBaseShowGroupedColumns.
	AutoWidth.��$��1� rowDetailTemplate#�[$
�Stretch=���$SelectedItem��ElementName$
grid��!�<local:GridDemoModule x:Class="GridDemo.CurrentDataRow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:global="clr-namespace:System.Globalization;assembly=mscorlib"
    xmlns:dx="http://schemas.devexpress.com/winfx/2008/xaml/core"
    xmlns:dxg="http://schemas.devexpress.com/winfx/2008/xaml/grid"
 xmlns:dxe="http://schemas.devexpress.com/winfx/2008/xaml/editors"
    xmlns:local="clr-namespace:GridDemo"
    xmlns:dxdb="http://schemas.devexpress.com/winfx/2008/xaml/demobase"
    xmlns:collections="clr-namespace:System.Collections;assembly=mscorlib"
    xmlns:sys="clr-namespace:System;assembly=mscorlib"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    mc:Ignorable="d" d:DesignHeight="400" d:DesignWidth="800">
    <local:GridDemoModule.Resources>
        <ResourceDictionary>
            <ResourceDictionary.MergedDictionaries>
                <ResourceDictionary Source="/GridDemo;component/Themes/generic.xaml" />
                <ResourceDictionary Source="/GridDemo;component/ModuleResources/CurrentDataRowTemplates.xaml" />
            </ResourceDictionary.MergedDictionaries>
            <dxdb:NWindDataLoader x:Key="NWindDataLoader" />
        </ResourceDictionary>
    </local:GridDemoModule.Resources>
    <dxdb:DemoModuleControl>
        <Grid Margin="12">
            <Grid.RowDefinitions>
                <RowDefinition Height="*" />
                <RowDefinition Height="Auto" />
            </Grid.RowDefinitions>
            <dxg:GridControl Name="grid" ItemsSource="{Binding Path=EmployeesNew, Source={StaticResource NWindDataLoader}}">
                <dxg:GridControl.Columns>
                    <dxg:GridColumn FieldName="FirstName" MinWidth="100" />
                    <dxg:GridColumn FieldName="LastName" MinWidth="100" />
                    <dxg:GridColumn FieldName="BirthDate" MinWidth="100">
                        <dxg:GridColumn.EditSettings>
                            <dxe:DateEditSettings DisplayFormat="d" />
                        </dxg:GridColumn.EditSettings>
                    </dxg:GridColumn>
                    <dxg:GridColumn FieldName="Title" MinWidth="100" Header="Position" />
                    <dxg:GridColumn FieldName="Notes" MinWidth="100">
                        <dxg:GridColumn.EditSettings>
                            <dxe:MemoEditSettings ShowIcon="True" PopupWidth="250" MemoTextWrapping="Wrap" MemoVerticalScrollBarVisibility="Auto" />
                        </dxg:GridColumn.EditSettings>
                    </dxg:GridColumn>
                </dxg:GridControl.Columns>
                <dxg:GridControl.View>
                    <dxg:TableView ShowGroupedColumns="True" Name="view" AutoWidth="True">
                    </dxg:TableView>
                </dxg:GridControl.View>
            </dxg:GridControl>
            <ContentPresenter Grid.Row="1" Content="{Binding Path=SelectedItem, ElementName=grid}" ContentTemplate="{StaticResource rowDetailTemplate}" HorizontalAlignment="Stretch"/>
        </Grid>
    </dxdb:DemoModuleControl>
</local:GridDemoModule>!pusing System;
using DevExpress.Xpf.DemoBase;

namespace GridDemo {
    [CodeFile("ModuleResources/CurrentDataRowTemplates(.SL).xaml")]
    public partial class CurrentDataRow : GridDemoModule {
        public CurrentDataRow() {
            InitializeComponent();
        }
        protected override bool IsGridBorderVisible { get { return true; } }
    }
}!�MSBAML```����OKmscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089M4clr-namespace:System.Globalization;assembly=mscorlibSystem.GlobalizationD@GridDemo, Version=13.1.4.0, Culture=neutral, PublicKeyToken=null#clr-namespace:GridDemoGridDemo#clr-namespace:GridDemoGridDemoI2clr-namespace:System.Collections;assembly=mscorlibSystem.Collections1&clr-namespace:System;assembly=mscorlibSystem!GridDemo.CustomEditTemplate\XPresentationFramework, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35RNWindowsBase, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35WSPresentationCore, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35D9http://schemas.microsoft.com/winfx/2006/xaml/presentationRNSystem.Xaml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089:x,http://schemas.microsoft.com/winfx/2006/xamlGglobal4clr-namespace:System.Globalization;assembly=mscorlib)dxdemoclr-namespace:GridDemoa]DevExpress.Xpf.Core.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a;dx2http://schemas.devexpress.com/winfx/2008/xaml/corefbDevExpress.Xpf.Grid.v13.1.Core, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49aa]DevExpress.Xpf.Grid.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49al	hDevExpress.Xpf.Grid.v13.1.Extensions, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a@dxg2http://schemas.devexpress.com/winfx/2008/xaml/grid	?dxe5http://schemas.devexpress.com/winfx/2008/xaml/editorse
aDevExpress.Xpf.DemoBase.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49aAdxdb6http://schemas.devexpress.com/winfx/2008/xaml/demobase
"localclr-namespace:GridDemo
Dcollections2clr-namespace:System.Collections;assembly=mscorlib
0sys&clr-namespace:System;assembly=mscorlib
Dmc;http://schemas.openxmlformats.org/markup-compatibility/2006
:d2http://schemas.microsoft.com/expression/blend/2008
�	Resources
�MergedDictionaries
�Source��$JD/GridDemo;component/ModuleResources/CustomEditTemplateResources.xaml?�%.�/
)DevExpress.Xpf.DemoBase.DemoModuleControlContent.%DevExpress.Xpf.Grid.GridControl-$
�grid��$�0�'
!DevExpress.Xpf.DemoBase.NWindDataEmployeesNew)#DevExpress.Xpf.Grid.DataControlBaseItemsSource#ZColumns$DevExpress.Xpf.Grid.GridColumn$DevExpress.Xpf.Grid.ColumnBase	FieldName$	FirstName��$LastName��$Photo��AllowColumnFiltering]YDevExpress.Data.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a5/DevExpress.Utils.Design.DefaultBooleanConverter$False$	BirthDate��	EditSettings	E?DevExpress.Xpf.Editors.Settings.Extension.DateSettingsExtensionE	?DevExpress.Xpf.Editors.Settings.Extension.TextSettingsExtension
	
DisplayFormat$
d��-Name$colTitle��$Title��	I
CDevExpress.Xpf.Editors.Settings.Extension.ComboBoxSettingsExtension
GADevExpress.Xpf.Editors.Settings.Extension.ButtonSettingsExtensionIsTextEditable.

ValueMember$
Title��

DisplayMember$Title��
Titles
ItemsSource#Z$
Address��$
City��$
PostalCode��$
Country��	
.$

Country��$
Country��	Countries#Z$	HomePhone��$Notes��$DevExpress.Xpf.Grid.BaseColumnMinWidth$	100��	E
?DevExpress.Xpf.Editors.Settings.Extension.MemoSettingsExtension

ShowIcon.JDDevExpress.Xpf.Editors.Settings.Extension.PopupBaseSettingsExtension
PopupWidth$	250Q�
MemoTextWrapping$
Wrap=�&
MemoVerticalScrollBarVisibility$
Auto=�View"DevExpress.Xpf.Grid.CardView-$
�view��& DevExpress.Xpf.Grid.DataViewBaseEditorButtonShowMode$
ShowAlways=�& DevExpress.Xpf.Grid.GridViewBaseShowGroupedColumns. headerTemplateFullNameCardHeaderTemplate#� 
cardTemplate2CardTemplate#�!<local:GridDemoModule x:Class="GridDemo.CustomEditTemplate"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:global="clr-namespace:System.Globalization;assembly=mscorlib"
    xmlns:dxdemo="clr-namespace:GridDemo"
    xmlns:dx="http://schemas.devexpress.com/winfx/2008/xaml/core"
    xmlns:dxg="http://schemas.devexpress.com/winfx/2008/xaml/grid"
 xmlns:dxe="http://schemas.devexpress.com/winfx/2008/xaml/editors"
    xmlns:dxdb="http://schemas.devexpress.com/winfx/2008/xaml/demobase"
    xmlns:local="clr-namespace:GridDemo"
    xmlns:collections="clr-namespace:System.Collections;assembly=mscorlib"
    xmlns:sys="clr-namespace:System;assembly=mscorlib"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    mc:Ignorable="d" d:DesignHeight="400" d:DesignWidth="800">
    <local:GridDemoModule.Resources>
        <ResourceDictionary>
            <ResourceDictionary.MergedDictionaries>
                <ResourceDictionary Source="/GridDemo;component/ModuleResources/CustomEditTemplateResources.xaml" />
            </ResourceDictionary.MergedDictionaries>
        </ResourceDictionary>
    </local:GridDemoModule.Resources>

    <dxdb:DemoModuleControl>
        <dxg:GridControl Name="grid" Grid.Column="0" ItemsSource="{x:Static dxdb:NWindData.EmployeesNew}">
            <dxg:GridControl.Columns>
                <dxg:GridColumn FieldName="FirstName" />
                <dxg:GridColumn FieldName="LastName" />
                <dxg:GridColumn FieldName="Photo" AllowColumnFiltering="False" />
                <dxg:GridColumn FieldName="BirthDate" EditSettings="{dxe:DateSettings DisplayFormat=d}" />
                <dxg:GridColumn x:Name="colTitle" FieldName="Title" EditSettings="{dxe:ComboBoxSettings IsTextEditable=false, ValueMember=Title, DisplayMember=Title, ItemsSource={x:Static dxdb:NWindData.Titles}}" />
                <dxg:GridColumn FieldName="Address" />
                <dxg:GridColumn FieldName="City" />
                <dxg:GridColumn FieldName="PostalCode" />
                <dxg:GridColumn FieldName="Country" EditSettings="{dxe:ComboBoxSettings IsTextEditable=false, ValueMember=Country, DisplayMember=Country, ItemsSource={x:Static dxdb:NWindData.Countries}}" />
                <dxg:GridColumn FieldName="HomePhone" />
                <dxg:GridColumn FieldName="Notes" MinWidth="100" EditSettings="{dxe:MemoSettings ShowIcon=False, PopupWidth=250, MemoTextWrapping=Wrap, MemoVerticalScrollBarVisibility=Auto}" />
            </dxg:GridControl.Columns>
            <dxg:GridControl.View>
                <dxg:CardView EditorButtonShowMode="ShowAlways" Name="view" ShowGroupedColumns="True" CardHeaderTemplate="{DynamicResource headerTemplateFullName}"
                              CardTemplate="{DynamicResource cardTemplate2}" />
            </dxg:GridControl.View>
        </dxg:GridControl>
    </dxdb:DemoModuleControl>
</local:GridDemoModule>!using DevExpress.Xpf.DemoBase;

namespace GridDemo {
    [CodeFile("ModuleResources/CustomEditTemplateResources(.SL).xaml")]
    public partial class CustomEditTemplate : GridDemoModule {
        public CustomEditTemplate() {
            InitializeComponent();
        }
    }
}!�
MSBAML```����D@GridDemo, Version=13.1.4.0, Culture=neutral, PublicKeyToken=null#clr-namespace:GridDemoGridDemoOKmscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089I2clr-namespace:System.Collections;assembly=mscorlibSystem.Collections1&clr-namespace:System;assembly=mscorlibSystemGridDemo.DataErrorInfo\XPresentationFramework, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35RNWindowsBase, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35WSPresentationCore, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35D9http://schemas.microsoft.com/winfx/2006/xaml/presentationRNSystem.Xaml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089:x,http://schemas.microsoft.com/winfx/2006/xamla]DevExpress.Xpf.Core.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a;dx2http://schemas.devexpress.com/winfx/2008/xaml/corefbDevExpress.Xpf.Grid.v13.1.Core, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49aa]DevExpress.Xpf.Grid.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49al	hDevExpress.Xpf.Grid.v13.1.Extensions, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a@dxg2http://schemas.devexpress.com/winfx/2008/xaml/grid	?dxe5http://schemas.devexpress.com/winfx/2008/xaml/editors"localclr-namespace:GridDemoe
aDevExpress.Xpf.DemoBase.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49aAdxdb6http://schemas.devexpress.com/winfx/2008/xaml/demobase
Dcollections2clr-namespace:System.Collections;assembly=mscorlib
0sys&clr-namespace:System;assembly=mscorlib
Dmc;http://schemas.openxmlformats.org/markup-compatibility/2006
:d2http://schemas.microsoft.com/expression/blend/2008
�	Resources
�MergedDictionaries
�Source��$-'/GridDemo;component/Themes/generic.xaml?�%.�/
)DevExpress.Xpf.DemoBase.DemoModuleControlContent.%DevExpress.Xpf.Grid.GridControl-$
�grid��)#DevExpress.Xpf.Grid.DataControlBaseDesignTimeDataObjectTypeGridDemo.Person"Columns$DevExpress.Xpf.Grid.GridColumn$DevExpress.Xpf.Grid.ColumnBase	FieldName$	FirstName��$DevExpress.Xpf.Grid.BaseColumnWidth$	100��MinWidth$30��$LastName��$	100��$30��$
Address��$	100��$30��$PhoneNumber��$	100��$30��$Email��$	100��$30��	View	#DevExpress.Xpf.Grid.TableView-$
�view��
	AutoWidth
.!�<local:GridDemoModule x:Class="GridDemo.DataErrorInfo"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:dx="http://schemas.devexpress.com/winfx/2008/xaml/core"
    xmlns:dxg="http://schemas.devexpress.com/winfx/2008/xaml/grid"
 xmlns:dxe="http://schemas.devexpress.com/winfx/2008/xaml/editors"
    xmlns:local="clr-namespace:GridDemo"
    xmlns:dxdb="http://schemas.devexpress.com/winfx/2008/xaml/demobase"
    xmlns:collections="clr-namespace:System.Collections;assembly=mscorlib"
    xmlns:sys="clr-namespace:System;assembly=mscorlib"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    mc:Ignorable="d" d:DesignHeight="400" d:DesignWidth="800">
    <local:GridDemoModule.Resources>
        <ResourceDictionary>
            <ResourceDictionary.MergedDictionaries>
                <ResourceDictionary Source="/GridDemo;component/Themes/generic.xaml" />
            </ResourceDictionary.MergedDictionaries>
        </ResourceDictionary>
    </local:GridDemoModule.Resources>
    <dxdb:DemoModuleControl>
        <dxg:GridControl Name="grid" DesignTimeDataObjectType="local:Person">
            <dxg:GridControl.Columns>
                <dxg:GridColumn FieldName="FirstName" Width="100" MinWidth="30" />
                <dxg:GridColumn FieldName="LastName" Width="100" MinWidth="30" />
                <dxg:GridColumn FieldName="Address" Width="100" MinWidth="30" />
                <dxg:GridColumn FieldName="PhoneNumber" Width="100" MinWidth="30" />
                <dxg:GridColumn FieldName="Email" Width="100" MinWidth="30" />
            </dxg:GridControl.Columns>
            <dxg:GridControl.View>
                <dxg:TableView Name="view" AutoWidth="true" />
            </dxg:GridControl.View>
        </dxg:GridControl>
    </dxdb:DemoModuleControl>
</local:GridDemoModule>!}using System.Collections.Generic;
using DevExpress.Xpf.DemoBase;

namespace GridDemo {
    [CodeFile("ModuleResources/DataErrorInfoClasses.(cs)")]
    public partial class DataErrorInfo : GridDemoModule {
        public DataErrorInfo() {
            InitializeComponent();
            List<Person> persons = new List<Person>();
            persons.Add(new Person("John", "", "123 Home Lane, Homesville", "(555)956-15-47", "none"));
            persons.Add(new Person("Henry", "McAllister", "436 1st Ave, Cleveland", "(555)941-24-32", "@hotbox.com"));
            persons.Add(new Person("Frank", "Frankson", "349 Graphic Design L, Newman", "(555)155-05-02", "none"));
            persons.Add(new Person("Freddy", "Krueger", "Elm Street", "", "none"));
            persons.Add(new Person("Leticia", "Ford", "93900 Carter Lane, Cartersville", "(555)776-15-66", "none"));
            persons.Add(new Person("Karen", "Holmes", "", "(555)342-25-74", "none"));
            persons.Add(new Person("Roger", "Michelson", "3920 Michelson Dr., Bridgeford", "(555)954-51-88", "none"));
            grid.ItemsSource = persons;
        }
    }
}!�MSBAML```����D@GridDemo, Version=13.1.4.0, Culture=neutral, PublicKeyToken=null#clr-namespace:GridDemoGridDemoOKmscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089I2clr-namespace:System.Collections;assembly=mscorlibSystem.Collections1&clr-namespace:System;assembly=mscorlibSystemGridDemo.DragDrop\XPresentationFramework, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35RNWindowsBase, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35WSPresentationCore, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35D9http://schemas.microsoft.com/winfx/2006/xaml/presentationRNSystem.Xaml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089:x,http://schemas.microsoft.com/winfx/2006/xamla]DevExpress.Xpf.Core.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a;dx2http://schemas.devexpress.com/winfx/2008/xaml/corefbDevExpress.Xpf.Grid.v13.1.Core, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49aa]DevExpress.Xpf.Grid.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49al	hDevExpress.Xpf.Grid.v13.1.Extensions, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a@dxg2http://schemas.devexpress.com/winfx/2008/xaml/grid	?dxe5http://schemas.devexpress.com/winfx/2008/xaml/editorse
aDevExpress.Xpf.DemoBase.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49aAdxdb6http://schemas.devexpress.com/winfx/2008/xaml/demobase
"localclr-namespace:GridDemo
Dcollections2clr-namespace:System.Collections;assembly=mscorlib
0sys&clr-namespace:System;assembly=mscorlib
Dmc;http://schemas.openxmlformats.org/markup-compatibility/2006
:d2http://schemas.microsoft.com/expression/blend/2008
c_System.Windows.Interactivity, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35Bi:http://schemas.microsoft.com/expression/2010/interactivity�	Resources
 GridDemo.DragDropViewModel 
	viewModel�MergedDictionaries
�Source��$-'/GridDemo;component/Themes/generic.xaml?��$@:/GridDemo;component/ModuleResources/DragDropTemplates.xaml?�%&	.�/
)DevExpress.Xpf.DemoBase.DemoModuleControl(!SupressGroupFramePaddingInOptions.OptionsTopText$icDrag the selected row(s) and drop it to the grid or Recycle Bin displayed within the Options panel.��OptionsContent%DevExpress.Xpf.Core.DXDockPanel.+�& DevExpress.Xpf.Editors.CheckEdit-$�multiselectionCheckEdit��$	�Top=�$
�0,0,0,4q�	IsChecked�*
SelectionMode+�ElementName$
grid�� multiSelectConverter�	Converter#[	�Mode$	TwoWay=�
Content.
Allow selecting multiple rows-Name$allowScrollingCheckEdit��$	�Top=��$gridDragDropManager���Path$AllowScrolling�$	TwoWay=�.
 Allow scrolling on drag-n-drop$DevExpress.Xpf.Core.GroupFrame$��Recycle Bin��$�0,12,0,0q�
�DataContext#
[$	�230��.�.+��-$�emptyRecycleBinButton��$�Bottom=�$
�0,8,0,0q����*ClearRecycleBin+{��*RecycleBinSource.Count+ countToEnabledConverter#[.�Empty Recycle Bin��.u�("DevExpress.Xpf.Editors.ListBoxEdit-Name$recycleBinList��$	�300��$
��Visible=�
SelectionMode$Single=� recycleBinItemTemplateItemTemplate#[�Z�ItemsSource�*RecycleBinSource+.(System.Windows.Interactivity.Interaction	Behaviors0	*DevExpress.Xpf.Grid.ListBoxDragDropManager-		'DevExpress.Xpf.Grid.DragDropManagerBase	TemplatesContainer4
	.DevExpress.Xpf.Grid.DragDropTemplatesContainer
Content.�.+�%DevExpress.Xpf.Grid.GridControl-Name$
grid��#
[AllowLiveDataShaping$
TrueX�)#DevExpress.Xpf.Grid.DataControlBase
SelectionMode$	Row=�ItemsSource�*
DataSource+Columns$
DevExpress.Xpf.Grid.GridColumn
$DevExpress.Xpf.Grid.ColumnBase	FieldName$	OID��$DevExpress.Xpf.Grid.BaseColumn
Header)#DevExpress.Xpf.Core.ObjectConverter$IdMinWidth$50��Width$50��ReadOnly.
$
From��$	100��$	100��
$
Subject��$	100��$	200��
$
Sent��$	100��$	100��

GroupInterval$	DateRange=� AutoFilterCondition$ Equals=�!EditSettings!60DevExpress.Xpf.Editors.Settings.DateEditSettings60DevExpress.Xpf.Editors.Settings.BaseEditSettings"
DisplayFormat$"d��
$HoursActive��$	100��$	100��$
 Like=�#TotalSummary#)#DevExpress.Xpf.Grid.GridSummaryItem)#DevExpress.Xpf.Grid.SummaryItemBase$	FieldName$$HoursActive��%SummaryType$%Count=�&	Alignment$&Right=�'GroupSummary'$$HoursActive��$%Count=�(View(#DevExpress.Xpf.Grid.TableView-)Name$
)view��& DevExpress.Xpf.Grid.DataViewBase*ShowFixedTotalSummary*. +IsTotalSummaryMenuEnabled+.& DevExpress.Xpf.Grid.GridViewBase,ShowGroupedColumns,.-EditorShowMode$-MouseUpFocused=�.	AutoWidth..-	'DevExpress.Xpf.Grid.GridDragDropManager-gridDragDropManager��!�<local:GridDemoModule x:Class="GridDemo.DragDrop"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:dx="http://schemas.devexpress.com/winfx/2008/xaml/core"
    xmlns:dxg="http://schemas.devexpress.com/winfx/2008/xaml/grid"
 xmlns:dxe="http://schemas.devexpress.com/winfx/2008/xaml/editors"
 xmlns:dxdb="http://schemas.devexpress.com/winfx/2008/xaml/demobase"
 xmlns:local="clr-namespace:GridDemo"
 xmlns:collections="clr-namespace:System.Collections;assembly=mscorlib"
 xmlns:sys="clr-namespace:System;assembly=mscorlib"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity"
    mc:Ignorable="d" d:DesignHeight="400" d:DesignWidth="800">
    <local:GridDemoModule.Resources>
        <ResourceDictionary>
            <local:DragDropViewModel x:Key="viewModel" />
            <ResourceDictionary.MergedDictionaries>
                <ResourceDictionary Source="/GridDemo;component/Themes/generic.xaml" />
                <ResourceDictionary Source="/GridDemo;component/ModuleResources/DragDropTemplates.xaml" />
            </ResourceDictionary.MergedDictionaries>
        </ResourceDictionary>
    </local:GridDemoModule.Resources>
    <dxdb:DemoModuleControl SupressGroupFramePaddingInOptions="False">
        <dxdb:DemoModuleControl.OptionsTopText>
            Drag the selected row(s) and drop it to the grid or Recycle Bin displayed within the Options panel.
        </dxdb:DemoModuleControl.OptionsTopText>
        <dxdb:DemoModuleControl.OptionsContent>
            <dx:DXDockPanel >
                <dxe:CheckEdit dx:DXDockPanel.Dock="Top" Name="multiselectionCheckEdit" Margin="0,0,0,4"
                               IsChecked="{Binding SelectionMode, ElementName=grid, Converter={StaticResource multiSelectConverter}, Mode=TwoWay}">
                    Allow selecting multiple rows
                </dxe:CheckEdit>
                <dxe:CheckEdit dx:DXDockPanel.Dock="Top" x:Name="allowScrollingCheckEdit"
                               IsChecked="{Binding ElementName=gridDragDropManager, Path=AllowScrolling, Mode=TwoWay}">
                    Allow scrolling on drag-n-drop
                </dxe:CheckEdit>
                <dx:GroupFrame Header="Recycle Bin" Margin="0,12,0,0" DataContext="{StaticResource viewModel}" MaxWidth="230">
                    <dx:DXDockPanel>
                        <Button Name="emptyRecycleBinButton" dx:DXDockPanel.Dock="Bottom"
                                Command="{Binding ClearRecycleBin}" Margin="0,8,0,0"
                                IsEnabled="{Binding RecycleBinSource.Count, Converter={StaticResource countToEnabledConverter}}">
                            Empty Recycle Bin
                        </Button>
                        <AdornerDecorator>
                            <dxe:ListBoxEdit x:Name="recycleBinList" Background="{x:Null}" MinHeight="300" ItemsSource="{Binding RecycleBinSource}"
                                             ScrollViewer.HorizontalScrollBarVisibility="Visible" SelectionMode="Single" ItemTemplate="{StaticResource recycleBinItemTemplate}">
                                <i:Interaction.Behaviors>
                                    <dxg:ListBoxDragDropManager>
                                        <dxg:ListBoxDragDropManager.TemplatesContainer>
                                            <dxg:DragDropTemplatesContainer />
                                        </dxg:ListBoxDragDropManager.TemplatesContainer>
                                    </dxg:ListBoxDragDropManager>
                                </i:Interaction.Behaviors>
                            </dxe:ListBoxEdit>
                        </AdornerDecorator>
                    </dx:DXDockPanel>
                </dx:GroupFrame>
            </dx:DXDockPanel>
        </dxdb:DemoModuleControl.OptionsContent>
        <Grid>
            <dxg:GridControl x:Name="grid" DataContext="{StaticResource viewModel}"
                             AllowLiveDataShaping="True" ItemsSource="{Binding DataSource}" SelectionMode="Row">
                <dxg:GridControl.Columns>
                    <dxg:GridColumn FieldName="OID" Header="Id" MinWidth="50" Width="50" ReadOnly="true" />
                    <dxg:GridColumn FieldName="From" MinWidth="100" Width="100" />
                    <dxg:GridColumn FieldName="Subject" MinWidth="100" Width="200" />
                    <dxg:GridColumn FieldName="Sent" MinWidth="100" Width="100" GroupInterval="DateRange" AutoFilterCondition="Equals">
                        <dxg:GridColumn.EditSettings>
                            <dxe:DateEditSettings DisplayFormat="d" />
                        </dxg:GridColumn.EditSettings>
                    </dxg:GridColumn>
                    <dxg:GridColumn FieldName="HoursActive" MinWidth="100" Width="100" AutoFilterCondition="Like" />
                </dxg:GridControl.Columns>
                <dxg:GridControl.TotalSummary>
                    <dxg:GridSummaryItem FieldName="HoursActive" SummaryType="Count" Alignment="Right"/>
                </dxg:GridControl.TotalSummary>
                <dxg:GridControl.GroupSummary>
                    <dxg:GridSummaryItem FieldName="HoursActive" SummaryType="Count" />
                </dxg:GridControl.GroupSummary>
                <dxg:GridControl.View>
                    <dxg:TableView x:Name="view" ShowFixedTotalSummary="True" IsTotalSummaryMenuEnabled="False" ShowGroupedColumns="True"
              EditorShowMode="MouseUpFocused" AutoWidth="True"/>
                </dxg:GridControl.View>
                <i:Interaction.Behaviors>
                    <dxg:GridDragDropManager x:Name="gridDragDropManager">
                    </dxg:GridDragDropManager>
                </i:Interaction.Behaviors>
            </dxg:GridControl>
        </Grid>
    </dxdb:DemoModuleControl>
</local:GridDemoModule>!�using System;
using DevExpress.Xpf.DemoBase;

namespace GridDemo {
    [CodeFile("ModuleResources/DragDropTemplates(.SL).xaml")]
    [CodeFile("ModuleResources/DragDropViewModel.(cs)")]
    public partial class DragDrop : GridDemoModule {
        public DragDrop() {
            InitializeComponent();
        }
        public override bool AllowRtl { get { return false; } }
    }
}!�MSBAML```����D@GridDemo, Version=13.1.4.0, Culture=neutral, PublicKeyToken=null#clr-namespace:GridDemoGridDemoOKmscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089I2clr-namespace:System.Collections;assembly=mscorlibSystem.Collections1&clr-namespace:System;assembly=mscorlibSystem GridDemo.EmbeddedTableView\XPresentationFramework, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35RNWindowsBase, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35WSPresentationCore, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35D9http://schemas.microsoft.com/winfx/2006/xaml/presentationRNSystem.Xaml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089:x,http://schemas.microsoft.com/winfx/2006/xamla]DevExpress.Xpf.Core.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a;dx2http://schemas.devexpress.com/winfx/2008/xaml/corefbDevExpress.Xpf.Grid.v13.1.Core, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49aa]DevExpress.Xpf.Grid.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49al	hDevExpress.Xpf.Grid.v13.1.Extensions, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a@dxg2http://schemas.devexpress.com/winfx/2008/xaml/grid	&localclr-namespace:GridDemo	e
aDevExpress.Xpf.DemoBase.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49aAdxdb6http://schemas.devexpress.com/winfx/2008/xaml/demobase
?dxe5http://schemas.devexpress.com/winfx/2008/xaml/editorsGdxgt<http://schemas.devexpress.com/winfx/2008/xaml/grid/themekeysDcollections2clr-namespace:System.Collections;assembly=mscorlibDmc;http://schemas.openxmlformats.org/markup-compatibility/2006:d2http://schemas.microsoft.com/expression/blend/2008c_System.Windows.Interactivity, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35Bi:http://schemas.microsoft.com/expression/2010/interactivity0sys&clr-namespace:System;assembly=mscorlib$
�Stretch=�$
�Stretch=��	Resources
�MergedDictionaries
�Source2,GridDemo.EmployeesWithDetailsForEmbeddedView 
	employees��$-'/GridDemo;component/Themes/generic.xaml?��$IC/GridDemo;component/ModuleResources/EmbeddedTableViewTemplates.xaml?�%&	.�/
)DevExpress.Xpf.DemoBase.DemoModuleControlContent.%DevExpress.Xpf.Grid.GridControl-Name$
grid��)#DevExpress.Xpf.Grid.DataControlBaseItemsSource#[DetailDescriptor1+DevExpress.Xpf.Grid.ContentDetailDescriptor.(DevExpress.Xpf.Grid.DetailDescriptorBase
ShowHeader. headerTemplateHeaderContentTemplate#[ contentTemplate	ContentTemplate#	[
View
#DevExpress.Xpf.Grid.TableView-$
�view��AllowPerPixelScrolling.	AutoWidth.& DevExpress.Xpf.Grid.DataViewBase
NavigationStyle$	
Row=�DetailHeaderContent$	Employees��.	(System.Windows.Interactivity.Interaction	Triggers/
)System.Windows.Interactivity.EventTrigger

	EventName$Loaded��.(System.Windows.Interactivity.TriggerBaseActions.60System.Windows.Interactivity.InvokeCommandActionCommandName$ExpandMasterRow��CommandParameter$1��Command�*Commands.ExpandMasterRow+�ElementName$
view��Columns$
DevExpress.Xpf.Grid.GridColumn
$DevExpress.Xpf.Grid.ColumnBase	FieldName$	FirstName��$DevExpress.Xpf.Grid.BaseColumnMinWidth$60��
$LastName��$60��
$	BirthDate��$60��EditSettings60DevExpress.Xpf.Editors.Settings.DateEditSettings60DevExpress.Xpf.Editors.Settings.BaseEditSettings
DisplayFormat$d��
-
Name$colEMail��

AllowGrouping]YDevExpress.Data.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a5/DevExpress.Utils.Design.DefaultBooleanConverter$False$EMail��
Header)#DevExpress.Xpf.Core.ObjectConverter$E-mailWidth$	195��
FixedWidth. UnboundType82DevExpress.Utils.Design.UnboundColumnTypeConverter$ String!UnboundExpression$)!#Lower([LastName])+'@devexpress.com'��
$Title��$Position!<local:GridDemoModule x:Class="GridDemo.EmbeddedTableView"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:dx="http://schemas.devexpress.com/winfx/2008/xaml/core"
    xmlns:dxg="http://schemas.devexpress.com/winfx/2008/xaml/grid"
    xmlns:local="clr-namespace:GridDemo"
 xmlns:dxdb="http://schemas.devexpress.com/winfx/2008/xaml/demobase"
 xmlns:dxe="http://schemas.devexpress.com/winfx/2008/xaml/editors"
    xmlns:dxgt="http://schemas.devexpress.com/winfx/2008/xaml/grid/themekeys"
 xmlns:collections="clr-namespace:System.Collections;assembly=mscorlib"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity"
    xmlns:sys="clr-namespace:System;assembly=mscorlib"
    mc:Ignorable="d" d:DesignHeight="400" d:DesignWidth="800"
 HorizontalAlignment="Stretch" VerticalAlignment="Stretch">
    <local:GridDemoModule.Resources>
        <ResourceDictionary>
            <ResourceDictionary.MergedDictionaries>
                <ResourceDictionary Source="/GridDemo;component/Themes/generic.xaml" />
                <ResourceDictionary Source="/GridDemo;component/ModuleResources/EmbeddedTableViewTemplates.xaml" />
            </ResourceDictionary.MergedDictionaries>
            <local:EmployeesWithDetailsForEmbeddedView x:Key="employees"/>
        </ResourceDictionary>
    </local:GridDemoModule.Resources>
    <dxdb:DemoModuleControl>
        <dxg:GridControl x:Name="grid" ItemsSource="{StaticResource employees}">
            <dxg:GridControl.DetailDescriptor>
                <dxg:ContentDetailDescriptor ShowHeader="True" HeaderContentTemplate="{StaticResource headerTemplate}" ContentTemplate="{StaticResource contentTemplate}"/>
            </dxg:GridControl.DetailDescriptor>
            <dxg:GridControl.View>
                <dxg:TableView Name="view" AllowPerPixelScrolling="True" AutoWidth="True" NavigationStyle="Row"
                               DetailHeaderContent="Employees">
                    <i:Interaction.Triggers>
                        <i:EventTrigger EventName="Loaded">
                            <i:InvokeCommandAction CommandName="ExpandMasterRow" CommandParameter="1"
                                                   Command="{Binding Commands.ExpandMasterRow, ElementName=view}" />
                        </i:EventTrigger>
                    </i:Interaction.Triggers>
                </dxg:TableView>
            </dxg:GridControl.View>
            <dxg:GridControl.Columns>
                <dxg:GridColumn FieldName="FirstName" MinWidth="60"/>
                <dxg:GridColumn FieldName="LastName" MinWidth="60"/>
                <dxg:GridColumn FieldName="BirthDate" MinWidth="60">
                    <dxg:GridColumn.EditSettings>
                        <dxe:DateEditSettings DisplayFormat="d" />
                    </dxg:GridColumn.EditSettings>
                </dxg:GridColumn>
                <dxg:GridColumn x:Name="colEMail" AllowGrouping="False" FieldName="EMail" Header="E-mail" Width="195"
                                FixedWidth="true" UnboundType="String"
                                UnboundExpression="Lower([LastName])+'@devexpress.com'" />
                <dxg:GridColumn FieldName="Title" Header="Position" />
            </dxg:GridControl.Columns>
        </dxg:GridControl>
    </dxdb:DemoModuleControl>
</local:GridDemoModule>!using DevExpress.Xpf.Grid;
using DevExpress.Xpf.DemoBase;
using System.Windows.Controls;
using System;
using System.Collections.Generic;
using System.Windows;

namespace GridDemo {
    [CodeFile("ModuleResources/SharedResources(.SL).xaml")]
    [CodeFile("ModuleResources/EmbeddedTableViewTemplates(.SL).xaml")]
    [CodeFile("Controls/MasterDetailItems.(cs)")]
    public partial class EmbeddedTableView : GridDemoModule {
        public static readonly DependencyProperty SelectedTabIndexProperty = DependencyProperty.RegisterAttached("SelectedTabIndex", typeof(int), typeof(EmbeddedTableView), new PropertyMetadata(0));
        public static void SetSelectedTabIndex(DependencyObject element, int value) {
            element.SetValue(SelectedTabIndexProperty, value);
        }
        public static int GetSelectedTabIndex(DependencyObject element) {
            return (int)element.GetValue(SelectedTabIndexProperty);
        }
        public EmbeddedTableView() {
            InitializeComponent();
        }
    }
}!�MSBAML```����D@GridDemo, Version=13.1.4.0, Culture=neutral, PublicKeyToken=null#clr-namespace:GridDemoGridDemoOKmscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089I2clr-namespace:System.Collections;assembly=mscorlibSystem.Collections1&clr-namespace:System;assembly=mscorlibSystemfbDevExpress.Xpf.Grid.v13.1.Core, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49auSclr-namespace:DevExpress.Xpf.Grid.Hierarchy;assembly=DevExpress.Xpf.Grid.v13.1.CoreDevExpress.Xpf.Grid.Hierarchy#GridDemo.ExpandCollapseGroups\XPresentationFramework, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35RNWindowsBase, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35WSPresentationCore, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35D9http://schemas.microsoft.com/winfx/2006/xaml/presentationRNSystem.Xaml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089:x,http://schemas.microsoft.com/winfx/2006/xamla]DevExpress.Xpf.Core.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a;dx2http://schemas.devexpress.com/winfx/2008/xaml/corea]DevExpress.Xpf.Grid.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49al	hDevExpress.Xpf.Grid.v13.1.Extensions, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a@dxg2http://schemas.devexpress.com/winfx/2008/xaml/grid	Gdxgt<http://schemas.devexpress.com/winfx/2008/xaml/grid/themekeys?dxe5http://schemas.devexpress.com/winfx/2008/xaml/editors"localclr-namespace:GridDemoDcollections2clr-namespace:System.Collections;assembly=mscorlib0sys&clr-namespace:System;assembly=mscorlibe
aDevExpress.Xpf.DemoBase.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49aAdxdb6http://schemas.devexpress.com/winfx/2008/xaml/demobase
Dmc;http://schemas.openxmlformats.org/markup-compatibility/2006
:d2http://schemas.microsoft.com/expression/blend/2008
^dxghSclr-namespace:DevExpress.Xpf.Grid.Hierarchy;assembly=DevExpress.Xpf.Grid.v13.1.Core
�	Resources
�MergedDictionaries
�Source-
'DevExpress.Xpf.DemoBase.NWindDataLoader NWindDataLoader��$-'/GridDemo;component/Themes/generic.xaml?��$LF/GridDemo;component/ModuleResources/ExpandCollapseGroupsTemplates.xaml?�%&	.�/
)DevExpress.Xpf.DemoBase.DemoModuleControlOptionsContent$DevExpress.Xpf.Core.GroupFrame$��Animation Type��$	�Top=�.�("DevExpress.Xpf.Editors.ListBoxEdit-$�animationTypeComboBox��%DevExpress.Xpf.Editors.BaseEdit
ShowBorder.$�0,0,30,0q�
SelectedIndex$0��Z�
StyleSettings:4DevExpress.Xpf.Editors.RadioListBoxEditStyleSettingsItems��Default����Fade In����Cascade Fade In����
Blinds����Cascade Blinds����None��Content.%DevExpress.Xpf.Grid.GridControl-$
�grid��)#DevExpress.Xpf.Grid.DataControlBase	ItemsSource	�
�Path$
Invoices�
�Source#[Columns$	DevExpress.Xpf.Grid.GridColumn	$
DevExpress.Xpf.Grid.ColumnBase

	FieldName$

Country��$DevExpress.Xpf.Grid.BaseColumnMinWidth$30��	$
Region��$30��	$

City��$30��	
GroupIndex$0�	$
	OrderDate��$30��
EditSettings60DevExpress.Xpf.Editors.Settings.DateEditSettings6
0DevExpress.Xpf.Editors.Settings.BaseEditSettings

DisplayFormat$d��	$
	UnitPrice��$30��60DevExpress.Xpf.Editors.Settings.TextEditSettings$$0.00��MaskType$
Numeric=�	$
Quantity��$30��GroupSummary)#DevExpress.Xpf.Grid.GridSummaryItem)#DevExpress.Xpf.Grid.SummaryItemBaseSummaryType$Count=�View#DevExpress.Xpf.Grid.TableView-Name$
view��& DevExpress.Xpf.Grid.GridViewBaseShowGroupedColumns.& DevExpress.Xpf.Grid.DataViewBaseNavigationStyle$	Row=�	AutoWidth.!i<local:GridDemoModule x:Class="GridDemo.ExpandCollapseGroups"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:dx="http://schemas.devexpress.com/winfx/2008/xaml/core"
    xmlns:dxg="http://schemas.devexpress.com/winfx/2008/xaml/grid"
    xmlns:dxgt="http://schemas.devexpress.com/winfx/2008/xaml/grid/themekeys"
 xmlns:dxe="http://schemas.devexpress.com/winfx/2008/xaml/editors"
    xmlns:local="clr-namespace:GridDemo"
    xmlns:collections="clr-namespace:System.Collections;assembly=mscorlib"
    xmlns:sys="clr-namespace:System;assembly=mscorlib"
 xmlns:dxdb="http://schemas.devexpress.com/winfx/2008/xaml/demobase"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:dxgh="clr-namespace:DevExpress.Xpf.Grid.Hierarchy;assembly=DevExpress.Xpf.Grid.v13.1.Core"
    mc:Ignorable="d" d:DesignHeight="400" d:DesignWidth="800">
    <local:GridDemoModule.Resources>
  <ResourceDictionary>
   <ResourceDictionary.MergedDictionaries>
    <ResourceDictionary Source="/GridDemo;component/Themes/generic.xaml" />
                <ResourceDictionary Source="/GridDemo;component/ModuleResources/ExpandCollapseGroupsTemplates.xaml" />
   </ResourceDictionary.MergedDictionaries>
            <dxdb:NWindDataLoader x:Key="NWindDataLoader" />
        </ResourceDictionary>
    </local:GridDemoModule.Resources>
    <dxdb:DemoModuleControl><dxdb:DemoModuleControl.OptionsContent>
        <dx:GroupFrame Header="Animation Type" VerticalAlignment="Top">
            <dxe:ListBoxEdit Background="{x:Null}" ShowBorder="False" Name="animationTypeComboBox" Margin="0,0,30,0" SelectedIndex="0" EditValueChanged="animationTypeComboBox_SelectionChanged">
                <dxe:ListBoxEdit.StyleSettings>
                    <dxe:RadioListBoxEditStyleSettings />
                </dxe:ListBoxEdit.StyleSettings>
                <dxe:ListBoxEdit.Items>
                    <sys:String>Default</sys:String>
                    <sys:String>Fade In</sys:String>
                    <sys:String>Cascade Fade In</sys:String>
                    <sys:String>Blinds</sys:String>
                    <sys:String>Cascade Blinds</sys:String>
                    <sys:String>None</sys:String>
                </dxe:ListBoxEdit.Items>
            </dxe:ListBoxEdit>
        </dx:GroupFrame>
    </dxdb:DemoModuleControl.OptionsContent>
        <dxg:GridControl Name="grid" ItemsSource="{Binding Path=Invoices, Source={StaticResource NWindDataLoader}}">
      <dxg:GridControl.Columns>
                <dxg:GridColumn FieldName="Country" MinWidth="30" />
                <dxg:GridColumn FieldName="Region" MinWidth="30" />
                <dxg:GridColumn FieldName="City" MinWidth="30" GroupIndex="0" />
                <dxg:GridColumn FieldName="OrderDate" MinWidth="30">
                    <dxg:GridColumn.EditSettings>
                        <dxe:DateEditSettings DisplayFormat="d" />
                    </dxg:GridColumn.EditSettings>
                </dxg:GridColumn>
       <dxg:GridColumn FieldName="UnitPrice" MinWidth="30">
        <dxg:GridColumn.EditSettings>
                        <dxe:TextEditSettings DisplayFormat="$0.00" MaskType="Numeric" />
        </dxg:GridColumn.EditSettings>
       </dxg:GridColumn>
       <dxg:GridColumn FieldName="Quantity" MinWidth="30" />
            </dxg:GridControl.Columns>
            <dxg:GridControl.GroupSummary>
                <dxg:GridSummaryItem SummaryType="Count" />
            </dxg:GridControl.GroupSummary>
            <dxg:GridControl.View>
                <dxg:TableView x:Name="view" ShowGroupedColumns="True" NavigationStyle="Row" AutoWidth="True" />
            </dxg:GridControl.View>
        </dxg:GridControl>
</dxdb:DemoModuleControl></local:GridDemoModule>!using System;
using System.Windows;
using System.Windows.Controls;
using DevExpress.Xpf.Core;
using DevExpress.Xpf.Grid;
using System.Windows.Media.Animation;
using DevExpress.Xpf.DemoBase;

namespace GridDemo {
    [CodeFile("ModuleResources/ExpandCollapseGroupsTemplates(.SL).xaml")]
    [CodeFile("ModuleResources/ExpandCollapseGroupsClasses.(cs)")]
    public partial class ExpandCollapseGroups : GridDemoModule {
        public ExpandCollapseGroups() {
            InitializeComponent();
        }
        void animationTypeComboBox_SelectionChanged(object sender, DevExpress.Xpf.Editors.EditValueChangedEventArgs e) {
            if(grid == null)
                return;
            if(animationTypeComboBox.SelectedIndex == 0 || animationTypeComboBox.SelectedIndex == 2 || animationTypeComboBox.SelectedIndex == 4) {
                grid.View.ClearValue(GridViewBase.CollapseStoryboardProperty);
                grid.View.ClearValue(GridViewBase.ExpandStoryboardProperty);
            }
            if(animationTypeComboBox.SelectedIndex == 1 || animationTypeComboBox.SelectedIndex == 3 || animationTypeComboBox.SelectedIndex == 5) {
                view.ExpandStoryboard = GetStoryboard("expandStoryborad");
                view.CollapseStoryboard = GetStoryboard("collapseStoryborad");
            }
            if(animationTypeComboBox.SelectedIndex == 1 || animationTypeComboBox.SelectedIndex == 2)
                view.RowDecorationTemplate = (ControlTemplate)Resources["fadeInTemplate"];
            if(animationTypeComboBox.SelectedIndex == 3 || animationTypeComboBox.SelectedIndex == 4)
                view.RowDecorationTemplate = (ControlTemplate)Resources["blindsTemplate"];
            if(animationTypeComboBox.SelectedIndex == 0 || animationTypeComboBox.SelectedIndex == 5)
                view.ClearValue(DevExpress.Xpf.Grid.TableView.RowDecorationTemplateProperty);
        }
        Storyboard GetStoryboard(string resourceName) {
            return (Storyboard)Resources[resourceName];
        }
    }
}!MSBAML```����D@GridDemo, Version=13.1.4.0, Culture=neutral, PublicKeyToken=null#clr-namespace:GridDemoGridDemoGridDemo.FilterControl\XPresentationFramework, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35RNWindowsBase, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35WSPresentationCore, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35D9http://schemas.microsoft.com/winfx/2006/xaml/presentationRNSystem.Xaml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089:x,http://schemas.microsoft.com/winfx/2006/xamla]DevExpress.Xpf.Core.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a;dx2http://schemas.devexpress.com/winfx/2008/xaml/core<dxb2http://schemas.devexpress.com/winfx/2008/xaml/barsfbDevExpress.Xpf.Grid.v13.1.Core, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49aa]DevExpress.Xpf.Grid.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49alhDevExpress.Xpf.Grid.v13.1.Extensions, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a@dxg2http://schemas.devexpress.com/winfx/2008/xaml/grid?dxe5http://schemas.devexpress.com/winfx/2008/xaml/editorse	aDevExpress.Xpf.DemoBase.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49aAdxdb6http://schemas.devexpress.com/winfx/2008/xaml/demobase	"localclr-namespace:GridDemo	Dmc;http://schemas.openxmlformats.org/markup-compatibility/2006	:d2http://schemas.microsoft.com/expression/blend/2008	$
�Stretch=�$
�Stretch=��	Resources
-	'DevExpress.Xpf.DemoBase.NWindDataLoader NWindDataLoader�%&	.�/	)DevExpress.Xpf.DemoBase.DemoModuleControl(!SupressGroupFramePaddingInOptions.OptionsContent��.+�& DevExpress.Xpf.Editors.CheckEdit-Name$showGroupCommandsIcon��Content)#DevExpress.Xpf.Core.ObjectConverter$Show Group Commands Icon$
�0,0,0,4q�-$showOperandTypeIcon��$Show Operand Type Icon$
�0,0,0,4q�-$showToolTips��$Show Tool Tips	IsChecked$
TrueY�Content.�$�12q���BitmapScalingMode$NearestNeighbor=��RowDefinitions�$	��150��$��0.45*��$
��Auto��$	��150��$��0.55*�.+�%DevExpress.Xpf.Core.DXDockPanel$��0�	J�SnapsToDevicePixels	..+��-$�ApplyFilterButton��$	�150��$
�0,4,0,8q�$�Apply Filter��$�Bottom=�$�Center=�4.DevExpress.Xpf.Editors.Filtering.FilterControl-
Name$
filterEditor��
SourceControl��ElementName$
filterGrid��
�Path$
FilteredComponent�FilterCriteria�$
filterGrid��$
FilterCriteria��Mode$TwoWay=�ShowGroupCommandsIcon�$showGroupCommandsIcon��$
	IsChecked�$TwoWay=�ShowOperandTypeIcon�$showOperandTypeIcon��$
	IsChecked�$TwoWay=�ShowToolTips�$showToolTips��$
	IsChecked�$TwoWay=���$��1�$
�Stretch=�$
�Stretch=�$�4��
�����%DevExpress.Xpf.Grid.GridControl-Name$
filterGrid��$��2�)#DevExpress.Xpf.Grid.DataControlBaseItemsSource�$
Invoices�
�Source#[Columns$	DevExpress.Xpf.Grid.GridColumn	-	Name$colID��$
DevExpress.Xpf.Grid.ColumnBase
	FieldName$
OrderID��$DevExpress.Xpf.Grid.BaseColumnMinWidth$60��Width$60��
AllowResizing]
YDevExpress.Data.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a5
/DevExpress.Utils.Design.DefaultBooleanConverter$False
FixedWidth.
Header$ID	-$
colProduct��
ColumnFilterMode$DisplayText=�$	ProductID��$
Product$	200��$	200��
AutoFilterCondition$Equals=� 
EditSettings :
4DevExpress.Xpf.Editors.Settings.ComboBoxEditSettings
<6DevExpress.Xpf.Editors.Settings.LookUpEditSettingsBase!AutoComplete!."ImmediatePopup".#ValueMember$#	ProductID��$
DisplayMember$$ProductName��%ItemsSource%�$
Products�#[&HeaderTemplate&��.R���'��Orientation$'
Horizontal=�.+��$
��None=�$:��4/GridDemo;component/Images/FilterControl/produce.png�!DevExpress.Xpf.Bars.BarItem(UseAsBarItemGlyph(.$
�0,0,4,0q���$�Center=����	-	$colUnitPrice��$	UnitPrice��$50��$50��$Equals=� 60DevExpress.Xpf.Editors.Settings.SpinEditSettings60DevExpress.Xpf.Editors.Settings.TextEditSettings)MaskType$
)Numeric=�*MaskUseAsDisplayFormat*.+Mask$+c��,MaskCulture$,en-US��	-
$colQuantity��$Quantity��$50��$50��	-$colTotal��$Total��$	110��$	110��-
UnboundType8
2DevExpress.Utils.Design.UnboundColumnTypeConverter$
-Decimal.
ReadOnly../
UnboundExpression$/[UnitPrice] * [Quantity]�� $
)Numeric=�*.$+c��$,en-US��0View0#DevExpress.Xpf.Grid.TableView-1	AutoWidth1.!�<local:GridDemoModule x:Class="GridDemo.FilterControl"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
 xmlns:dx="http://schemas.devexpress.com/winfx/2008/xaml/core"
    xmlns:dxb="http://schemas.devexpress.com/winfx/2008/xaml/bars"
 xmlns:dxg="http://schemas.devexpress.com/winfx/2008/xaml/grid"
 xmlns:dxe="http://schemas.devexpress.com/winfx/2008/xaml/editors"
    xmlns:dxdb="http://schemas.devexpress.com/winfx/2008/xaml/demobase"
 xmlns:local="clr-namespace:GridDemo"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    mc:Ignorable="d" d:DesignHeight="400" d:DesignWidth="800"
 HorizontalAlignment="Stretch" VerticalAlignment="Stretch">
    <local:GridDemoModule.Resources>
        <dxdb:NWindDataLoader x:Key="NWindDataLoader" />
    </local:GridDemoModule.Resources>
    <dxdb:DemoModuleControl SupressGroupFramePaddingInOptions="False">
        <dxdb:DemoModuleControl.OptionsContent>
            <StackPanel>
                <dxe:CheckEdit x:Name="showGroupCommandsIcon" Content="Show Group Commands Icon" Margin="0,0,0,4" />
                <dxe:CheckEdit x:Name="showOperandTypeIcon" Content="Show Operand Type Icon" Margin="0,0,0,4" />
                <dxe:CheckEdit x:Name="showToolTips" Content="Show Tool Tips" IsChecked="True" />
            </StackPanel>
        </dxdb:DemoModuleControl.OptionsContent>
        <Grid Margin="12">
            <RenderOptions.BitmapScalingMode>NearestNeighbor</RenderOptions.BitmapScalingMode>
            <Grid.RowDefinitions>
                <RowDefinition MinHeight="150" Height="0.45*" />
                <RowDefinition Height="Auto" />
                <RowDefinition MinHeight="150" Height="0.55*" />
            </Grid.RowDefinitions>
            <dx:DXDockPanel Grid.Row="0" SnapsToDevicePixels="True">
                <Button Width="150" Name="ApplyFilterButton" Margin="0,4,0,8" Content="Apply Filter" dx:DXDockPanel.Dock="Bottom" HorizontalAlignment="Center" Click="ApplyFilterButtonClick" />
                <dxe:FilterControl x:Name="filterEditor" SourceControl="{Binding ElementName=filterGrid, Path=FilteredComponent}"
                               FilterCriteria="{Binding ElementName=filterGrid, Path=FilterCriteria, Mode=TwoWay}"
                               ShowGroupCommandsIcon="{Binding ElementName=showGroupCommandsIcon, Path=IsChecked, Mode=TwoWay}"
                               ShowOperandTypeIcon="{Binding ElementName=showOperandTypeIcon, Path=IsChecked, Mode=TwoWay}"
                               ShowToolTips="{Binding ElementName=showToolTips, Path=IsChecked, Mode=TwoWay}" />
            </dx:DXDockPanel>
            <GridSplitter Grid.Row="1" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Height="4" Background="Transparent" />
            <dxg:GridControl x:Name="filterGrid" Grid.Row="2" ItemsSource="{Binding Path=Invoices, Source={StaticResource NWindDataLoader}}">
                <dxg:GridControl.Columns>
                    <dxg:GridColumn x:Name="colID" FieldName="OrderID" MinWidth="60" Width="60" AllowResizing="False" FixedWidth="true" Header="ID" />
                    <dxg:GridColumn x:Name="colProduct" ColumnFilterMode="DisplayText" FieldName="ProductID" Header="Product" MinWidth="200" Width="200" AutoFilterCondition="Equals">
                        <dxg:GridColumn.EditSettings>
                            <dxe:ComboBoxEditSettings AutoComplete="True" ImmediatePopup="True" ValueMember="ProductID" DisplayMember="ProductName" ItemsSource="{Binding Path=Products, Source={StaticResource NWindDataLoader}}" />
                        </dxg:GridColumn.EditSettings>
                        <dxg:GridColumn.HeaderTemplate>
                            <DataTemplate>
                                <StackPanel Orientation="Horizontal">
                                    <Image Stretch="None" Source="/GridDemo;component/Images/FilterControl/produce.png" dxb:BarItem.UseAsBarItemGlyph="True" Margin="0,0,4,0"/>
                                    <TextBlock Text="{Binding}" VerticalAlignment="Center" />
                                </StackPanel>
                            </DataTemplate>
                        </dxg:GridColumn.HeaderTemplate>
                    </dxg:GridColumn>
                    <dxg:GridColumn x:Name="colUnitPrice" FieldName="UnitPrice" MinWidth="50" Width="50" AutoFilterCondition="Equals">
                        <dxg:GridColumn.EditSettings>
                            <dxe:SpinEditSettings MaskType="Numeric" MaskUseAsDisplayFormat="True" Mask="c" MaskCulture="en-US" />
                        </dxg:GridColumn.EditSettings>
                    </dxg:GridColumn>
                    <dxg:GridColumn x:Name="colQuantity" FieldName="Quantity" MinWidth="50" Width="50" />
                    <dxg:GridColumn x:Name="colTotal" FieldName="Total" MinWidth="110" Width="110" UnboundType="Decimal" ReadOnly="True" UnboundExpression="[UnitPrice] * [Quantity]">
                        <dxg:GridColumn.EditSettings>
                            <dxe:TextEditSettings MaskType="Numeric" MaskUseAsDisplayFormat="True" Mask="c" MaskCulture="en-US" />
                        </dxg:GridColumn.EditSettings>
                    </dxg:GridColumn>
                </dxg:GridControl.Columns>
                <dxg:GridControl.View>
                    <dxg:TableView AutoWidth="True" FilterEditorCreated="TableView_FilterEditorCreated" />
                </dxg:GridControl.View>
            </dxg:GridControl>
        </Grid>
    </dxdb:DemoModuleControl>
</local:GridDemoModule>!�using System.Windows.Controls;
using DevExpress.Data.Filtering;

namespace GridDemo {
    public partial class FilterControl : GridDemoModule {
        public FilterControl() {
            InitializeComponent();
            filterGrid.FilterCriteria = new BinaryOperator("OrderID", 10248, BinaryOperatorType.Equal);
        }

        protected override bool IsGridBorderVisible { get { return true; } }

        private void ApplyFilterButtonClick(object sender, System.Windows.RoutedEventArgs e) {
            filterEditor.ApplyFilter();
        }

        private void TableView_FilterEditorCreated(object sender, DevExpress.Xpf.Grid.FilterEditorEventArgs e) {
            e.FilterControl.ShowGroupCommandsIcon = filterEditor.ShowGroupCommandsIcon;
            e.FilterControl.ShowOperandTypeIcon = filterEditor.ShowOperandTypeIcon;
            e.FilterControl.ShowToolTips = filterEditor.ShowToolTips;
        }
    }
}!�MSBAML```����D@GridDemo, Version=13.1.4.0, Culture=neutral, PublicKeyToken=null#clr-namespace:GridDemoGridDemoOKmscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089I2clr-namespace:System.Collections;assembly=mscorlibSystem.Collections1&clr-namespace:System;assembly=mscorlibSystemGridDemo.Filtering\XPresentationFramework, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35RNWindowsBase, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35WSPresentationCore, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35D9http://schemas.microsoft.com/winfx/2006/xaml/presentationRNSystem.Xaml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089:x,http://schemas.microsoft.com/winfx/2006/xamla]DevExpress.Xpf.Core.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a;dx2http://schemas.devexpress.com/winfx/2008/xaml/corefbDevExpress.Xpf.Grid.v13.1.Core, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49aa]DevExpress.Xpf.Grid.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49al	hDevExpress.Xpf.Grid.v13.1.Extensions, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a@dxg2http://schemas.devexpress.com/winfx/2008/xaml/grid	?dxe5http://schemas.devexpress.com/winfx/2008/xaml/editors"localclr-namespace:GridDemoDcollections2clr-namespace:System.Collections;assembly=mscorlib0sys&clr-namespace:System;assembly=mscorlibe
aDevExpress.Xpf.DemoBase.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49aAdxdb6http://schemas.devexpress.com/winfx/2008/xaml/demobase
Dmc;http://schemas.openxmlformats.org/markup-compatibility/2006
:d2http://schemas.microsoft.com/expression/blend/2008
�	Resources
�MergedDictionaries
�Source-
'DevExpress.Xpf.DemoBase.NWindDataLoader NWindDataLoader��$-'/GridDemo;component/Themes/generic.xaml?��$A;/GridDemo;component/ModuleResources/FilteringTemplates.xaml?�%&	.�/
)DevExpress.Xpf.DemoBase.DemoModuleControl(!SupressGroupFramePaddingInOptions.OptionsContent��$	�170��.+�& DevExpress.Xpf.Editors.CheckEdit-$�allowFilteringCheckEdit��$
�0,0,0,4q�Content)#DevExpress.Xpf.Core.ObjectConverter$Allow Filtering	IsChecked��Path$View.AllowColumnFiltering��Mode$TwoWay=�-$�allowFilterEditor��$
�0,0,0,4q�$Allow Filter Editor�$View.AllowFilterEditor�$TwoWay=�-$!�allowMRUFilterListCheckEdit��$
�0,0,0,4q�$Allow MRU Filter List�$AllowMRUFilterList�$TwoWay=�-$'�!allowColumnMRUFilterListCheckEdit��$�0,0,0,12q�$"Allow Column MRU Filter List�$AllowColumnMRUFilterList�$TwoWay=�$DevExpress.Xpf.Core.GroupFrame$��Show Filter Panel Mode��$�0,0,0,12q�.�("DevExpress.Xpf.Editors.ListBoxEdit-	Name$ 	showFilterPanelModeListBox��%DevExpress.Xpf.Editors.BaseEdit

ShowBorder
.
SelectedIndex$0��Z�
StyleSettings:4DevExpress.Xpf.Editors.RadioListBoxEditStyleSettings
Items
��Default����
Always����	Never��$��Immediately Update Filter��$�0,0,0,12q�.���.+�-$1�+immediateUpdateCountryColumnFilterCheckEdit��$
�0,0,0,4q�$Country Column�$!ImmediateUpdateColumnFilter�$TwoWay=��ElementName$
colCountry��-$2�,immediateUpdateQuantityColumnFilterCheckEdit��$
�0,0,0,0q�$Quantity Column�$!ImmediateUpdateColumnFilter�$TwoWay=�$colQuantity��$��	View Type��$
�0,0,0,0q�.�-$	viewsListBox��
.$0��Z�
��
Table View����
	Card View��Content.%	DevExpress.Xpf.Grid.GridControl	-	$
�grid��)
#DevExpress.Xpf.Grid.DataControlBase
ItemsSource�$Invoices�
�Source#[	View#DevExpress.Xpf.Grid.TableView& DevExpress.Xpf.Grid.GridViewBaseShowGroupedColumns.&
 DevExpress.Xpf.Grid.DataViewBase
NavigationStyle$	Row=�	AutoWidth.
ShowFixedTotalSummary.	Columns$DevExpress.Xpf.Grid.GridColumn-
$DevExpress.Xpf.Grid.ColumnBaseName$
colCountry��	FieldName$
Country��$DevExpress.Xpf.Grid.BaseColumnMinWidth$90��Width$90��FilterPopupMode$CheckedList=�$Region��$30��$30��$
City��$30��$30��$	OrderDate��$30��$30��EditSettings60DevExpress.Xpf.Editors.Settings.DateEditSettings60DevExpress.Xpf.Editors.Settings.BaseEditSettings
DisplayFormat$d��$	UnitPrice��$30��$30��60DevExpress.Xpf.Editors.Settings.TextEditSettings$$0.00��MaskType$
Numeric=�-$colQuantity��$Quantity��$90��$90��$Custom=� %!quantityColumnFilterPopupTemplate& CustomColumnFilterPopupTemplate# [!	GroupSummary!)#DevExpress.Xpf.Grid.GridSummaryItem)#DevExpress.Xpf.Grid.SummaryItemBase"SummaryType$"Count=�#	TotalSummary#$"Count=�$	Alignment$$Right=�!{<local:GridDemoModule x:Class="GridDemo.Filtering"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:dx="http://schemas.devexpress.com/winfx/2008/xaml/core"
    xmlns:dxg="http://schemas.devexpress.com/winfx/2008/xaml/grid"
 xmlns:dxe="http://schemas.devexpress.com/winfx/2008/xaml/editors"
    xmlns:local="clr-namespace:GridDemo"
    xmlns:collections="clr-namespace:System.Collections;assembly=mscorlib"
    xmlns:sys="clr-namespace:System;assembly=mscorlib"
 xmlns:dxdb="http://schemas.devexpress.com/winfx/2008/xaml/demobase"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    mc:Ignorable="d" d:DesignHeight="400" d:DesignWidth="800">
    <local:GridDemoModule.Resources>
        <ResourceDictionary>
            <ResourceDictionary.MergedDictionaries>
                <ResourceDictionary Source="/GridDemo;component/Themes/generic.xaml" />
                <ResourceDictionary Source="/GridDemo;component/ModuleResources/FilteringTemplates.xaml" />
            </ResourceDictionary.MergedDictionaries>
            <dxdb:NWindDataLoader x:Key="NWindDataLoader" />
        </ResourceDictionary>
    </local:GridDemoModule.Resources>
    <dxdb:DemoModuleControl SupressGroupFramePaddingInOptions="False">
        <dxdb:DemoModuleControl.OptionsContent>
            <StackPanel MinWidth="170">
                <dxe:CheckEdit Margin="0,0,0,4" IsChecked="{Binding Path=View.AllowColumnFiltering, Mode=TwoWay}" Name="allowFilteringCheckEdit" Content="Allow Filtering" />
                <dxe:CheckEdit Margin="0,0,0,4" IsChecked="{Binding Path=View.AllowFilterEditor, Mode=TwoWay}" Name="allowFilterEditor" Content="Allow Filter Editor" />
                <dxe:CheckEdit Margin="0,0,0,4" IsChecked="{Binding Path=AllowMRUFilterList, Mode=TwoWay}" Name="allowMRUFilterListCheckEdit" Content="Allow MRU Filter List" />
                <dxe:CheckEdit Margin="0,0,0,12" IsChecked="{Binding Path=AllowColumnMRUFilterList, Mode=TwoWay}" Name="allowColumnMRUFilterListCheckEdit" Content="Allow Column MRU Filter List" />
                <dx:GroupFrame Header="Show Filter Panel Mode" Margin="0,0,0,12">
                    <dxe:ListBoxEdit Background="{x:Null}" ShowBorder="False" x:Name="showFilterPanelModeListBox" SelectedIndex="0">
                        <dxe:ListBoxEdit.StyleSettings>
                            <dxe:RadioListBoxEditStyleSettings />
                        </dxe:ListBoxEdit.StyleSettings>
                        <dxe:ListBoxEdit.Items>
                            <sys:String>Default</sys:String>
                            <sys:String>Always</sys:String>
                            <sys:String>Never</sys:String>
                        </dxe:ListBoxEdit.Items>
                    </dxe:ListBoxEdit>
                </dx:GroupFrame>
                <dx:GroupFrame Header="Immediately Update Filter" Margin="0,0,0,12">
                    <StackPanel>
                        <dxe:CheckEdit Margin="0,0,0,4" IsChecked="{Binding Path=ImmediateUpdateColumnFilter, Mode=TwoWay, ElementName=colCountry}" Name="immediateUpdateCountryColumnFilterCheckEdit" Content="Country Column"/>
                        <dxe:CheckEdit Margin="0,0,0,0" IsChecked="{Binding Path=ImmediateUpdateColumnFilter, Mode=TwoWay, ElementName=colQuantity}" Name="immediateUpdateQuantityColumnFilterCheckEdit" Content="Quantity Column"/>
                    </StackPanel>
                </dx:GroupFrame>
                <dx:GroupFrame Header="View Type" Margin="0,0,0,0">
                    <dxe:ListBoxEdit Background="{x:Null}" ShowBorder="False" x:Name="viewsListBox" SelectedIndex="0">
                        <dxe:ListBoxEdit.StyleSettings>
                            <dxe:RadioListBoxEditStyleSettings />
                        </dxe:ListBoxEdit.StyleSettings>
                        <dxe:ListBoxEdit.Items>
                            <sys:String>Table View</sys:String>
                            <sys:String>Card View</sys:String>
                        </dxe:ListBoxEdit.Items>
                    </dxe:ListBoxEdit>
                </dx:GroupFrame>
            </StackPanel>
        </dxdb:DemoModuleControl.OptionsContent>
        <dxg:GridControl Name="grid" ItemsSource="{Binding Path=Invoices, Source={StaticResource NWindDataLoader}}">
            <dxg:GridControl.View>
                <dxg:TableView ShowGroupedColumns="True" NavigationStyle="Row" AutoWidth="True" ShowFixedTotalSummary="True"/>
            </dxg:GridControl.View>
            <dxg:GridControl.Columns>
                <dxg:GridColumn Name="colCountry" FieldName="Country" MinWidth="90" Width="90" FilterPopupMode="CheckedList" />
                <dxg:GridColumn FieldName="Region" MinWidth="30" Width="30" />
                <dxg:GridColumn FieldName="City" MinWidth="30" Width="30" />
                <dxg:GridColumn FieldName="OrderDate" MinWidth="30" Width="30">
                    <dxg:GridColumn.EditSettings>
                        <dxe:DateEditSettings DisplayFormat="d" />
                    </dxg:GridColumn.EditSettings>
                </dxg:GridColumn>
                <dxg:GridColumn FieldName="UnitPrice" MinWidth="30" Width="30">
                    <dxg:GridColumn.EditSettings>
                        <dxe:TextEditSettings DisplayFormat="$0.00" MaskType="Numeric" />
                    </dxg:GridColumn.EditSettings>
                </dxg:GridColumn>
                <dxg:GridColumn Name="colQuantity" FieldName="Quantity" MinWidth="90" Width="90" FilterPopupMode="Custom" CustomColumnFilterPopupTemplate="{StaticResource quantityColumnFilterPopupTemplate}" />
            </dxg:GridControl.Columns>
            <dxg:GridControl.GroupSummary>
                <dxg:GridSummaryItem SummaryType="Count" />
            </dxg:GridControl.GroupSummary>
            <dxg:GridControl.TotalSummary>
                <dxg:GridSummaryItem SummaryType="Count" Alignment="Right"/>
            </dxg:GridControl.TotalSummary>
        </dxg:GridControl>
    </dxdb:DemoModuleControl>
</local:GridDemoModule>!jusing System;
using System.Windows.Data;
using DevExpress.Data.Filtering;
using DevExpress.Xpf.Grid;
using DevExpress.Xpf.DemoBase;

namespace GridDemo{
    [CodeFile("ModuleResources/FilteringTemplates(.SL).xaml")]
    [CodeFile("ModuleResources/FilteringClasses.(cs)")]
    public partial class Filtering : GridDemoModule {
        public Filtering() {
            InitializeComponent();
            grid.FilterCriteria = new BinaryOperator("City", "Bergamo", BinaryOperatorType.Equal);
            grid.FilterCriteria = new BinaryOperator("OrderDate", new DateTime(1995, 1, 1), BinaryOperatorType.GreaterOrEqual);
            showFilterPanelModeListBox.EditValueChanged += new DevExpress.Xpf.Editors.EditValueChangedEventHandler(showFilterPanelModeListBox_SelectionChanged);

            viewsListBox.EditValueChanged += new DevExpress.Xpf.Editors.EditValueChangedEventHandler(viewsListBox_SelectionChanged);
        }
        void viewsListBox_SelectionChanged(object sender, DevExpress.Xpf.Editors.EditValueChangedEventArgs e) {
   if(viewsListBox.SelectedIndex == 0) {
    grid.View = (GridViewBase)FindResource("columnView");
   }
   if(viewsListBox.SelectedIndex == 1) {
    grid.View = (GridViewBase)FindResource("cardView");
   }
   UpdateShowFilterPanelMode();
  }
        private void showFilterPanelModeListBox_SelectionChanged(object sender, DevExpress.Xpf.Editors.EditValueChangedEventArgs e) {
   UpdateShowFilterPanelMode();
  }

  private void UpdateShowFilterPanelMode() {
   if(showFilterPanelModeListBox.SelectedIndex == 0)
    grid.View.ShowFilterPanelMode = ShowFilterPanelMode.Default;
   if(showFilterPanelModeListBox.SelectedIndex == 1)
    grid.View.ShowFilterPanelMode = ShowFilterPanelMode.ShowAlways;
   if(showFilterPanelModeListBox.SelectedIndex == 2)
    grid.View.ShowFilterPanelMode = ShowFilterPanelMode.Never;
  }
    }
}!GMSBAML```����OKmscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e0891&clr-namespace:System;assembly=mscorlibSystemD@GridDemo, Version=13.1.4.0, Culture=neutral, PublicKeyToken=null#clr-namespace:GridDemoGridDemoI2clr-namespace:System.Collections;assembly=mscorlibSystem.CollectionsGridDemo.FixedColumns\XPresentationFramework, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35RNWindowsBase, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35WSPresentationCore, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35D9http://schemas.microsoft.com/winfx/2006/xaml/presentationRNSystem.Xaml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089:x,http://schemas.microsoft.com/winfx/2006/xaml6sys&clr-namespace:System;assembly=mscorliba]DevExpress.Xpf.Core.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a;dx2http://schemas.devexpress.com/winfx/2008/xaml/corefbDevExpress.Xpf.Grid.v13.1.Core, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49aa]DevExpress.Xpf.Grid.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49al	hDevExpress.Xpf.Grid.v13.1.Extensions, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a@dxg2http://schemas.devexpress.com/winfx/2008/xaml/grid	?dxe5http://schemas.devexpress.com/winfx/2008/xaml/editors"localclr-namespace:GridDemoe
aDevExpress.Xpf.DemoBase.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49aAdxdb6http://schemas.devexpress.com/winfx/2008/xaml/demobase
Dcollections2clr-namespace:System.Collections;assembly=mscorlib
Dmc;http://schemas.openxmlformats.org/markup-compatibility/2006
:d2http://schemas.microsoft.com/expression/blend/2008
c_System.Windows.Interactivity, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35Bi:http://schemas.microsoft.com/expression/2010/interactivity$
�Stretch=�$
�Stretch=��	Resources
�MergedDictionaries
�Source-
'DevExpress.Xpf.DemoBase.NWindDataLoader NWindDataLoader��$D>/GridDemo;component/ModuleResources/FixedColumnsTemplates.xaml?�%&	.�/
)DevExpress.Xpf.DemoBase.DemoModuleControl(!SupressGroupFramePaddingInOptions.OptionsContent��.+�& DevExpress.Xpf.Editors.CheckEditContent)#DevExpress.Xpf.Core.ObjectConverter$Enable Fixed Column Menu$
�0,0,0,4q�^�ToolTip$OIAllows to fix columns to the left or right using a column's context menu.��	IsChecked��Path$View.AllowFixedColumnMenu�	�Mode$	TwoWay=�+
%DevExpress.Xpf.DemoBase.SliderControl
Header$
Fixed Line Width��Minimum$2Q�Maximum$12Q�
	SmallStep$
1Q�	LargeStep$1Q�
ValueMinWidth$15Q�	EditValue�*View.FixedLineWidth+$	TwoWay=� RoundValueConverter�	Converter#[Content.%DevExpress.Xpf.Grid.GridControl-$
�grid��$
�Stretch=�$
�Stretch=�)#DevExpress.Xpf.Grid.DataControlBaseItemsSource�$	Customers�
�Source#[View#DevExpress.Xpf.Grid.TableView-Name$gridView��AllowPerPixelScrolling.&	 DevExpress.Xpf.Grid.DataViewBase	AllowEditing.AllowFixedColumnMenu. columnOptionsTemplate,	%ColumnHeaderCustomizationAreaTemplate#[Columns$
DevExpress.Xpf.Grid.GridColumn
$DevExpress.Xpf.Grid.ColumnBase	FieldName$CompanyName��$DevExpress.Xpf.Grid.BaseColumnWidth$	230��Fixed$
Left=�
$Phone��$	100��$Right=�
$ContactName��$	150��
$ContactTitle��$	150��
$Region��$	100��
$
Country��$90��
$
City��$	100��
$
Address��$	260��
$
PostalCode��$	110��
$	Fax��$	110��
$
CustomerID��$70��!�
<local:GridDemoModule x:Class="GridDemo.FixedColumns"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:sys="clr-namespace:System;assembly=mscorlib"
    xmlns:dx="http://schemas.devexpress.com/winfx/2008/xaml/core"
    xmlns:dxg="http://schemas.devexpress.com/winfx/2008/xaml/grid"
 xmlns:dxe="http://schemas.devexpress.com/winfx/2008/xaml/editors"
    xmlns:local="clr-namespace:GridDemo"
 xmlns:dxdb="http://schemas.devexpress.com/winfx/2008/xaml/demobase"
 xmlns:collections="clr-namespace:System.Collections;assembly=mscorlib"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity"
    mc:Ignorable="d" d:DesignHeight="400" d:DesignWidth="800"
 HorizontalAlignment="Stretch" VerticalAlignment="Stretch">
    <local:GridDemoModule.Resources>
        <ResourceDictionary>
            <ResourceDictionary.MergedDictionaries>
                <ResourceDictionary Source="/GridDemo;component/ModuleResources/FixedColumnsTemplates.xaml" />
            </ResourceDictionary.MergedDictionaries>
            <dxdb:NWindDataLoader x:Key="NWindDataLoader" />
        </ResourceDictionary>
    </local:GridDemoModule.Resources>
    <dxdb:DemoModuleControl SupressGroupFramePaddingInOptions="False">
        <dxdb:DemoModuleControl.OptionsContent>
            <StackPanel>
                <dxe:CheckEdit IsChecked="{Binding Path=View.AllowFixedColumnMenu, Mode=TwoWay}" Content="Enable Fixed Column Menu" Margin="0,0,0,4" ToolTipService.ToolTip="Allows to fix columns to the left or right using a column's context menu."/>
                <dxdb:SliderControl EditValue="{Binding View.FixedLineWidth, Mode=TwoWay, Converter={StaticResource RoundValueConverter}}"
                                Header="Fixed Line Width" Minimum="2" Maximum="12" SmallStep="1" LargeStep="1" ValueMinWidth="15" />
            </StackPanel>
        </dxdb:DemoModuleControl.OptionsContent>
        <dxg:GridControl Name="grid" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" ItemsSource="{Binding Path=Customers, Source={StaticResource NWindDataLoader}}">
            <dxg:GridControl.View>
                <dxg:TableView AllowPerPixelScrolling="True" AllowEditing="False" AllowFixedColumnMenu="True" x:Name="gridView" ColumnHeaderCustomizationAreaTemplate="{StaticResource columnOptionsTemplate}" />
            </dxg:GridControl.View>
            <dxg:GridControl.Columns>
                <dxg:GridColumn FieldName="CompanyName" Width="230" Fixed="Left" />
                <dxg:GridColumn FieldName="Phone" Width="100" Fixed="Right" />
                <dxg:GridColumn FieldName="ContactName" Width="150" />
                <dxg:GridColumn FieldName="ContactTitle" Width="150" />
                <dxg:GridColumn FieldName="Region" Width="100" />
                <dxg:GridColumn FieldName="Country" Width="90" />
                <dxg:GridColumn FieldName="City" Width="100" />
                <dxg:GridColumn FieldName="Address" Width="260" />
                <dxg:GridColumn FieldName="PostalCode" Width="110" />
                <dxg:GridColumn FieldName="Fax" Width="110" />
                <dxg:GridColumn FieldName="CustomerID" Width="70" />
            </dxg:GridControl.Columns>
        </dxg:GridControl>
    </dxdb:DemoModuleControl>
</local:GridDemoModule>!Iusing System;
using System.Windows;
using System.Windows.Data;
using DevExpress.Xpf.Core.Native;
using System.Windows.Controls.Primitives;
using System.Windows.Markup;
using System.Windows.Input;
using DevExpress.Xpf.Core.Commands;
using DevExpress.Xpf.Editors;
using DevExpress.Xpf.DemoBase;

namespace GridDemo {
    [CodeFile("ModuleResources/RoutedEventsHelper.(cs)")]
    [CodeFile("ModuleResources/FixedColumnsTemplates(.SL).xaml")]
    [CodeFile("Controls/Converters.(cs)")]
    public partial class FixedColumns : GridDemoModule {
        public FixedColumns() {
            ClosePopupCommand = new DelegateCommand<RoutedEventHandlerArgs>(ClosePopup);
            DataContext = this;
            InitializeComponent();
        }
        private void ClosePopup(RoutedEventHandlerArgs obj) {
            RadioButtonList_SelectionChanged(obj.Sender, (EditValueChangedEventArgs)obj.Args);
        }
        private void RadioButtonList_SelectionChanged(object sender, EditValueChangedEventArgs e) {
            FrameworkElement popupRoot = LayoutHelper.FindRoot((DependencyObject)sender) as FrameworkElement;
            if((popupRoot != null) && (popupRoot.Parent is Popup))
                (popupRoot.Parent as Popup).IsOpen = false;
        }
        public ICommand ClosePopupCommand { get; private set; }
    }
}!�MSBAML```����D@GridDemo, Version=13.1.4.0, Culture=neutral, PublicKeyToken=null#clr-namespace:GridDemoGridDemoGridDemo.GridSearchPanel\XPresentationFramework, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35RNWindowsBase, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35WSPresentationCore, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35D9http://schemas.microsoft.com/winfx/2006/xaml/presentationRNSystem.Xaml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089:x,http://schemas.microsoft.com/winfx/2006/xamlJmc;http://schemas.openxmlformats.org/markup-compatibility/2006@d2http://schemas.microsoft.com/expression/blend/2008a]DevExpress.Xpf.Core.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a;dx2http://schemas.devexpress.com/winfx/2008/xaml/corefbDevExpress.Xpf.Grid.v13.1.Core, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49aa]DevExpress.Xpf.Grid.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49alhDevExpress.Xpf.Grid.v13.1.Extensions, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a@dxg2http://schemas.devexpress.com/winfx/2008/xaml/grid?dxe5http://schemas.devexpress.com/winfx/2008/xaml/editorse	aDevExpress.Xpf.DemoBase.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49aAdxdb6http://schemas.devexpress.com/winfx/2008/xaml/demobase	c
_System.Windows.Interactivity, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35Bi:http://schemas.microsoft.com/expression/2010/interactivity
"localclr-namespace:GridDemo
-GridDemo.GridDemoModuleName$
root���	Resources
�MergedDictionaries
�Source-	'DevExpress.Xpf.DemoBase.NWindDataLoader NWindDataLoaderGridDemo.DemoDataProvider DemoDataProvider!GridDemo.DemoValuesProvider DemoValuesProvider'!GridDemo.GridSearchPanelViewModel 
	viewModelView#DevExpress.Xpf.Grid.TableViewName	AutoWidth& DevExpress.Xpf.Grid.DataViewBaseShowTotalSummaryShowFixedTotalSummary	SearchString 
ShowSearchPanelFindButtonSearchPanelClearOnClose��$-'/GridDemo;component/Themes/generic.xaml?��$C=/GridDemo;component/ModuleResources/SearchPanelTemplates.xaml?�%�&	&	&	
&	$
View��...$	Brazil France -Reims��
...�/	)DevExpress.Xpf.DemoBase.DemoModuleControl(!SupressGroupFramePaddingInOptions.
�DataContext#
[OptionsContent����Orientation$Vertical=�$	�240��.+�&	 DevExpress.Xpf.Editors.CheckEdit	-	Name$cbShowSearchPanel��	Content)
#DevExpress.Xpf.Core.ObjectConverter$Show Search Panel
$
�0,0,0,4q�		IsChecked�*View.ActualShowSearchPanel+�Mode$OneWay=��ElementName$
grid��	Command�*0.DataContext.ChangeSearchPanelVisibilityCommand+	CommandParameter�*	IsChecked+�RelativeSource��*Self+	$Highlight Search Results
$
�0,0,0,4q��*" View.SearchPanelHighlightResults+$TwoWay=�$
grid��	$)#Clear Search Results on Panel Close
$�0,0,0,12q��*View.SearchPanelClearOnClose+$TwoWay=�$
grid��$DevExpress.Xpf.Core.GroupFrame$��Search Panel Show Mode��$�0,0,0,12q�.�("DevExpress.Xpf.Editors.ListBoxEdit-Name$
lbShowMode��$�0,0,30,0q�%
DevExpress.Xpf.Editors.BaseEdit

ShowBorder.�Z�SelectedItem��Path$View.ShowSearchPanelMode�$TwoWay=� SearchPanelModeConverter�	Converter#[
StyleSettings:4DevExpress.Xpf.Editors.RadioListBoxEditStyleSettingsItems.,&DevExpress.Xpf.Editors.ListBoxEditItem "showSearchPanelContentTemplate#�[^�ToolTip$ysEnd-users can control the search panel visibility by pressing CTRL+F and using the panel's close button, if enabled��.�-'DevExpress.Xpf.Grid.ShowSearchPanelModeDefault=�#�[$& Search panel is always displayed��.�
Always=�#�[$#Search panel is always hidden��.�	Never=�$��Search Mode��$�0,0,0,12q�.�-$lbSearchMode��$�0,0,30,0q�.�Z��$View.SearchPanelFindMode�$TwoWay=�#[.$!Search starts automatically�� findModeTemplate#�[.�%DevExpress.Xpf.Editors.FindMode
Always=�$A;Search starts when an end-user clicks Find or presses ENTER��#�[.�
	FindClick=�$��Search Panel Buttons��$�0,0,0,12q�.���$Vertical=�.+�	$Show MRU Button
$
�0,0,0,4q�$XREnables the dropdown button that provides access to the Most Recently Used strings���*View.ShowSearchPanelMRUButton+$TwoWay=�$
grid���$MGEnables the Find button used to initiate search in 'Find on click' mode��.+�	-$cbShowFindButton��$
�0,0,0,4q�$Show Find Button
�* View.ShowSearchPanelFindButton+$TwoWay=�$
grid��{��$
SelectedIndex�$lbSearchMode�� IntToBooleanConverter#[�$LFEnables the search panel's close button used in 'Default' display mode��.+�	-$cbShowCloseButton��$Show Close Button
�*!View.ShowSearchPanelCloseButton+$TwoWay=�$
grid��{��$
SelectedIndex�$
lbShowMode�� IntToBooleanConverterInvert#[- Name$ groupFrameColumns��$��Search Columns��$�0,0,0,12q�.�)#DevExpress.Xpf.Editors.ComboBoxEdit-!Name$!columnsList��'!DevExpress.Xpf.Editors.ButtonEdit"IsTextEditable".+%DevExpress.Xpf.Editors.LookUpEditBase#
DisplayMember$#
HeaderCaption��$ItemsSource$�*DataContext.Columns+%
StyleSettings%93DevExpress.Xpf.Editors.CheckedComboBoxStyleSettings.
(System.Windows.Interactivity.Interaction&Triggers&/
)System.Windows.Interactivity.EventTrigger'	EventName$'EditValueChanged��.
(System.Windows.Interactivity.TriggerBase(Actions.(6
0System.Windows.Interactivity.InvokeCommandAction)Command)�*+)DataContext.ChangeAllowSearchPanelCommand+*CommandParameter*�*
SelectedItems+$columnsList��+Content.+%DevExpress.Xpf.Grid.GridControl-	$
�grid��$��1�#
[$�0�,View,�*View+)#DevExpress.Xpf.Grid.DataControlBase-ItemsSource-�$Invoices�
.�Source#.[/Columns/$DevExpress.Xpf.Grid.GridColumn$DevExpress.Xpf.Grid.ColumnBase0	FieldName$
0Country��$
0City��$0Quantity��$0	UnitPrice��1EditSettings160DevExpress.Xpf.Editors.Settings.TextEditSettings60DevExpress.Xpf.Editors.Settings.BaseEditSettings2
DisplayFormat$2$0.00��3MaskType$
3Numeric=�$0Discount��1$20%��$
3Numeric=�$0Total��4UnboundType]YDevExpress.Data.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a8 2DevExpress.Utils.Design.UnboundColumnTypeConverter$
4Decimal 5UnboundExpression$35-([UnitPrice] * [Quantity]) * (1 - [Discount])��1$2$0.00��$
3Numeric=�6TotalSummary6)!#DevExpress.Xpf.Grid.GridSummaryItem!)"#DevExpress.Xpf.Grid.SummaryItemBase7"	FieldName$7	UnitPrice��8"
DisplayFormat$8	Avg=$0.00��9"SummaryType$
9Average=�!$7Discount��$	9Max=�!$9Count=�:"	Alignment$:Right=�&$'Loaded��.()�*PopulateColumnsCommand+*�*	Columns+$
grid��)�*SelectAllItemsCommand+$columnsList��*�*SelectAllAction+!)<local:GridDemoModule x:Class="GridDemo.GridSearchPanel"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
             xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
             xmlns:dx="http://schemas.devexpress.com/winfx/2008/xaml/core"
             xmlns:dxg="http://schemas.devexpress.com/winfx/2008/xaml/grid"
             xmlns:dxe="http://schemas.devexpress.com/winfx/2008/xaml/editors"
             xmlns:dxdb="http://schemas.devexpress.com/winfx/2008/xaml/demobase"
             xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity"
             xmlns:local="clr-namespace:GridDemo"
             mc:Ignorable="d"
             d:DesignHeight="300" d:DesignWidth="300" x:Name="root">

    <local:GridDemoModule.Resources>
        <ResourceDictionary>
            <ResourceDictionary.MergedDictionaries>
                <ResourceDictionary Source="/GridDemo;component/Themes/generic.xaml" />
                <ResourceDictionary Source="/GridDemo;component/ModuleResources/SearchPanelTemplates.xaml" />
            </ResourceDictionary.MergedDictionaries>
            <dxdb:NWindDataLoader x:Key="NWindDataLoader" />
            <local:DemoDataProvider x:Key="DemoDataProvider" />
            <local:DemoValuesProvider x:Key="DemoValuesProvider" />
            <local:GridSearchPanelViewModel x:Key="viewModel">
                <local:GridSearchPanelViewModel.View>
                    <dxg:TableView x:Name="View" AutoWidth="True" ShowTotalSummary="True" ShowFixedTotalSummary="True" SearchString="Brazil France -Reims" ShowSearchPanelFindButton="True" SearchPanelClearOnClose="False"/>
                </local:GridSearchPanelViewModel.View>
            </local:GridSearchPanelViewModel>
        </ResourceDictionary>
    </local:GridDemoModule.Resources>
    <dxdb:DemoModuleControl SupressGroupFramePaddingInOptions="False" DataContext="{StaticResource viewModel}">
        <dxdb:DemoModuleControl.OptionsContent>
            <StackPanel Orientation="Vertical" MaxWidth="240">
                <dxe:CheckEdit x:Name="cbShowSearchPanel" Content="Show Search Panel" IsChecked="{Binding View.ActualShowSearchPanel, Mode=OneWay, ElementName=grid}" Command="{Binding DataContext.ChangeSearchPanelVisibilityCommand}" CommandParameter="{Binding IsChecked, RelativeSource={RelativeSource Self}}" Margin="0,0,0,4"/>
                <dxe:CheckEdit Content="Highlight Search Results" IsChecked="{Binding View.SearchPanelHighlightResults, Mode=TwoWay, ElementName=grid}" Margin="0,0,0,4"/>
                <dxe:CheckEdit Content="Clear Search Results on Panel Close" IsChecked="{Binding View.SearchPanelClearOnClose, Mode=TwoWay, ElementName=grid}" Margin="0,0,0,12"/>

                <dx:GroupFrame Header="Search Panel Show Mode" Margin="0,0,0,12">
                    <dxe:ListBoxEdit x:Name="lbShowMode" Background="{x:Null}" Margin="0,0,30,0" ShowBorder="False" SelectedItem="{Binding Path=View.ShowSearchPanelMode, Mode=TwoWay, Converter={StaticResource SearchPanelModeConverter}}">
                        <dxe:ListBoxEdit.StyleSettings>
                            <dxe:RadioListBoxEditStyleSettings />
                        </dxe:ListBoxEdit.StyleSettings>
                        <dxe:ListBoxEditItem ContentTemplate="{StaticResource showSearchPanelContentTemplate}"
                                             ToolTipService.ToolTip="End-users can control the search panel visibility by pressing CTRL+F and using the panel's close button, if enabled">
                            <dxg:ShowSearchPanelMode>Default</dxg:ShowSearchPanelMode>
                        </dxe:ListBoxEditItem>
                        <dxe:ListBoxEditItem ContentTemplate="{StaticResource showSearchPanelContentTemplate}"
                                             ToolTipService.ToolTip="Search panel is always displayed">
                            <dxg:ShowSearchPanelMode>Always</dxg:ShowSearchPanelMode>
                        </dxe:ListBoxEditItem>
                        <dxe:ListBoxEditItem ContentTemplate="{StaticResource showSearchPanelContentTemplate}"
                                             ToolTipService.ToolTip="Search panel is always hidden">
                            <dxg:ShowSearchPanelMode>Never</dxg:ShowSearchPanelMode>
                        </dxe:ListBoxEditItem>
                    </dxe:ListBoxEdit>
                </dx:GroupFrame>

                <dx:GroupFrame Header="Search Mode" Margin="0,0,0,12">
                    <dxe:ListBoxEdit x:Name="lbSearchMode" Background="{x:Null}" Margin="0,0,30,0" ShowBorder="False" SelectedItem="{Binding Path=View.SearchPanelFindMode, Mode=TwoWay, Converter={StaticResource SearchPanelModeConverter}}">
                        <dxe:ListBoxEdit.StyleSettings>
                            <dxe:RadioListBoxEditStyleSettings />
                        </dxe:ListBoxEdit.StyleSettings>
                        <dxe:ListBoxEditItem ToolTipService.ToolTip="Search starts automatically" ContentTemplate="{StaticResource findModeTemplate}">
                            <dxe:FindMode>Always</dxe:FindMode>
                        </dxe:ListBoxEditItem>
                        <dxe:ListBoxEditItem ToolTipService.ToolTip="Search starts when an end-user clicks Find or presses ENTER" ContentTemplate="{StaticResource findModeTemplate}">
                            <dxe:FindMode>FindClick</dxe:FindMode>
                        </dxe:ListBoxEditItem>
                    </dxe:ListBoxEdit>
                </dx:GroupFrame>

                <dx:GroupFrame Header="Search Panel Buttons" Margin="0,0,0,12">
                    <StackPanel Orientation="Vertical">
                        <dxe:CheckEdit Content="Show MRU Button" Margin="0,0,0,4" IsChecked="{Binding View.ShowSearchPanelMRUButton, Mode=TwoWay, ElementName=grid}" ToolTipService.ToolTip="Enables the dropdown button that provides access to the Most Recently Used strings"/>
                        <Grid ToolTipService.ToolTip="Enables the Find button used to initiate search in 'Find on click' mode">
                            <dxe:CheckEdit x:Name="cbShowFindButton" Margin="0,0,0,4" Content="Show Find Button" IsChecked="{Binding View.ShowSearchPanelFindButton, Mode=TwoWay, ElementName=grid}" IsEnabled="{Binding Path=SelectedIndex, ElementName=lbSearchMode, Converter={StaticResource IntToBooleanConverter}}"/>
                        </Grid>
                        <Grid  ToolTipService.ToolTip="Enables the search panel's close button used in 'Default' display mode">
                            <dxe:CheckEdit x:Name="cbShowCloseButton" Content="Show Close Button" IsChecked="{Binding View.ShowSearchPanelCloseButton, Mode=TwoWay, ElementName=grid}" IsEnabled="{Binding Path=SelectedIndex, ElementName=lbShowMode, Converter={StaticResource IntToBooleanConverterInvert}}"/>
                        </Grid>
                    </StackPanel>
                </dx:GroupFrame>

                <dx:GroupFrame x:Name="groupFrameColumns" Header="Search Columns" Margin="0,0,0,12">
                    <dxe:ComboBoxEdit x:Name="columnsList" ItemsSource="{Binding DataContext.Columns}" IsTextEditable="False" DisplayMember="HeaderCaption">
                        <dxe:ComboBoxEdit.StyleSettings>
                            <dxe:CheckedComboBoxStyleSettings />
                        </dxe:ComboBoxEdit.StyleSettings>
                        <i:Interaction.Triggers>
                            <i:EventTrigger EventName="EditValueChanged">
                                <i:InvokeCommandAction Command="{Binding DataContext.ChangeAllowSearchPanelCommand}" CommandParameter="{Binding SelectedItems, ElementName=columnsList}" />
                            </i:EventTrigger>
                        </i:Interaction.Triggers>
                    </dxe:ComboBoxEdit>
                </dx:GroupFrame>
            </StackPanel>
        </dxdb:DemoModuleControl.OptionsContent>
        <dxg:GridControl Grid.Row="1" Name="grid" DataContext="{StaticResource viewModel}" Grid.Column="0" View="{Binding View}" ItemsSource="{Binding Path=Invoices, Source={StaticResource NWindDataLoader}}">
            <dxg:GridControl.Columns>
                <dxg:GridColumn FieldName="Country"/>
                <dxg:GridColumn FieldName="City"/>
                <dxg:GridColumn FieldName="Quantity"/>
                <dxg:GridColumn FieldName="UnitPrice">
                    <dxg:GridColumn.EditSettings>
                        <dxe:TextEditSettings DisplayFormat="$0.00" MaskType="Numeric" />
                    </dxg:GridColumn.EditSettings>
                </dxg:GridColumn>
                <dxg:GridColumn FieldName="Discount">
                    <dxg:GridColumn.EditSettings>
                        <dxe:TextEditSettings DisplayFormat="0%" MaskType="Numeric" />
                    </dxg:GridColumn.EditSettings>
                </dxg:GridColumn>
                <dxg:GridColumn FieldName="Total" UnboundType="Decimal" UnboundExpression="([UnitPrice] * [Quantity]) * (1 - [Discount])">
                    <dxg:GridColumn.EditSettings>
                        <dxe:TextEditSettings DisplayFormat="$0.00" MaskType="Numeric" />
                    </dxg:GridColumn.EditSettings>
                </dxg:GridColumn>
            </dxg:GridControl.Columns>
            <dxg:GridControl.TotalSummary>
                <dxg:GridSummaryItem FieldName="UnitPrice" DisplayFormat="Avg=$0.00" SummaryType="Average"/>
                <dxg:GridSummaryItem FieldName="Discount" SummaryType="Max"/>
                <dxg:GridSummaryItem SummaryType="Count" Alignment="Right"/>
            </dxg:GridControl.TotalSummary>
            <i:Interaction.Triggers>
                <i:EventTrigger EventName="Loaded">
                    <i:InvokeCommandAction Command="{Binding PopulateColumnsCommand}" CommandParameter="{Binding Columns, ElementName=grid}" />
                    <i:InvokeCommandAction Command="{Binding SelectAllItemsCommand, ElementName=columnsList}" CommandParameter="{Binding SelectAllAction}" />
                </i:EventTrigger>
            </i:Interaction.Triggers>
        </dxg:GridControl>
    </dxdb:DemoModuleControl>
</local:GridDemoModule>!�using System;
using System.Collections.Generic;
using System.Linq;
using DevExpress.Xpf.DemoBase;

namespace GridDemo {
    [CodeFile("ModuleResources/SearchPanelViewModel.(cs)")]
    [CodeFile("ModuleResources/SearchPanelClasses.(cs)")]
    [CodeFile("ModuleResources/SearchPanelTemplates(.SL).xaml")]
    [CodeFile("Controls/Converters.(cs)")]
    public partial class GridSearchPanel : GridDemoModule {
        public GridSearchPanel() {
            InitializeComponent();
        }
    }
}!;MSBAML```����D@GridDemo, Version=13.1.4.0, Culture=neutral, PublicKeyToken=null#clr-namespace:GridDemoGridDemoOKmscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089I2clr-namespace:System.Collections;assembly=mscorlibSystem.Collections1&clr-namespace:System;assembly=mscorlibSystemGridDemo.Grouping\XPresentationFramework, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35RNWindowsBase, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35WSPresentationCore, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35D9http://schemas.microsoft.com/winfx/2006/xaml/presentationRNSystem.Xaml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089:x,http://schemas.microsoft.com/winfx/2006/xamla]DevExpress.Xpf.Core.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a;dx2http://schemas.devexpress.com/winfx/2008/xaml/corefbDevExpress.Xpf.Grid.v13.1.Core, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49aa]DevExpress.Xpf.Grid.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49al	hDevExpress.Xpf.Grid.v13.1.Extensions, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a@dxg2http://schemas.devexpress.com/winfx/2008/xaml/grid	?dxe5http://schemas.devexpress.com/winfx/2008/xaml/editorse
aDevExpress.Xpf.DemoBase.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49aAdxdb6http://schemas.devexpress.com/winfx/2008/xaml/demobase
"localclr-namespace:GridDemo
Dcollections2clr-namespace:System.Collections;assembly=mscorlib
0sys&clr-namespace:System;assembly=mscorlib
Dmc;http://schemas.openxmlformats.org/markup-compatibility/2006
:d2http://schemas.microsoft.com/expression/blend/2008
�	Resources
�MergedDictionaries
�Source#DevExpress.Xpf.Grid.TableView 
	tableView& DevExpress.Xpf.Grid.DataViewBaseNavigationStyle	AutoWidthAllowPerPixelScrollingAllowFixedGroups]YDevExpress.Data.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a5/DevExpress.Utils.Design.DefaultBooleanConverter"DevExpress.Xpf.Grid.CardView cardViewCardHeaderBinding�Path	�RelativeSource
�	Converter/)DevExpress.Xpf.Core.FormatStringConverterFormatString-
'DevExpress.Xpf.DemoBase.NWindDataLoader NWindDataLoaderB<DevExpress.Xpf.Core.DefaultBooleanToNullableBooleanConverter ,(DefaultBooleanToNullableBooleanConverter��$-'/GridDemo;component/Themes/generic.xaml?�%�&	&	(&	�&	�$	Row=�..$
True$	Row=��$Data.OrderID�	��*Self+
$
Order ID: {0}��.�/
)DevExpress.Xpf.DemoBase.DemoModuleControl(!SupressGroupFramePaddingInOptions.
OptionsContent
����Orientation$Vertical=�.+���$Vertical=�$�0,0,0,12q�.+�&	 DevExpress.Xpf.Editors.CheckEdit	-$�allowFixedGroupsCheckBox��$
�0,0,0,4q�$
�Bold"�	Content)
#DevExpress.Xpf.Core.ObjectConverter$Allow Fixed Groups
^�ToolTip$jdSpecifies whether the top visible group row is always displayed when scrolling through grouped data.��		IsChecked�$View.AllowFixedGroups��Mode$TwoWay=�#
[	$
�0,0,0,4q�$Show Group Panel
�$View.ShowGroupPanel�$TwoWay=�	$
�0,0,0,4q�$Show Column Headers
�$View.ShowColumnHeaders�$TwoWay=�	$
�0,0,0,4q�$Show Grouped Columns
�$View.ShowGroupedColumns�$TwoWay=�	$
�0,0,0,4q�$%Automatically Expand All Groups
�$#View.Grid.AutoExpandAllGroups�$TwoWay=�	$
�0,0,0,4q�$"Use Animation When Expanding
�$$View.UseAnimationWhenExpanding�$TwoWay=�	$
�0,0,0,0q�$Expand Groups Recursively
�$!View.Grid.IsRecursiveExpand�$TwoWay=�$DevExpress.Xpf.Core.GroupFrame$��Group By��$�0,0,0,12q�.�("DevExpress.Xpf.Editors.ListBoxEdit-Name$	groupList��%
DevExpress.Xpf.Editors.BaseEdit

ShowBorder.$�0,0,30,0q�
SelectedIndex$0��Z�
StyleSettings:4DevExpress.Xpf.Editors.RadioListBoxEditStyleSettingsItems��Country then City����Country, City, Order Date����City then Order Date����None��$��	View Type��$
�0,0,0,0q�.�-$viewsListBox��.$0��Z���
Table View����
	Card View��Content.%DevExpress.Xpf.Grid.GridControl-$
�grid��$�0�)#DevExpress.Xpf.Grid.DataControlBaseItemsSource�$Invoices�
�Source#[View$	Row=�..$
TrueColumns$DevExpress.Xpf.Grid.GridColumn$DevExpress.Xpf.Grid.ColumnBase	FieldName$
Country��$DevExpress.Xpf.Grid.BaseColumnMinWidth$30��$
City��$30��$	OrderDate��$30��EditSettings60DevExpress.Xpf.Editors.Settings.DateEditSettings60DevExpress.Xpf.Editors.Settings.BaseEditSettings 
DisplayFormat$ d��$	UnitPrice��$30��60DevExpress.Xpf.Editors.Settings.TextEditSettings$ $0.00��!MaskType$
!Numeric=�$Region��$30��$Total��"UnboundType82DevExpress.Utils.Design.UnboundColumnTypeConverter$
"Decimal$30��#UnboundExpression$3#-([UnitPrice] * [Quantity]) * (1 - [Discount])��$ $0.00��$
!Numeric=�$GroupSummary$)#DevExpress.Xpf.Grid.GridSummaryItem)#DevExpress.Xpf.Grid.SummaryItemBase%SummaryType$%Count=�!�<local:GridDemoModule x:Class="GridDemo.Grouping"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:dx="http://schemas.devexpress.com/winfx/2008/xaml/core"
    xmlns:dxg="http://schemas.devexpress.com/winfx/2008/xaml/grid"
 xmlns:dxe="http://schemas.devexpress.com/winfx/2008/xaml/editors"
 xmlns:dxdb="http://schemas.devexpress.com/winfx/2008/xaml/demobase"
    xmlns:local="clr-namespace:GridDemo"
    xmlns:collections="clr-namespace:System.Collections;assembly=mscorlib"
    xmlns:sys="clr-namespace:System;assembly=mscorlib"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    mc:Ignorable="d" d:DesignHeight="400" d:DesignWidth="800">
    <local:GridDemoModule.Resources>
        <ResourceDictionary>
            <ResourceDictionary.MergedDictionaries>
                <ResourceDictionary Source="/GridDemo;component/Themes/generic.xaml" />
            </ResourceDictionary.MergedDictionaries>
            <dxg:TableView x:Key="tableView" NavigationStyle="Row" AutoWidth="True" AllowPerPixelScrolling="True" AllowFixedGroups="True"/>
            <dxg:CardView x:Key="cardView" NavigationStyle="Row">
                <dxg:CardView.CardHeaderBinding>
                    <Binding Path="Data.OrderID" RelativeSource="{RelativeSource Self}">
                        <Binding.Converter>
                            <dx:FormatStringConverter FormatString="{}Order ID: {0}" />
                        </Binding.Converter>
                    </Binding>
                </dxg:CardView.CardHeaderBinding>
            </dxg:CardView>
            <dxdb:NWindDataLoader x:Key="NWindDataLoader" />
            <dx:DefaultBooleanToNullableBooleanConverter x:Key="DefaultBooleanToNullableBooleanConverter" />
        </ResourceDictionary>
    </local:GridDemoModule.Resources>
    <dxdb:DemoModuleControl SupressGroupFramePaddingInOptions="False">
        <dxdb:DemoModuleControl.OptionsContent>
            <StackPanel Orientation="Vertical">
                <StackPanel Orientation="Vertical" Margin="0,0,0,12">
                    <dxe:CheckEdit Margin="0,0,0,4" FontWeight="Bold" Name="allowFixedGroupsCheckBox" IsChecked="{Binding Path=View.AllowFixedGroups, Mode=TwoWay, Converter={StaticResource DefaultBooleanToNullableBooleanConverter}}" Content="Allow Fixed Groups" ToolTipService.ToolTip="Specifies whether the top visible group row is always displayed when scrolling through grouped data."/>
                    <dxe:CheckEdit Margin="0,0,0,4" IsChecked="{Binding Path=View.ShowGroupPanel, Mode=TwoWay}" Content="Show Group Panel" />
                    <dxe:CheckEdit Margin="0,0,0,4" IsChecked="{Binding Path=View.ShowColumnHeaders, Mode=TwoWay}" Content="Show Column Headers" />
                    <dxe:CheckEdit Margin="0,0,0,4" IsChecked="{Binding Path=View.ShowGroupedColumns, Mode=TwoWay}" Content="Show Grouped Columns" />
                    <dxe:CheckEdit Margin="0,0,0,4" IsChecked="{Binding Path=View.Grid.AutoExpandAllGroups, Mode=TwoWay}" Content="Automatically Expand All Groups" />
                    <dxe:CheckEdit Margin="0,0,0,4" IsChecked="{Binding Path=View.UseAnimationWhenExpanding, Mode=TwoWay}" Content="Use Animation When Expanding" />
                    <dxe:CheckEdit Margin="0,0,0,0" IsChecked="{Binding Path=View.Grid.IsRecursiveExpand, Mode=TwoWay}" Content="Expand Groups Recursively" />
                </StackPanel>
                <dx:GroupFrame Header="Group By" Margin="0,0,0,12">
                    <dxe:ListBoxEdit Background="{x:Null}" ShowBorder="False" Margin="0,0,30,0" x:Name="groupList" SelectedIndex="0" EditValueChanged="groupList_SelectionChanged">
                        <dxe:ListBoxEdit.StyleSettings>
                            <dxe:RadioListBoxEditStyleSettings />
                        </dxe:ListBoxEdit.StyleSettings>
                        <dxe:ListBoxEdit.Items>
                            <sys:String>Country then City</sys:String>
                            <sys:String>Country, City, Order Date</sys:String>
                            <sys:String>City then Order Date</sys:String>
                            <sys:String>None</sys:String>
                        </dxe:ListBoxEdit.Items>
                    </dxe:ListBoxEdit>
                </dx:GroupFrame>
                <dx:GroupFrame Header="View Type" Margin="0,0,0,0">
                    <dxe:ListBoxEdit x:Name="viewsListBox" ShowBorder="False" Background="{x:Null}" SelectedIndex="0">
                        <dxe:ListBoxEdit.StyleSettings>
                            <dxe:RadioListBoxEditStyleSettings />
                        </dxe:ListBoxEdit.StyleSettings>
                        <dxe:ListBoxEdit.Items>
                            <sys:String>Table View</sys:String>
                            <sys:String>Card View</sys:String>
                        </dxe:ListBoxEdit.Items>
                    </dxe:ListBoxEdit>
                </dx:GroupFrame>
            </StackPanel>
        </dxdb:DemoModuleControl.OptionsContent>
        <dxg:GridControl Name="grid" Grid.Column="0" ItemsSource="{Binding Path=Invoices, Source={StaticResource NWindDataLoader}}">
            <dxg:GridControl.View>
                <dxg:TableView NavigationStyle="Row" AutoWidth="True" AllowPerPixelScrolling="True" AllowFixedGroups="True"/>
            </dxg:GridControl.View>
            <dxg:GridControl.Columns>
                <dxg:GridColumn FieldName="Country" MinWidth="30">

                </dxg:GridColumn>
                <dxg:GridColumn FieldName="City" MinWidth="30" />
                <dxg:GridColumn FieldName="OrderDate" MinWidth="30">
                    <dxg:GridColumn.EditSettings>
                        <dxe:DateEditSettings DisplayFormat="d" />
                    </dxg:GridColumn.EditSettings>
                </dxg:GridColumn>
                <dxg:GridColumn FieldName="UnitPrice" MinWidth="30">
                    <dxg:GridColumn.EditSettings>
                        <dxe:TextEditSettings DisplayFormat="$0.00" MaskType="Numeric" />
                    </dxg:GridColumn.EditSettings>
                </dxg:GridColumn>
                <dxg:GridColumn FieldName="Region" MinWidth="30" />
                <dxg:GridColumn FieldName="Total" UnboundType="Decimal" MinWidth="30" UnboundExpression="([UnitPrice] * [Quantity]) * (1 - [Discount])">
                    <dxg:GridColumn.EditSettings>
                        <dxe:TextEditSettings DisplayFormat="$0.00" MaskType="Numeric" />
                    </dxg:GridColumn.EditSettings>
                </dxg:GridColumn>
            </dxg:GridControl.Columns>
            <dxg:GridControl.GroupSummary>
                <dxg:GridSummaryItem SummaryType="Count" />
            </dxg:GridControl.GroupSummary>
        </dxg:GridControl>
    </dxdb:DemoModuleControl>
</local:GridDemoModule>!�using System;

using System.Data;
using DevExpress.Xpf.Grid;

namespace GridDemo {
    public partial class Grouping : GridDemoModule {
        public Grouping() {
            InitializeComponent();
            viewsListBox.EditValueChanged += new DevExpress.Xpf.Editors.EditValueChangedEventHandler(viewsListBox_SelectionChanged);
            GroupByCountryThenCity();
        }
        void viewsListBox_SelectionChanged(object sender, DevExpress.Xpf.Editors.EditValueChangedEventArgs e) {
            grid.View = (GridViewBase)FindResource(viewsListBox.SelectedIndex == 0 ? "tableView" : "cardView");
            allowFixedGroupsCheckBox.IsEnabled = viewsListBox.SelectedIndex == 0;
        }
  void GroupByCountryThenCity() {
            grid.ClearGrouping();
   grid.GroupBy("Country");
   grid.GroupBy("City");
  }

  private void GroupByCountryThenCityThenOrderDate() {
            grid.ClearGrouping();
            grid.GroupBy("Country");
            grid.GroupBy("City");
            grid.GroupBy("OrderDate");
  }

  private void GroupByCityThenOrderDate() {
            grid.ClearGrouping();
            grid.GroupBy("City");
            grid.GroupBy("OrderDate");
  }
        private void ClearGrouping() {
            grid.ClearGrouping();
        }
        private void groupList_SelectionChanged(object sender, DevExpress.Xpf.Editors.EditValueChangedEventArgs e) {
   if(grid == null) return;
   switch(groupList.SelectedIndex) {
    case 0: GroupByCountryThenCity(); break;
    case 1: GroupByCountryThenCityThenOrderDate(); break;
    case 2: GroupByCityThenOrderDate(); break;
                case 3: ClearGrouping(); break;
   }
  }
    }
}!�MSBAML```����D@GridDemo, Version=13.1.4.0, Culture=neutral, PublicKeyToken=null#clr-namespace:GridDemoGridDemoOKmscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089I2clr-namespace:System.Collections;assembly=mscorlibSystem.Collections1&clr-namespace:System;assembly=mscorlibSystemGridDemo.GroupIntervals\XPresentationFramework, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35RNWindowsBase, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35WSPresentationCore, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35D9http://schemas.microsoft.com/winfx/2006/xaml/presentationRNSystem.Xaml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089:x,http://schemas.microsoft.com/winfx/2006/xamla]DevExpress.Xpf.Core.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a;dx2http://schemas.devexpress.com/winfx/2008/xaml/corefbDevExpress.Xpf.Grid.v13.1.Core, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49aa]DevExpress.Xpf.Grid.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49al	hDevExpress.Xpf.Grid.v13.1.Extensions, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a@dxg2http://schemas.devexpress.com/winfx/2008/xaml/grid	?dxe5http://schemas.devexpress.com/winfx/2008/xaml/editorse
aDevExpress.Xpf.DemoBase.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49aAdxdb6http://schemas.devexpress.com/winfx/2008/xaml/demobase
"localclr-namespace:GridDemo
Dcollections2clr-namespace:System.Collections;assembly=mscorlib
0sys&clr-namespace:System;assembly=mscorlib
Dmc;http://schemas.openxmlformats.org/markup-compatibility/2006
:d2http://schemas.microsoft.com/expression/blend/2008
�	Resources
�MergedDictionaries
�Source GridDemo.GroupIntervalData groupIntervalData��$-'/GridDemo;component/Themes/generic.xaml?�%&	.�/
)DevExpress.Xpf.DemoBase.DemoModuleControl(!SupressGroupFramePaddingInOptions.OptionsTopText$��Group Interval Menu is available if rows are grouped by the date part of their values (month, year or range). To show this menu, right-click the header or a grouping column, and select Group Interval.��OptionsContent����Orientation$Vertical=�.+�& DevExpress.Xpf.Editors.CheckEditContent)#DevExpress.Xpf.Core.ObjectConverter$("Allow DateTime Group Interval Menu$
�0,0,0,4q�	IsChecked�	�Path$)	#View.AllowDateTimeGroupIntervalMenu�
�Mode$
TwoWay=�$DevExpress.Xpf.Core.GroupFrame$��
Group Mode��$
�0,0,0,0q�.�("DevExpress.Xpf.Editors.ListBoxEdit-Name$
groupModeList��%DevExpress.Xpf.Editors.BaseEdit
ShowBorder.$�0,0,30,0q��Z�

StyleSettings
:4DevExpress.Xpf.Editors.RadioListBoxEditStyleSettingsItems��Alphabetical����Date: Month����
Date: Year����Date: Range����Custom Interval��Content.%	DevExpress.Xpf.Grid.GridControl	-$
�grid��)
#DevExpress.Xpf.Grid.DataControlBase
ItemsSource�$	Invoices�
�Source#[	Columns$DevExpress.Xpf.Grid.GridColumn-Name$
colCountry��$DevExpress.Xpf.Grid.ColumnBase	FieldName$
Country��$
DevExpress.Xpf.Grid.BaseColumn
MinWidth$30��$
City��$30��-$colOrderDate��$	OrderDate��$30��EditSettings60DevExpress.Xpf.Editors.Settings.DateEditSettings60DevExpress.Xpf.Editors.Settings.BaseEditSettings
DisplayFormat$d��-$colUnitPrice��$	UnitPrice��$30��60DevExpress.Xpf.Editors.Settings.TextEditSettings$$0.00��$Region��$30��	View#DevExpress.Xpf.Grid.TableView-$
�view��& DevExpress.Xpf.Grid.GridViewBaseShowGroupedColumns.& DevExpress.Xpf.Grid.DataViewBaseNavigationStyle$	Row=�	AutoWidth.
AllowGrouping.!�<local:GridDemoModule x:Class="GridDemo.GroupIntervals"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:dx="http://schemas.devexpress.com/winfx/2008/xaml/core"
    xmlns:dxg="http://schemas.devexpress.com/winfx/2008/xaml/grid"
    xmlns:dxe="http://schemas.devexpress.com/winfx/2008/xaml/editors"
    xmlns:dxdb="http://schemas.devexpress.com/winfx/2008/xaml/demobase"
    xmlns:local="clr-namespace:GridDemo"
    xmlns:collections="clr-namespace:System.Collections;assembly=mscorlib"
    xmlns:sys="clr-namespace:System;assembly=mscorlib"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    mc:Ignorable="d" d:DesignHeight="400" d:DesignWidth="800">
    <local:GridDemoModule.Resources>
        <ResourceDictionary>
            <ResourceDictionary.MergedDictionaries>
                <ResourceDictionary Source="/GridDemo;component/Themes/generic.xaml"/>
            </ResourceDictionary.MergedDictionaries>
            <local:GroupIntervalData x:Key="groupIntervalData"/>
        </ResourceDictionary>
    </local:GridDemoModule.Resources>
    <dxdb:DemoModuleControl SupressGroupFramePaddingInOptions="False">
        <dxdb:DemoModuleControl.OptionsTopText>
            Group Interval Menu is available if rows are grouped by the date part of their values (month, year or range). To show this menu, right-click the header or a grouping column, and select Group Interval.
        </dxdb:DemoModuleControl.OptionsTopText>
        <dxdb:DemoModuleControl.OptionsContent>
            <StackPanel Orientation="Vertical">
                <dxe:CheckEdit IsChecked="{Binding Path=View.AllowDateTimeGroupIntervalMenu, Mode=TwoWay}" Content="Allow DateTime Group Interval Menu" Margin="0,0,0,4"/>
                <dx:GroupFrame Header="Group Mode" Margin="0,0,0,0">
                    <dxe:ListBoxEdit Background="{x:Null}" ShowBorder="False" Margin="0,0,30,0" x:Name="groupModeList" EditValueChanged="groupModeList_SelectionChanged">
                        <dxe:ListBoxEdit.StyleSettings>
                            <dxe:RadioListBoxEditStyleSettings/>
                        </dxe:ListBoxEdit.StyleSettings>
                        <dxe:ListBoxEdit.Items>
                            <sys:String>Alphabetical</sys:String>
                            <sys:String>Date: Month</sys:String>
                            <sys:String>Date: Year</sys:String>
                            <sys:String>Date: Range</sys:String>
                            <sys:String>Custom Interval</sys:String>
                        </dxe:ListBoxEdit.Items>
                    </dxe:ListBoxEdit>
                </dx:GroupFrame>
            </StackPanel>
        </dxdb:DemoModuleControl.OptionsContent>
        <dxg:GridControl Name="grid" ItemsSource="{Binding Path=Invoices, Source={StaticResource groupIntervalData}}" CustomColumnGroup="grid_CustomColumnGroup" CustomGroupDisplayText="view_CustomGroupDisplayText">
            <dxg:GridControl.Columns>
                <dxg:GridColumn x:Name="colCountry" FieldName="Country" MinWidth="30" />
                <dxg:GridColumn FieldName="City" MinWidth="30" />
                <dxg:GridColumn x:Name="colOrderDate" FieldName="OrderDate" MinWidth="30">
                    <dxg:GridColumn.EditSettings>
                        <dxe:DateEditSettings DisplayFormat="d"/>
                    </dxg:GridColumn.EditSettings>
                </dxg:GridColumn>
                <dxg:GridColumn x:Name="colUnitPrice" FieldName="UnitPrice" MinWidth="30">
                    <dxg:GridColumn.EditSettings>
                        <dxe:TextEditSettings DisplayFormat="$0.00"/>
                    </dxg:GridColumn.EditSettings>
                </dxg:GridColumn>
                <dxg:GridColumn FieldName="Region" MinWidth="30" />
            </dxg:GridControl.Columns>
            <dxg:GridControl.View>
                <dxg:TableView ShowGroupedColumns="True" NavigationStyle="Row" AutoWidth="True" Name="view" ShowGridMenu="view_ShowGridMenu" AllowGrouping="False"/>
            </dxg:GridControl.View>
        </dxg:GridControl>
    </dxdb:DemoModuleControl>
</local:GridDemoModule>!�using System;
using System.Collections.Generic;
using DevExpress.Xpf.Grid;
using DevExpress.XtraGrid;
using DevExpress.Xpf.DemoBase;
using DevExpress.Xpf.Bars;
using DevExpress.Xpf.Core.Commands;

namespace GridDemo {
    [CodeFile("ModuleResources/GroupIntervalsClasses.(cs)")]
    public partial class GroupIntervals : GridDemoModule {
        public GroupIntervals() {
            InitializeComponent();
            groupModeList.SelectedIndex = 0;
        }
        private void groupModeList_SelectionChanged(object sender, DevExpress.Xpf.Editors.EditValueChangedEventArgs e) {
            SetGroupInterval(groupModeList.SelectedIndex);
        }
        void SetGroupInterval(int index) {
            grid.SortInfo.Clear();
            grid.GroupCount = 0;
            foreach(GridColumn column in grid.Columns) {
                column.GroupInterval = ColumnGroupInterval.Default;
                column.SortMode = ColumnSortMode.Default;
            }
            switch(index) {
                case 0:
                    SetInterval("Country", ColumnGroupInterval.Alphabetical);
                    break;
                case 1:
                    SetInterval("OrderDate", ColumnGroupInterval.DateMonth);
                    break;
                case 2:
                    SetInterval("OrderDate", ColumnGroupInterval.DateYear);
                    break;
                case 3:
                    SetInterval("OrderDate", ColumnGroupInterval.DateRange);
                    break;
                case 4:
                    SetSortMode("UnitPrice", ColumnSortMode.Custom);
                    break;
            }
        }
        void SetInterval(string fieldName, ColumnGroupInterval interval) {
            grid.Columns[fieldName].GroupInterval = interval;
            grid.GroupBy(fieldName);
        }
        void SetSortMode(string fieldName, ColumnSortMode sortMode) {
            grid.Columns[fieldName].SortMode = sortMode;
            grid.GroupBy(fieldName);
        }
        void grid_CustomColumnGroup(object sender, CustomColumnSortEventArgs e) {
            double x = Math.Floor(Convert.ToDouble(e.Value1) / 10);
            double y = Math.Floor(Convert.ToDouble(e.Value2) / 10);
            int res = Comparer<double>.Default.Compare(x, y);
            if(x > 19 && y > 19) res = 0;
            e.Result = res;
            e.Handled = true;
        }
        void view_CustomGroupDisplayText(object sender, CustomGroupDisplayTextEventArgs e) {
            if(e.Column.SortMode == ColumnSortMode.Custom) {
                double d = Math.Floor(Convert.ToDouble(e.Value) / 10);
                string ret = string.Format("{0:$0.00} - {1:$0.00} ", d * 10, (d + 1) * 10);
                if(d > 19) ret = string.Format(">= {0:$0.00} ", d * 10);
                e.DisplayText = ret;
            }
        }

        void view_ShowGridMenu(object sender, GridMenuEventArgs e) {
            if(e.MenuType == GridMenuType.Column && e.MenuInfo.Column.FieldName == "OrderDate") {
                e.Customizations.Add(new RemoveBarItemAndLinkAction() { ItemName = DefaultColumnMenuItemNames.MenuColumnGroupIntervalNone });
                e.Customizations.Add(new RemoveBarItemAndLinkAction() { ItemName = DefaultColumnMenuItemNames.MenuColumnGroupIntervalDay });
                SetContextMenuItemCommand(e, DefaultColumnMenuItemNames.MenuColumnGroupIntervalMonth, 1);
                SetContextMenuItemCommand(e, DefaultColumnMenuItemNames.MenuColumnGroupIntervalYear, 2);
                SetContextMenuItemCommand(e, DefaultColumnMenuItemNames.MenuColumnGroupIntervalSmart, 3);
            }
        }
        void SetContextMenuItemCommand(GridMenuEventArgs e, string itemName, int index) {
            BarItem item = e.MenuInfo.Menu.GetBarItemByName(itemName);
            if(item != null)
                item.Command = new DelegateCommand<object>(delegate(object obj) { groupModeList.SelectedIndex = index; });
        }
    }
}!�MSBAML```����D@GridDemo, Version=13.1.4.0, Culture=neutral, PublicKeyToken=null#clr-namespace:GridDemoGridDemoOKmscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089I2clr-namespace:System.Collections;assembly=mscorlibSystem.Collections1&clr-namespace:System;assembly=mscorlibSystem& GridDemo.GroupSummariesAlignment\XPresentationFramework, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35RNWindowsBase, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35WSPresentationCore, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35D9http://schemas.microsoft.com/winfx/2006/xaml/presentationRNSystem.Xaml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089:x,http://schemas.microsoft.com/winfx/2006/xamlfbDevExpress.Xpf.Grid.v13.1.Core, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49aa]DevExpress.Xpf.Grid.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49alhDevExpress.Xpf.Grid.v13.1.Extensions, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a@dxg2http://schemas.devexpress.com/winfx/2008/xaml/gridGdxgt<http://schemas.devexpress.com/winfx/2008/xaml/grid/themekeysa	]DevExpress.Xpf.Core.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a?dxe5http://schemas.devexpress.com/winfx/2008/xaml/editors	e
aDevExpress.Xpf.DemoBase.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49aAdxdb6http://schemas.devexpress.com/winfx/2008/xaml/demobase
;dx2http://schemas.devexpress.com/winfx/2008/xaml/core	"localclr-namespace:GridDemo	Dcollections2clr-namespace:System.Collections;assembly=mscorlib	0sys&clr-namespace:System;assembly=mscorlib	Dmc;http://schemas.openxmlformats.org/markup-compatibility/2006	:d2http://schemas.microsoft.com/expression/blend/2008	�DataContext/)GridDemo.GroupSummariesAlignmentViewModel.�/
)DevExpress.Xpf.DemoBase.DemoModuleControlOptionsContent��.+�$	DevExpress.Xpf.Core.GroupFrame$��Sales Report Type��$�0,0,0,12q�.�(	"DevExpress.Xpf.Editors.ListBoxEdit-Name$reportTypesList��%	DevExpress.Xpf.Editors.BaseEdit
ShowBorder.$�0,0,30,0q�
SelectedIndex�*DataContext.ReportTypeIndex+�Mode$TwoWay=�ItemsSource�*DataContext.ReportTypes+�Z�
StyleSettings:	4DevExpress.Xpf.Editors.RadioListBoxEditStyleSettings&	 DevExpress.Xpf.Editors.CheckEditContent)	#DevExpress.Xpf.Core.ObjectConverter$Allow Cascade Update		IsChecked	�
�Path$$
DataContext.AllowCascadeUpdate�$TwoWay=�Content.%	DevExpress.Xpf.Grid.GridControl	-	Name$
grid��)
#DevExpress.Xpf.Grid.DataControlBase

ItemsSource
�*ActualSalesReport+	Columns$DevExpress.Xpf.Grid.GridColumn$DevExpress.Xpf.Grid.BaseColumn
Header$
Year$
DevExpress.Xpf.Grid.ColumnBase
	FieldName$
Date��
ReadOnly.
GroupIndex$0�
	SortOrder$
Descending=�
GroupInterval$DateYear=�
Fixed$
Left=�MinWidth$	100��
EditSettings6	0DevExpress.Xpf.Editors.Settings.DateEditSettings6	0DevExpress.Xpf.Editors.Settings.TextEditSettingsMaskType$DateTime=�MaskUseAsDisplayFormat.Mask$Y��$Month$	DateMonth��.Visible.$
Descending=�$	DateMonth=�$
Left=�$	100��$DateTime=�.$M��&
ColumnGeneratorTemplateSelector4.GridDemo.SalesByYearDataColumnTemplateSelector	View#DevExpress.Xpf.Grid.TableView-Name$
view��GroupSummaryDisplayMode$AlignByColumns=�& DevExpress.Xpf.Grid.DataViewBase ShowTotalSummary .& DevExpress.Xpf.Grid.GridViewBase!ShowGroupedColumns!."
AllowGrouping".#AllowPerPixelScrolling#.$AllowCascadeUpdate$�$
AllowCascadeUpdate�%%AllowGroupSummaryCascadeUpdate%�$
AllowCascadeUpdate�!<local:GridDemoModule x:Class="GridDemo.GroupSummariesAlignment"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
 xmlns:dxg="http://schemas.devexpress.com/winfx/2008/xaml/grid"
    xmlns:dxgt="http://schemas.devexpress.com/winfx/2008/xaml/grid/themekeys"
 xmlns:dxe="http://schemas.devexpress.com/winfx/2008/xaml/editors"
 xmlns:dxdb="http://schemas.devexpress.com/winfx/2008/xaml/demobase"
 xmlns:dx="http://schemas.devexpress.com/winfx/2008/xaml/core"
 xmlns:local="clr-namespace:GridDemo"
 xmlns:collections="clr-namespace:System.Collections;assembly=mscorlib"
 xmlns:sys="clr-namespace:System;assembly=mscorlib"
 xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    mc:Ignorable="d" d:DesignHeight="400" d:DesignWidth="800">
    <local:GridDemoModule.DataContext>
        <local:GroupSummariesAlignmentViewModel />
    </local:GridDemoModule.DataContext>
    <dxdb:DemoModuleControl>
        <dxdb:DemoModuleControl.OptionsContent>
            <StackPanel>
                <dx:GroupFrame Header="Sales Report Type" Margin="0,0,0,12">
                    <dxe:ListBoxEdit SelectedIndex="{Binding DataContext.ReportTypeIndex, Mode=TwoWay}" ItemsSource="{Binding DataContext.ReportTypes}" Background="{x:Null}" ShowBorder="False" Margin="0,0,30,0" x:Name="reportTypesList">
                        <dxe:ListBoxEdit.StyleSettings>
                            <dxe:RadioListBoxEditStyleSettings />
                        </dxe:ListBoxEdit.StyleSettings>
                    </dxe:ListBoxEdit>
                </dx:GroupFrame>
                <dxe:CheckEdit Content="Allow Cascade Update" IsChecked="{Binding Path=DataContext.AllowCascadeUpdate, Mode=TwoWay}"/>
            </StackPanel>

        </dxdb:DemoModuleControl.OptionsContent>
        <dxg:GridControl x:Name="grid" ItemsSource="{Binding ActualSalesReport}">
            <dxg:GridControl.Columns>
                <dxg:GridColumn Header="Year" FieldName="Date" ReadOnly="True" GroupIndex="0" SortOrder="Descending" GroupInterval="DateYear" Fixed="Left" MinWidth="100">
                    <dxg:GridColumn.EditSettings>
                        <dxe:DateEditSettings MaskType="DateTime" MaskUseAsDisplayFormat="True" Mask="Y"/>
                    </dxg:GridColumn.EditSettings>
                </dxg:GridColumn>
                <dxg:GridColumn Header="Month" FieldName="DateMonth" ReadOnly="True" Visible="False" SortOrder="Descending" GroupInterval="DateMonth" Fixed="Left" MinWidth="100">
                    <dxg:GridColumn.EditSettings>
                        <dxe:DateEditSettings MaskType="DateTime" MaskUseAsDisplayFormat="True" Mask="M"/>
                    </dxg:GridColumn.EditSettings>
                </dxg:GridColumn>
            </dxg:GridControl.Columns>
            <dxg:GridControl.ColumnGeneratorTemplateSelector>
                <local:SalesByYearDataColumnTemplateSelector/>
            </dxg:GridControl.ColumnGeneratorTemplateSelector>
            <dxg:GridControl.View>
                <dxg:TableView x:Name="view" GroupSummaryDisplayMode="AlignByColumns" ShowTotalSummary="True" AllowCascadeUpdate="{Binding Path=AllowCascadeUpdate}" AllowGroupSummaryCascadeUpdate="{Binding Path=AllowCascadeUpdate}" ShowGroupedColumns="True" AllowGrouping="False" AllowPerPixelScrolling="True"/>
            </dxg:GridControl.View>
        </dxg:GridControl>
    </dxdb:DemoModuleControl>
</local:GridDemoModule>!
using System;
using System.Collections.Generic;
using System.Windows;
using GridDemo;
using System.Collections;
using System.Globalization;
using DevExpress.Data;
using DevExpress.Xpf.DemoBase;
using DevExpress.Xpf.Grid;
using DevExpress.Xpf.Editors.Settings;
using DevExpress.Xpf.Editors;
using DevExpress.Xpf.DemoBase.Helpers;
using System.Data;
using System.ComponentModel;

namespace GridDemo {
    [CodeFile("Controls/SalesByYearData.(cs)")]
    [CodeFile("ModuleResources/GroupSummariesAlignmentViewModel.(cs)")]
    public partial class GroupSummariesAlignment : GridDemoModule {
        GroupSummariesAlignmentViewModel ViewModel { get { return (GroupSummariesAlignmentViewModel)DataContext; } }
        public GroupSummariesAlignment() {
            InitializeComponent();
            if(grid.ItemsSource != null)
                PopulateColumnsAndSummaries();
            grid.ExpandGroupRow(-1);
            grid.ItemsSourceChanged += new ItemsSourceChangedEventHandler(grid_ItemsSourceChanged);
        }

        void PopulateColumnsAndSummaries() {
            PropertyDescriptorCollection properties = ((ITypedList)grid.ItemsSource).GetItemProperties(null);
            foreach(PropertyDescriptor property in properties) {
                if(property.Name.Contains("Date")) continue;
                grid.Columns.Add(new GridColumn() {
                    FieldName = property.Name,
                    EditSettings = new SpinEditSettings() {
                        MaskType = MaskType.Numeric, Mask = "c", MaskCulture = new CultureInfo("en-US"), MaskUseAsDisplayFormat = true,
                        DisplayFormat="${0:N}"
                    }
                });
                grid.TotalSummary.Add(new GridSummaryItem() { FieldName = property.Name, SummaryType = SummaryItemType.Sum, DisplayFormat = "${0:N}" });
                grid.GroupSummary.Add(new GridSummaryItem() { FieldName = property.Name, SummaryType = SummaryItemType.Sum, DisplayFormat = "${0:N}" });
            }
        }
        private void grid_ItemsSourceChanged(object sender, ItemsSourceChangedEventArgs e) {
            if(grid.GroupSummary.Count == 0)
                PopulateColumnsAndSummaries();
            bool byMonthReport = ViewModel.ReportTypeIndex == 1;
            grid.Columns["DateMonth"].Visible = byMonthReport;
            if(byMonthReport)
                grid.Columns["DateMonth"].GroupIndex = 1;
            else
                grid.UngroupBy("DateMonth");
            grid.ExpandGroupRow(-1);
        }
    }
}!zMSBAML```����OKmscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e0891&clr-namespace:System;assembly=mscorlibSystemI2clr-namespace:System.Collections;assembly=mscorlibSystem.CollectionsD@GridDemo, Version=13.1.4.0, Culture=neutral, PublicKeyToken=null#clr-namespace:GridDemoGridDemoGridDemo.GroupSummary\XPresentationFramework, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35RNWindowsBase, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35WSPresentationCore, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35D9http://schemas.microsoft.com/winfx/2006/xaml/presentationRNSystem.Xaml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089:x,http://schemas.microsoft.com/winfx/2006/xaml6sys&clr-namespace:System;assembly=mscorlibJcollections2clr-namespace:System.Collections;assembly=mscorliba]DevExpress.Xpf.Core.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a;dx2http://schemas.devexpress.com/winfx/2008/xaml/corefbDevExpress.Xpf.Grid.v13.1.Core, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49aa]DevExpress.Xpf.Grid.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49al	hDevExpress.Xpf.Grid.v13.1.Extensions, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a@dxg2http://schemas.devexpress.com/winfx/2008/xaml/grid	Gdxgt<http://schemas.devexpress.com/winfx/2008/xaml/grid/themekeys?dxe5http://schemas.devexpress.com/winfx/2008/xaml/editorse
aDevExpress.Xpf.DemoBase.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49aAdxdb6http://schemas.devexpress.com/winfx/2008/xaml/demobase
"localclr-namespace:GridDemo
Dmc;http://schemas.openxmlformats.org/markup-compatibility/2006
:d2http://schemas.microsoft.com/expression/blend/2008
�	Resources
�MergedDictionaries
�Source-
'DevExpress.Xpf.DemoBase.NWindDataLoader NWindDataLoader��$D>/GridDemo;component/ModuleResources/GroupSummaryTemplates.xaml?�%&	�DataContext$GridDemo.GroupSummaryViewModel)"AlignByColumnsDisplayModeSummariesGridDemo.GridSummaryList)#DevExpress.Xpf.Grid.GridSummaryItem)#DevExpress.Xpf.Grid.SummaryItemBase	FieldName$Discount��SummaryType$	Max=�$Total��$	Sum=�$Quantity��$	Min=�$
Freight��$	Sum=�$	UnitPrice��$
Average=�"DefaultDisplayModeSummaries$Discount��$	Max=�$Total��$	Sum=�.�/
)DevExpress.Xpf.DemoBase.DemoModuleControl(!SupressGroupFramePaddingInOptions.	OptionsContent	��
��Orientation$
Vertical=�.+�& DevExpress.Xpf.Editors.CheckEdit-Name$alignByColumnsCheckEdit��$
�0,0,0,4q�Content)#DevExpress.Xpf.Core.ObjectConverter$ Align Summaries by Columns
	IsChecked
��Path$)#DataContext.AlignSummariesByColumns��Mode$TwoWay=�$�0,0,0,12q�$Allow Cascade Update
�$$DataContext.AllowCascadeUpdate�$TwoWay=�$	DevExpress.Xpf.Core.GroupFrame	$��Summary Template��y��*	IsChecked+�ElementName$alignByColumnsCheckEdit�� $ BoolToVisibilityInverseConverter�	Converter#[.�(
"DevExpress.Xpf.Editors.ListBoxEdit
-$!�summaryItemTemplateComboBox��%DevExpress.Xpf.Editors.BaseEdit
ShowBorder.$�0,0,30,0q�

SelectedIndex$0��Z�

StyleSettings:4DevExpress.Xpf.Editors.RadioListBoxEditStyleSettings
Items��Customizable����Conditional����
Custom����Default��Content.%
DevExpress.Xpf.Grid.GridControl
-$
�grid��)#DevExpress.Xpf.Grid.DataControlBaseItemsSource�$Invoices�
�Source#[
GroupSummarySource�*
SummarySource+
Columns$DevExpress.Xpf.Grid.GridColumn-$DevExpress.Xpf.Grid.ColumnBaseName$
colCity��	FieldName$
City��$DevExpress.Xpf.Grid.BaseColumnMinWidth$	120��
GroupIndex$0�VisibleIndex�*CityColumnVisibleIndex+$TwoWay=�$	UnitPrice��$30�� EditSettings 60DevExpress.Xpf.Editors.Settings.TextEditSettings60DevExpress.Xpf.Editors.Settings.BaseEditSettings!
DisplayFormat$!$0.00��"MaskType$
"Numeric=�$Quantity��$30��$Discount��$30�� $!0%��$
"Numeric=�$
Freight��$30�� $!$0.00��$
"Numeric=�$Total��#UnboundType]YDevExpress.Data.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a82DevExpress.Utils.Design.UnboundColumnTypeConverter$
#Decimal$30��$UnboundExpression$3$-([UnitPrice] * [Quantity]) * (1 - [Discount])�� $!$0.00��$
"Numeric=�$
ExtendedPrice��%Visible%.&ShowInColumnChooser&.'AllowColumnFiltering5/DevExpress.Utils.Design.DefaultBooleanConverter$'False(
View(#DevExpress.Xpf.Grid.TableView-)Name$
)view��*AllowPerPixelScrolling*.& DevExpress.Xpf.Grid.DataViewBase+AllowEditing+.,NavigationStyle$	,Row=�-	AutoWidth-. *&customTemplateWithSummaryCustomization& DevExpress.Xpf.Grid.GridViewBase.GroupSummaryItemTemplate#.[/ShowGroupedColumns/�$AlignSummariesByColumns�0AllowCascadeUpdate0�$AllowCascadeUpdate�%1AllowGroupSummaryCascadeUpdate1�$AllowCascadeUpdate�2GroupSummaryDisplayMode2�$AlignSummariesByColumns� *&BoolToGroupSummaryDisplayModeConverter#[!�<local:GridDemoModule x:Class="GridDemo.GroupSummary"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:sys="clr-namespace:System;assembly=mscorlib"
    xmlns:collections="clr-namespace:System.Collections;assembly=mscorlib"
    xmlns:dx="http://schemas.devexpress.com/winfx/2008/xaml/core"
    xmlns:dxg="http://schemas.devexpress.com/winfx/2008/xaml/grid"
    xmlns:dxgt="http://schemas.devexpress.com/winfx/2008/xaml/grid/themekeys"
 xmlns:dxe="http://schemas.devexpress.com/winfx/2008/xaml/editors"
 xmlns:dxdb="http://schemas.devexpress.com/winfx/2008/xaml/demobase"
    xmlns:local="clr-namespace:GridDemo"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    mc:Ignorable="d" d:DesignHeight="400" d:DesignWidth="800">
    <local:GridDemoModule.Resources>
        <ResourceDictionary>
            <ResourceDictionary.MergedDictionaries>
                <ResourceDictionary Source="/GridDemo;component/ModuleResources/GroupSummaryTemplates.xaml" />
            </ResourceDictionary.MergedDictionaries>
            <dxdb:NWindDataLoader x:Key="NWindDataLoader" />
        </ResourceDictionary>
    </local:GridDemoModule.Resources>
    <local:GridDemoModule.DataContext>
        <local:GroupSummaryViewModel>
            <local:GroupSummaryViewModel.AlignByColumnsDisplayModeSummaries>
                <local:GridSummaryList>
                    <dxg:GridSummaryItem FieldName="Discount" SummaryType="Max" />
                    <dxg:GridSummaryItem FieldName="Total" SummaryType="Sum" />
                    <dxg:GridSummaryItem FieldName="Quantity" SummaryType="Min"/>
                    <dxg:GridSummaryItem FieldName="Freight" SummaryType="Sum"/>
                    <dxg:GridSummaryItem FieldName="UnitPrice" SummaryType="Average"/>
                </local:GridSummaryList>
            </local:GroupSummaryViewModel.AlignByColumnsDisplayModeSummaries>
            <local:GroupSummaryViewModel.DefaultDisplayModeSummaries>
                <local:GridSummaryList>
                    <dxg:GridSummaryItem FieldName="Discount" SummaryType="Max" />
                    <dxg:GridSummaryItem FieldName="Total" SummaryType="Sum" />
                </local:GridSummaryList>
            </local:GroupSummaryViewModel.DefaultDisplayModeSummaries>
        </local:GroupSummaryViewModel>
    </local:GridDemoModule.DataContext>
    <dxdb:DemoModuleControl SupressGroupFramePaddingInOptions="False">
        <dxdb:DemoModuleControl.OptionsContent>
            <StackPanel Orientation="Vertical">
                <dxe:CheckEdit x:Name="alignByColumnsCheckEdit" Margin="0,0,0,4" IsChecked="{Binding Path=DataContext.AlignSummariesByColumns, Mode=TwoWay}" Content="Align Summaries by Columns"/>
                <dxe:CheckEdit Margin="0,0,0,12" IsChecked="{Binding Path=DataContext.AllowCascadeUpdate, Mode=TwoWay}" Content="Allow Cascade Update"/>
                <dx:GroupFrame Header="Summary Template" Visibility="{Binding IsChecked, ElementName=alignByColumnsCheckEdit, Converter={StaticResource BoolToVisibilityInverseConverter}}">
                    <dxe:ListBoxEdit Background="{x:Null}" ShowBorder="False" Margin="0,0,30,0" SelectedIndex="0" Name="summaryItemTemplateComboBox" EditValueChanged="summaryItemTemplateComboBox_SelectionChanged">
                        <dxe:ListBoxEdit.StyleSettings>
                            <dxe:RadioListBoxEditStyleSettings />
                        </dxe:ListBoxEdit.StyleSettings>
                        <dxe:ListBoxEdit.Items>
                            <sys:String>Customizable</sys:String>
                            <sys:String>Conditional</sys:String>
                            <sys:String>Custom</sys:String>
                            <sys:String>Default</sys:String>
                        </dxe:ListBoxEdit.Items>
                    </dxe:ListBoxEdit>
                </dx:GroupFrame>
            </StackPanel>
        </dxdb:DemoModuleControl.OptionsContent>
        <dxg:GridControl Name="grid" ItemsSource="{Binding Path=Invoices, Source={StaticResource NWindDataLoader}}" GroupSummarySource="{Binding SummarySource}">
            <dxg:GridControl.Columns>
                <dxg:GridColumn Name="colCity" FieldName="City" MinWidth="120" GroupIndex="0" VisibleIndex="{Binding CityColumnVisibleIndex, Mode=TwoWay}"/>
                <dxg:GridColumn FieldName="UnitPrice" MinWidth="30">
                    <dxg:GridColumn.EditSettings>
                        <dxe:TextEditSettings DisplayFormat="$0.00" MaskType="Numeric" />
                    </dxg:GridColumn.EditSettings>
                </dxg:GridColumn>
                <dxg:GridColumn FieldName="Quantity" MinWidth="30" />
                <dxg:GridColumn FieldName="Discount" MinWidth="30">
                    <dxg:GridColumn.EditSettings>
                        <dxe:TextEditSettings DisplayFormat="0%" MaskType="Numeric" />
                    </dxg:GridColumn.EditSettings>
                </dxg:GridColumn>
                <dxg:GridColumn FieldName="Freight" MinWidth="30">
                    <dxg:GridColumn.EditSettings>
                        <dxe:TextEditSettings DisplayFormat="$0.00" MaskType="Numeric" />
                    </dxg:GridColumn.EditSettings>
                </dxg:GridColumn>
                <dxg:GridColumn FieldName="Total" UnboundType="Decimal" MinWidth="30" UnboundExpression="([UnitPrice] * [Quantity]) * (1 - [Discount])">
                    <dxg:GridColumn.EditSettings>
                        <dxe:TextEditSettings DisplayFormat="$0.00" MaskType="Numeric" />
                    </dxg:GridColumn.EditSettings>
                </dxg:GridColumn>
                <dxg:GridColumn FieldName="ExtendedPrice" Visible="False" ShowInColumnChooser="False" AllowColumnFiltering="False" />
            </dxg:GridControl.Columns>
            <dxg:GridControl.View>
                <dxg:TableView x:Name="view" AllowPerPixelScrolling="True" ShowGroupedColumns="{Binding Path=AlignSummariesByColumns}"
                               AllowCascadeUpdate="{Binding Path=AllowCascadeUpdate}" AllowGroupSummaryCascadeUpdate="{Binding Path=AllowCascadeUpdate}"
                               GroupSummaryDisplayMode="{Binding Path=AlignSummariesByColumns, Converter={StaticResource BoolToGroupSummaryDisplayModeConverter}}"
                               AllowEditing="False" NavigationStyle="Row" AutoWidth="True" GroupSummaryItemTemplate="{StaticResource customTemplateWithSummaryCustomization}" />
            </dxg:GridControl.View>
        </dxg:GridControl>
    </dxdb:DemoModuleControl>
</local:GridDemoModule>!using System;
using System.Linq;
using System.Windows;
using System.Windows.Controls;
using DevExpress.Xpf.Grid;
using DevExpress.Xpf.Core;
using DevExpress.Data;
using DevExpress.Xpf.DemoBase.Helpers;
using System.Collections.Generic;
using DevExpress.Xpf.DemoBase;

namespace GridDemo {
    [CodeFile("ModuleResources/GroupSummaryViewModel.(cs)")]
    [CodeFile("ModuleResources/GroupSummaryClasses.(cs)")]
    [CodeFile("ModuleResources/GroupSummaryTemplates(.SL).xaml")]
    public partial class GroupSummary : GridDemoModule {

        public GroupSummary() {
            InitializeComponent();
        }

        private void summaryItemTemplateComboBox_SelectionChanged(object sender, DevExpress.Xpf.Editors.EditValueChangedEventArgs e) {
            if(grid == null)
                return;
            if(summaryItemTemplateComboBox.SelectedIndex == 0) {
                view.GroupSummaryItemTemplate = (DataTemplate)this.FindResource("customTemplateWithSummaryCustomization");
                view.ClearValue(GridViewBase.GroupSummaryItemTemplateSelectorProperty);
            }
            if(summaryItemTemplateComboBox.SelectedIndex == 1) {
                view.GroupSummaryItemTemplateSelector = new ConditionalGroupSummaryItemTemplateSelector((DataTemplate)this.FindResource("smallValueTemplate"),
                    (DataTemplate)this.FindResource("largeValueTemplate"));
                view.ClearValue(GridViewBase.GroupSummaryItemTemplateProperty);
            }
            if(summaryItemTemplateComboBox.SelectedIndex == 2) {
                view.GroupSummaryItemTemplate = (DataTemplate)this.FindResource("customTemplate");
                view.ClearValue(GridViewBase.GroupSummaryItemTemplateSelectorProperty);
            }
            if(summaryItemTemplateComboBox.SelectedIndex == 3) {
                grid.View.ClearValue(GridViewBase.GroupSummaryItemTemplateProperty);
                grid.View.ClearValue(GridViewBase.GroupSummaryItemTemplateSelectorProperty);
            }
        }
    }
}!�MSBAML```����D@GridDemo, Version=13.1.4.0, Culture=neutral, PublicKeyToken=null#clr-namespace:GridDemoGridDemoOKmscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089I2clr-namespace:System.Collections;assembly=mscorlibSystem.Collections1&clr-namespace:System;assembly=mscorlibSystemGridDemo.HitTest\XPresentationFramework, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35RNWindowsBase, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35WSPresentationCore, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35D9http://schemas.microsoft.com/winfx/2006/xaml/presentationRNSystem.Xaml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089:x,http://schemas.microsoft.com/winfx/2006/xamla]DevExpress.Xpf.Core.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a;dx2http://schemas.devexpress.com/winfx/2008/xaml/corefbDevExpress.Xpf.Grid.v13.1.Core, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49aa]DevExpress.Xpf.Grid.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49al	hDevExpress.Xpf.Grid.v13.1.Extensions, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a@dxg2http://schemas.devexpress.com/winfx/2008/xaml/grid	?dxe5http://schemas.devexpress.com/winfx/2008/xaml/editorse
aDevExpress.Xpf.DemoBase.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49aAdxdb6http://schemas.devexpress.com/winfx/2008/xaml/demobase
"localclr-namespace:GridDemo
Dcollections2clr-namespace:System.Collections;assembly=mscorlib
0sys&clr-namespace:System;assembly=mscorlib
Dmc;http://schemas.openxmlformats.org/markup-compatibility/2006
:d2http://schemas.microsoft.com/expression/blend/2008
�	Resources
�MergedDictionaries
�Source-
'DevExpress.Xpf.DemoBase.NWindDataLoader NWindDataLoader"System.Collections.ArrayList 	Views��$-'/GridDemo;component/Themes/generic.xaml?��$E?/GridDemo;component/Controls/ControlStyles/NameTextControl.xaml?��$?9/GridDemo;component/ModuleResources/HitTestTemplates.xaml?�%E&	&	��
Table View����
	Card View��.�/
)DevExpress.Xpf.DemoBase.DemoModuleControl(!SupressGroupFramePaddingInOptions.OptionsContent��$	�160��.+�& DevExpress.Xpf.Editors.CheckEdit-$�showHitInfoCheckEdit��$	�Top=�	IsChecked$
TrueY�Content.Show Hit Information$DevExpress.Xpf.Core.GroupFrame$	�Top=�$��	View Type��$�0,12,0,0q�.�("DevExpress.Xpf.Editors.ListBoxEdit-Name$viewsListBox��%DevExpress.Xpf.Editors.BaseEdit
ShowBorder.	
SelectedIndex$	0��Z�
ItemsSource
�
�Source#[
StyleSettings:4DevExpress.Xpf.Editors.RadioListBoxEditStyleSettings
Content.
�.+�#	DevExpress.Xpf.Core.PopupBase	-$�hitInfoPopup��$��Mouse=��PlacementTarget��ElementName$
grid��.��
GridDemo.HintControl
$	�250��.���Padding$
12,8,24,10q�._���-$�hitIfoItemsControl�� hitInfoTemplate#��[%DevExpress.Xpf.Grid.GridControl-Name$
grid��)#DevExpress.Xpf.Grid.DataControlBaseItemsSource��Path$InvoicesNew�#[View#
DevExpress.Xpf.Grid.TableView
& DevExpress.Xpf.Grid.DataViewBaseShowFixedTotalSummary. IsTotalSummaryMenuEnabled.& DevExpress.Xpf.Grid.GridViewBaseShowGroupedColumns.
	AutoWidth.
ShowAutoFilterRow.
NewItemRowPosition$	Top=�J�	AllowDrop.Columns$DevExpress.Xpf.Grid.GridColumn-Name$colID��$DevExpress.Xpf.Grid.ColumnBase	FieldName$
OrderID��$DevExpress.Xpf.Grid.BaseColumnMinWidth$60�� Width$ 60��!
AllowResizing]YDevExpress.Data.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a5/DevExpress.Utils.Design.DefaultBooleanConverter$!False"
FixedWidth".
#Header)#DevExpress.Xpf.Core.ObjectConverter$#ID$Fixed$
$Left=�-$
colProduct��$	ProductID��$
#Product$	200��$	 200��%AutoFilterCondition$%Equals=�&EditSettings&:4DevExpress.Xpf.Editors.Settings.ComboBoxEditSettings<6DevExpress.Xpf.Editors.Settings.LookUpEditSettingsBase'AutoComplete'.(ImmediatePopup(.)ValueMember$)	ProductID��*
DisplayMember$*ProductName��+ItemsSource+�$Products�#[-$colUnitPrice��$	UnitPrice��$50��$ 50��$%Equals=�&60DevExpress.Xpf.Editors.Settings.SpinEditSettings60DevExpress.Xpf.Editors.Settings.TextEditSettings,MaskType$
,Numeric=�-MaskUseAsDisplayFormat-..Mask$.c��/MaskCulture$/en-US��-	$colQuantity��$Quantity��$50��$ 50��-
$colTotal��$Total��$	110��$	 110��0UnboundType82DevExpress.Utils.Design.UnboundColumnTypeConverter$
0Decimal1ReadOnly1.2UnboundExpression$2[UnitPrice] * [Quantity]��&$
,Numeric=�-.$.c��$/en-US��3TotalSummary3)#DevExpress.Xpf.Grid.GridSummaryItem)#DevExpress.Xpf.Grid.SummaryItemBase4	FieldName$4Total��5SummaryType$5Count=�6	Alignment$6Right=�7GroupSummary7$4Total��$5Count=�!�<local:GridDemoModule x:Class="GridDemo.HitTest"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:dx="http://schemas.devexpress.com/winfx/2008/xaml/core"
    xmlns:dxg="http://schemas.devexpress.com/winfx/2008/xaml/grid"
 xmlns:dxe="http://schemas.devexpress.com/winfx/2008/xaml/editors"
 xmlns:dxdb="http://schemas.devexpress.com/winfx/2008/xaml/demobase"
 xmlns:local="clr-namespace:GridDemo"
 xmlns:collections="clr-namespace:System.Collections;assembly=mscorlib"
 xmlns:sys="clr-namespace:System;assembly=mscorlib"
 xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    mc:Ignorable="d" d:DesignHeight="400" d:DesignWidth="800">

    <local:GridDemoModule.Resources>
        <ResourceDictionary>
            <ResourceDictionary.MergedDictionaries>
                <ResourceDictionary Source="/GridDemo;component/Themes/generic.xaml" />
                <ResourceDictionary Source="/GridDemo;component/Controls/ControlStyles/NameTextControl.xaml" />
                <ResourceDictionary Source="/GridDemo;component/ModuleResources/HitTestTemplates.xaml" />
            </ResourceDictionary.MergedDictionaries>
            <dxdb:NWindDataLoader x:Key="NWindDataLoader" />
            <collections:ArrayList x:Key="Views">
                <sys:String>Table View</sys:String>
                <sys:String>Card View</sys:String>
            </collections:ArrayList>
        </ResourceDictionary>
    </local:GridDemoModule.Resources>
    <dxdb:DemoModuleControl SupressGroupFramePaddingInOptions="False">
        <dxdb:DemoModuleControl.OptionsContent>
            <StackPanel MinWidth="160">
                <dxe:CheckEdit dx:DXDockPanel.Dock="Top" IsChecked="True" Name="showHitInfoCheckEdit">Show Hit Information</dxe:CheckEdit>
                <dx:GroupFrame dx:DXDockPanel.Dock="Top" Header="View Type" Margin="0,12,0,0">
                    <dxe:ListBoxEdit ShowBorder="False" x:Name="viewsListBox" Background="{x:Null}" SelectedIndex="0" ItemsSource="{Binding Source={StaticResource Views}}">
                        <dxe:ListBoxEdit.StyleSettings>
                            <dxe:RadioListBoxEditStyleSettings />
                        </dxe:ListBoxEdit.StyleSettings>
                    </dxe:ListBoxEdit>
                </dx:GroupFrame>
            </StackPanel>
        </dxdb:DemoModuleControl.OptionsContent>
        <Grid>
            <dx:PopupBase Name="hitInfoPopup" Placement="Mouse" PlacementTarget="{Binding ElementName=grid}" Opened="hitInfoPopup_Opened">
                <local:HintControl Width="250">
                    <Border Padding="12,8,24,10">
                        <ItemsControl Name="hitIfoItemsControl" ItemTemplate="{StaticResource hitInfoTemplate}" />
                    </Border>
                </local:HintControl>
            </dx:PopupBase>
            <dxg:GridControl x:Name="grid" ItemsSource="{Binding Path=InvoicesNew, Source={StaticResource NWindDataLoader}}" MouseMove="grid_MouseMove">
                <dxg:GridControl.View>
                    <dxg:TableView ShowFixedTotalSummary="True" IsTotalSummaryMenuEnabled="False" ShowGroupedColumns="True" AutoWidth="False" ShowAutoFilterRow="True" NewItemRowPosition="Top" AllowDrop="True" />
                </dxg:GridControl.View>
                <dxg:GridControl.Columns>
                    <dxg:GridColumn x:Name="colID" FieldName="OrderID" MinWidth="60" Width="60" AllowResizing="False" FixedWidth="true" Header="ID" Fixed="Left" />
                    <dxg:GridColumn x:Name="colProduct" FieldName="ProductID" Header="Product" MinWidth="200" Width="200" AutoFilterCondition="Equals">
                        <dxg:GridColumn.EditSettings>
                            <dxe:ComboBoxEditSettings AutoComplete="True" ImmediatePopup="True" ValueMember="ProductID" DisplayMember="ProductName"
                                               ItemsSource="{Binding Path=Products, Source={StaticResource NWindDataLoader}}">
                            </dxe:ComboBoxEditSettings>
                        </dxg:GridColumn.EditSettings>
                    </dxg:GridColumn>
                    <dxg:GridColumn x:Name="colUnitPrice" FieldName="UnitPrice" MinWidth="50" Width="50" AutoFilterCondition="Equals">
                        <dxg:GridColumn.EditSettings>
                            <dxe:SpinEditSettings MaskType="Numeric" MaskUseAsDisplayFormat="True" Mask="c" MaskCulture="en-US" />
                        </dxg:GridColumn.EditSettings>
                    </dxg:GridColumn>
                    <dxg:GridColumn x:Name="colQuantity" FieldName="Quantity" MinWidth="50" Width="50" />
                    <dxg:GridColumn x:Name="colTotal" FieldName="Total" MinWidth="110" Width="110" UnboundType="Decimal" ReadOnly="True" UnboundExpression="[UnitPrice] * [Quantity]">
                        <dxg:GridColumn.EditSettings>
                            <dxe:TextEditSettings MaskType="Numeric" MaskUseAsDisplayFormat="True" Mask="c" MaskCulture="en-US" />
                        </dxg:GridColumn.EditSettings>
                    </dxg:GridColumn>
                </dxg:GridControl.Columns>
                <dxg:GridControl.TotalSummary>
                    <dxg:GridSummaryItem FieldName="Total" SummaryType="Count" Alignment="Right"/>
                </dxg:GridControl.TotalSummary>
                <dxg:GridControl.GroupSummary>
                    <dxg:GridSummaryItem FieldName="Total" SummaryType="Count" />
                </dxg:GridControl.GroupSummary>
            </dxg:GridControl>

        </Grid>

    </dxdb:DemoModuleControl>
</local:GridDemoModule>!using System;
using System.Windows;
using DevExpress.Xpf.Grid;
using System.Collections.ObjectModel;
using DevExpress.Xpf.Core;
using System.Globalization;
using System.Linq;
using System.Data;
using System.Windows.Data;
using DevExpress.Xpf.DemoBase;
using System.Windows.Input;
using System.ComponentModel;

namespace GridDemo {
    [CodeFile("Controls/ControlStyles/NameTextControl(.SL).xaml")]
    [CodeFile("ModuleResources/HitTestTemplates(.SL).xaml")]
    [CodeFile("ModuleResources/HitTestClasses.(cs)")]
    public partial class HitTest : GridDemoModule {
        DevExpress.Xpf.Grid.TableView TableView { get { return (DevExpress.Xpf.Grid.TableView)grid.View; } }
        ObservableCollection<HitTestInfo> hitInfoList = new ObservableCollection<HitTestInfo>();
        Point startPosition;
        int floatingContainerIsOpenCount;


        public bool AllowShowHitInfo {
            get { return (bool)GetValue(AllowShowHitInfoProperty); }
            set { SetValue(AllowShowHitInfoProperty, value); }
        }
        public override bool AllowRtl { get { return false; } }

        public static readonly DependencyProperty AllowShowHitInfoProperty =
            DependencyProperty.Register("AllowShowHitInfo", typeof(bool), typeof(HitTest), new UIPropertyMetadata(true));


        public HitTest() {
            InitializeComponent();

            viewsListBox.EditValueChanged += new DevExpress.Xpf.Editors.EditValueChangedEventHandler(viewsListBox_SelectionChanged);

            FloatingContainer.AddFloatingContainerIsOpenChangedHandler(this, OnFloatingContainerIsOpenChanged);
            grid.Loaded += new RoutedEventHandler(grid_Loaded);

            hitIfoItemsControl.ItemsSource = hitInfoList;

        }
        void grid_Loaded(object sender, RoutedEventArgs e) {
            MultiBinding mBinding = new MultiBinding();
            mBinding.Mode = BindingMode.OneWay;
            Binding bIsMouseOver = new Binding() { Mode = BindingMode.OneWay, ElementName = "grid", Path = new PropertyPath("IsMouseOver", null) };
            mBinding.Bindings.Add(bIsMouseOver);
            Binding bIsMouseCaptureWithin = new Binding() { Mode = BindingMode.OneWay, ElementName = "grid", Path = new PropertyPath("IsMouseCaptureWithin", null), Converter = new NegationConverterExtension() };
            mBinding.Bindings.Add(bIsMouseCaptureWithin);
            Binding bIsChecked = new Binding() { Mode = BindingMode.OneWay, ElementName = "showHitInfoCheckEdit", Path = new PropertyPath("IsChecked", null) };
            mBinding.Bindings.Add(bIsChecked);
            Binding bAllowShowHitInfo = new Binding() { Mode = BindingMode.OneWay, RelativeSource = new RelativeSource(RelativeSourceMode.FindAncestor, this.GetType(), 1), Path = new PropertyPath("AllowShowHitInfo", null) };
            mBinding.Bindings.Add(bAllowShowHitInfo);
            mBinding.Converter = new AndConverter();
            hitInfoPopup.SetBinding(PopupBase.IsOpenProperty, mBinding);
        }
        void viewsListBox_SelectionChanged(object sender, DevExpress.Xpf.Editors.EditValueChangedEventArgs e) {
            grid.View = (GridViewBase)FindResource(viewsListBox.SelectedIndex == 0 ? "tableView" : "cardView");
        }

        private void grid_MouseMove(object sender, System.Windows.Input.MouseEventArgs e) {
            Point location = e.GetPosition(grid);
            double hOffset = location.X - startPosition.X;
            if(FlowDirection == System.Windows.FlowDirection.RightToLeft)
                hOffset = -hOffset;

            hitInfoPopup.HorizontalOffset = hOffset;
            hitInfoPopup.VerticalOffset = location.Y - startPosition.Y;

            GridViewHitInfoBase info = GetHitInfo(e);

            hitInfoList.Clear();

            AddHitInfo("HitTest", TypeDescriptor.GetProperties(info)["HitTest"].GetValue(info).ToString());

            AddHitInfo("Column", info.Column != null ? info.Column.HeaderCaption as string : "No column");
            AddHitInfo("RowHandle", GetRowHandleDescription(info.RowHandle));
            AddHitInfo("CellValue", info.Column != null ? grid.GetCellDisplayText(info.RowHandle, info.Column) : null);
            info.Accept(CreateDemoHitTestVisitor());
        }
        void OnFloatingContainerIsOpenChanged(object sender, FloatingContainerEventArgs e) {
            if(e.Container.IsOpen)
                floatingContainerIsOpenCount++;
            else
                floatingContainerIsOpenCount--;
            AllowShowHitInfo = floatingContainerIsOpenCount == 0;
        }
        GridViewHitTestVisitorBase CreateDemoHitTestVisitor() {
            if(grid.View is DevExpress.Xpf.Grid.TableView)
                return new DemoTableViewHitTestVisitor(this);
            return new DemoCardViewHitTestVisitor(this);
        }
        GridViewHitInfoBase GetHitInfo(RoutedEventArgs e) {
            if(grid.View is DevExpress.Xpf.Grid.TableView)
                return (GridViewHitInfoBase)TableView.CalcHitInfo(e.OriginalSource as DependencyObject);
            return ((DevExpress.Xpf.Grid.CardView)grid.View).CalcHitInfo(e.OriginalSource as DependencyObject);

        }
        string GetRowHandleDescription(int rowHanle) {
            if(rowHanle == GridControl.InvalidRowHandle)
                return "No row";
            if(rowHanle == GridControl.NewItemRowHandle)
                return "New Item Row";
            if(rowHanle == GridControl.AutoFilterRowHandle)
                return "Auto Filter Row";
            return string.Format("{0} ({1})", rowHanle, grid.IsGroupRowHandle(rowHanle) ? "group row" : "data row");
        }
        internal void AddHitInfo(string name, string text) {
            hitInfoList.Add(new HitTestInfo(name, text));
        }
        internal void RemoveHitInfo(string name) {
            HitTestInfo infoToRemove = hitInfoList.Where(info => info.Name == name).FirstOrDefault();
            if(infoToRemove != null)
                hitInfoList.Remove(infoToRemove);
        }
        internal void AddTotalSummaryInfo(ColumnBase column) {
            AddHitInfo("TotalSummary", column.TotalSummaryText);
        }
        internal void AddFixedTotalSummaryInfo(string summaryText) {
            RemoveHitInfo("CellValue");
            AddHitInfo("FixedTotalSummary", summaryText);
        }
        internal void AddGroupValueInfo(GridColumnData columnData) {
            AddHitInfo("GroupValue", string.Format("{0}: {1}", columnData.Column.FieldName, columnData.Value));
        }
        internal void AddGroupSummaryInfo(GridGroupSummaryData summaryData) {
            AddHitInfo("GroupSummary", summaryData.Text);
        }
        void hitInfoPopup_Opened(object sender, EventArgs e) {
            startPosition = Mouse.GetPosition(grid);
        }

    }
}!�MSBAML```����D@GridDemo, Version=13.1.4.0, Culture=neutral, PublicKeyToken=null#clr-namespace:GridDemoGridDemoOKmscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089I2clr-namespace:System.Collections;assembly=mscorlibSystem.Collections1&clr-namespace:System;assembly=mscorlibSystemGridDemo.InplaceEditors\XPresentationFramework, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35RNWindowsBase, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35WSPresentationCore, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35D9http://schemas.microsoft.com/winfx/2006/xaml/presentationRNSystem.Xaml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089:x,http://schemas.microsoft.com/winfx/2006/xamla]DevExpress.Xpf.Core.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a;dx2http://schemas.devexpress.com/winfx/2008/xaml/corefbDevExpress.Xpf.Grid.v13.1.Core, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49aa]DevExpress.Xpf.Grid.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49al	hDevExpress.Xpf.Grid.v13.1.Extensions, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a@dxg2http://schemas.devexpress.com/winfx/2008/xaml/grid	?dxe5http://schemas.devexpress.com/winfx/2008/xaml/editorse
aDevExpress.Xpf.DemoBase.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49aAdxdb6http://schemas.devexpress.com/winfx/2008/xaml/demobase
"localclr-namespace:GridDemo
Dcollections2clr-namespace:System.Collections;assembly=mscorlib
0sys&clr-namespace:System;assembly=mscorlib
Dmc;http://schemas.openxmlformats.org/markup-compatibility/2006
:d2http://schemas.microsoft.com/expression/blend/2008
GridDemo.GridDemoModule)"UseGridControlWrapperAsDataContext.�	Resources
�MergedDictionaries
�SourceGridDemo.DemoDataProvider DemoDataProvider#DevExpress.Xpf.Grid.TableView 
columnView	AutoWidth& DevExpress.Xpf.Grid.DataViewBaseShowTotalSummary"DevExpress.Xpf.Grid.CardViewMinFixedSize cardView	FixedSizeAllowCardResizing& DevExpress.Xpf.Grid.GridViewBase	ShowGroupedColumns
NavigationStyleCardHeaderBinding�Path
�RelativeSource��$F@/GridDemo;component/ModuleResources/InplaceEditorsTemplates.xaml?�%�&	&	&	..$	200Q�$	250Q�.	..$

Cell=��$Data.OID�
��*Self+.�/
)DevExpress.Xpf.DemoBase.DemoModuleControl(!SupressGroupFramePaddingInOptions.OptionsTopText$SMClick a data cell and edit its value using the corresponding in-place editor.��OptionsContent��.+�& DevExpress.Xpf.Editors.CheckEdit$�0,0,0,12q�Content)	#DevExpress.Xpf.Core.ObjectConverter$Enable Editing		IsChecked�$#GridControl.View.AllowEditing��Mode$TwoWay=�$
DevExpress.Xpf.Core.GroupFrame
$��Editor Show Mode��$�0,0,0,12q�.�)#DevExpress.Xpf.Editors.ComboBoxEdit-Name$editorShowModeCombobox��'!DevExpress.Xpf.Editors.ButtonEditIsTextEditable.+
%DevExpress.Xpf.Editors.LookUpEditBase

SelectedIndex$0��Z�Items.��
Mouse Down����Mouse Down On Focused Cell����Mouse Up����Mouse Up On Focused Cell��
$��Editor Button Show Mode��$�0,0,0,12q�.�-$!editorButtonShowModeListBox��.$0��Z�.��Show Only In Editor����Show For Focused Cell����Show For Focused Row����Show Always��
$��Boolean Editor Type��$�0,0,0,12q�.�-$ booleanColumnEditorListBox��.$0��Z�.��
Check Edit����
	Text Edit����Combo Box Edit��
$��	View Type��$�0,0,0,12q�.�("DevExpress.Xpf.Editors.ListBoxEdit-Name$viewsListBox��%DevExpress.Xpf.Editors.BaseEdit
ShowBorder.
SelectedIndex$0��Z�
StyleSettings:4DevExpress.Xpf.Editors.RadioListBoxEditStyleSettingsItems��
Table View����
	Card View��
$��'To' column options��$�0,0,0,12q�.���.+�-Name$autoCompleteCheckBox��$
Auto Complete	$
TrueY�$
�0,0,0,4q�-$immediatePopupCheckBox��$Immediate popup	{��$	IsChecked��ElementName$autoCompleteCheckBox��
$#��'Hours Active' column options��$�0,0,0,12q�.���.+�-$("alternativeDisplayTemplateCheckBox��$
�0,0,0,4q�$& Use alternative display template	-$%alternativeEditTemplateCheckBox��$#Use alternative edit template	Content.%DevExpress.Xpf.Grid.GridControl-	 Name$
 grid��)#DevExpress.Xpf.Grid.DataControlBase!DesignTimeDataObjectTypeGridDemo.OutlookData"!"View"..#Columns#$DevExpress.Xpf.Grid.GridColumn-
$Name$$colId��$DevExpress.Xpf.Grid.ColumnBase%	FieldName$	%OID��$DevExpress.Xpf.Grid.BaseColumn
&Header$&Id	'Width$'50��(MinWidth$(30��)ReadOnly).-$$colPriority��$%Priority��*SortMode$*Value=�$'40��$	(100��$
%From��$	'100��-$$	colUserId��$
%ToId��$&To	$	'100��+EditSettings+:4DevExpress.Xpf.Editors.Settings.ComboBoxEditSettings<6DevExpress.Xpf.Editors.Settings.LookUpEditSettingsBase,ValueMember$,Id��-
DisplayMember$
-Name��.ItemsSource.�*Users+
/�Source#/[82DevExpress.Xpf.Editors.Settings.ButtonEditSettings0IsTextEditable0�$	IsChecked�$TwoWay=�$autoCompleteCheckBox��1AutoComplete1�$	IsChecked�$TwoWay=�$autoCompleteCheckBox��2ImmediatePopup2�$	IsChecked�$TwoWay=�$immediatePopupCheckBox��$
%Sent��$	'110��3
GroupInterval$3	DateRange=�+60DevExpress.Xpf.Editors.Settings.DateEditSettings60DevExpress.Xpf.Editors.Settings.BaseEditSettings4
DisplayFormat$4d��-
$$colHoursActive��$%HoursActive��$'70��+60DevExpress.Xpf.Editors.Settings.TextEditSettings-5MaskType$
5Numeric=�6Mask$6d��!7HorizontalContentAlignment$7Center=�-$$colHasAttachment��$%
HasAttachment��$'50�� clipTemplate8HeaderTemplate#8[9GroupSummary9)#DevExpress.Xpf.Grid.GridSummaryItem)#DevExpress.Xpf.Grid.SummaryItemBase:	FieldName$:HoursActive��;SummaryType$
;Average=�$
:From��$;Count=�<TotalSummary<$
:From��$;Count=�$:HoursActive��$
;Average=�!"<local:GridDemoModule x:Class="GridDemo.InplaceEditors"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:dx="http://schemas.devexpress.com/winfx/2008/xaml/core"
    xmlns:dxg="http://schemas.devexpress.com/winfx/2008/xaml/grid"
 xmlns:dxe="http://schemas.devexpress.com/winfx/2008/xaml/editors"
    xmlns:dxdb="http://schemas.devexpress.com/winfx/2008/xaml/demobase"
    xmlns:local="clr-namespace:GridDemo"
    xmlns:collections="clr-namespace:System.Collections;assembly=mscorlib"
    xmlns:sys="clr-namespace:System;assembly=mscorlib"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    mc:Ignorable="d" d:DesignHeight="400" d:DesignWidth="800" UseGridControlWrapperAsDataContext="True">
    <local:GridDemoModule.Resources>
        <ResourceDictionary>
            <ResourceDictionary.MergedDictionaries>
                <ResourceDictionary Source="/GridDemo;component/ModuleResources/InplaceEditorsTemplates.xaml" />
            </ResourceDictionary.MergedDictionaries>
            <local:DemoDataProvider x:Key="DemoDataProvider" />
            <dxg:TableView x:Key="columnView" AutoWidth="true" ShowTotalSummary="True"/>
            <dxg:CardView MinFixedSize="200" CardHeaderBinding="{Binding Path=Data.OID, RelativeSource={RelativeSource Self}}" x:Key="cardView" FixedSize="250" AllowCardResizing="True" ShowGroupedColumns="false" ShowTotalSummary="False" NavigationStyle="Cell"/>
        </ResourceDictionary>
    </local:GridDemoModule.Resources>
    <dxdb:DemoModuleControl SupressGroupFramePaddingInOptions="False">
        <dxdb:DemoModuleControl.OptionsTopText>
            Click a data cell and edit its value using the corresponding in-place editor.
        </dxdb:DemoModuleControl.OptionsTopText>
        <dxdb:DemoModuleControl.OptionsContent>
            <StackPanel>
                <dxe:CheckEdit IsChecked="{Binding Path=GridControl.View.AllowEditing, Mode=TwoWay}" Margin="0,0,0,12" Content="Enable Editing" />
                <dx:GroupFrame Header="Editor Show Mode" Margin="0,0,0,12">
                    <dxe:ComboBoxEdit Background="{x:Null}" x:Name="editorShowModeCombobox" IsTextEditable="False" SelectedIndex="0">
                        <sys:String>Mouse Down</sys:String>
                        <sys:String>Mouse Down On Focused Cell</sys:String>
                        <sys:String>Mouse Up</sys:String>
                        <sys:String>Mouse Up On Focused Cell</sys:String>
                    </dxe:ComboBoxEdit>
                </dx:GroupFrame>
                <dx:GroupFrame Header="Editor Button Show Mode" Margin="0,0,0,12">
                    <dxe:ComboBoxEdit Background="{x:Null}" x:Name="editorButtonShowModeListBox" IsTextEditable="False" SelectedIndex="0">
                        <sys:String>Show Only In Editor</sys:String>
                        <sys:String>Show For Focused Cell</sys:String>
                        <sys:String>Show For Focused Row</sys:String>
                        <sys:String>Show Always</sys:String>
                    </dxe:ComboBoxEdit>
                </dx:GroupFrame>
                <dx:GroupFrame Header="Boolean Editor Type" Margin="0,0,0,12">
                    <dxe:ComboBoxEdit Background="{x:Null}" x:Name="booleanColumnEditorListBox" IsTextEditable="False" SelectedIndex="0">
                        <sys:String>Check Edit</sys:String>
                        <sys:String>Text Edit</sys:String>
                        <sys:String>Combo Box Edit</sys:String>
                    </dxe:ComboBoxEdit>
                </dx:GroupFrame>
                <dx:GroupFrame Header="View Type" Margin="0,0,0,12">
                    <dxe:ListBoxEdit Background="{x:Null}" ShowBorder="False" x:Name="viewsListBox" SelectedIndex="0">
                        <dxe:ListBoxEdit.StyleSettings>
                            <dxe:RadioListBoxEditStyleSettings />
                        </dxe:ListBoxEdit.StyleSettings>
                        <dxe:ListBoxEdit.Items>
                            <sys:String>Table View</sys:String>
                            <sys:String>Card View</sys:String>
                        </dxe:ListBoxEdit.Items>
                    </dxe:ListBoxEdit>
                </dx:GroupFrame>
                <dx:GroupFrame Header="'To' column options" Margin="0,0,0,12">
                    <StackPanel>
                        <dxe:CheckEdit x:Name="autoCompleteCheckBox" Content="Auto Complete" IsChecked="True" Margin="0,0,0,4" />
                        <dxe:CheckEdit x:Name="immediatePopupCheckBox" Content="Immediate popup" IsEnabled="{Binding Path=IsChecked, ElementName=autoCompleteCheckBox}" />
                    </StackPanel>
                </dx:GroupFrame>
                <dx:GroupFrame Header="'Hours Active' column options" Margin="0,0,0,12">
                    <StackPanel>
                        <dxe:CheckEdit x:Name="alternativeDisplayTemplateCheckBox" Checked="alternativeDisplayTemplateCheckBox_Checked" Unchecked="alternativeDisplayTemplateCheckBox_Unchecked" Margin="0,0,0,4" Content="Use alternative display template" />
                        <dxe:CheckEdit x:Name="alternativeEditTemplateCheckBox" Checked="alternativeEditTemplateCheckBox_Checked" Unchecked="alternativeEditTemplateCheckBox_Unchecked" Content="Use alternative edit template" />
                    </StackPanel>
                </dx:GroupFrame>
            </StackPanel>

        </dxdb:DemoModuleControl.OptionsContent>
        <dxg:GridControl x:Name="grid" DesignTimeDataObjectType="local:OutlookData">
            <dxg:GridControl.View>
                <dxg:TableView AutoWidth="true" ShowTotalSummary="True"/>
            </dxg:GridControl.View>
            <dxg:GridControl.Columns>
                <dxg:GridColumn x:Name="colId" FieldName="OID" Header="Id" Width="50" MinWidth="30" ReadOnly="true" />
                <dxg:GridColumn x:Name="colPriority"  FieldName="Priority" SortMode="Value" Width="40" MinWidth="100" />
                <dxg:GridColumn FieldName="From" Width="100" />
                <dxg:GridColumn x:Name="colUserId" FieldName="ToId" Header="To" Width="100">
                    <dxg:GridColumn.EditSettings>
                        <dxe:ComboBoxEditSettings ValueMember="Id" DisplayMember="Name" ItemsSource="{Binding Users, Source={StaticResource DemoDataProvider}}"
                                              IsTextEditable="{Binding Path=IsChecked, Mode=TwoWay, ElementName=autoCompleteCheckBox}"
                                              AutoComplete="{Binding Path=IsChecked, Mode=TwoWay, ElementName=autoCompleteCheckBox}"
                                              ImmediatePopup="{Binding Path=IsChecked, Mode=TwoWay, ElementName=immediatePopupCheckBox}" />
                    </dxg:GridColumn.EditSettings>
                </dxg:GridColumn>
                <dxg:GridColumn FieldName="Sent" Width="110" GroupInterval="DateRange">
                    <dxg:GridColumn.EditSettings>
                        <dxe:DateEditSettings DisplayFormat="d" />
                    </dxg:GridColumn.EditSettings>
                </dxg:GridColumn>
                <dxg:GridColumn x:Name="colHoursActive" FieldName="HoursActive" Width="70" Validate="colHoursActive_Validate">
                    <dxg:GridColumn.EditSettings>
                        <dxe:TextEditSettings GetIsActivatingKey="TextEditSettings_GetIsActivatingKey"
      ProcessActivatingKey="TextEditSettings_ProcessActivatingKey"
      MaskType="Numeric"
      Mask="d"
      HorizontalContentAlignment="Center">
                        </dxe:TextEditSettings>
                    </dxg:GridColumn.EditSettings>
                </dxg:GridColumn>
                <dxg:GridColumn x:Name="colHasAttachment" FieldName="HasAttachment" Width="50" HeaderTemplate="{StaticResource clipTemplate}" />
            </dxg:GridControl.Columns>
            <dxg:GridControl.GroupSummary>
                <dxg:GridSummaryItem FieldName="HoursActive" SummaryType="Average" />
                <dxg:GridSummaryItem FieldName="From" SummaryType="Count" />
            </dxg:GridControl.GroupSummary>
            <dxg:GridControl.TotalSummary>
                <dxg:GridSummaryItem FieldName="From" SummaryType="Count" />
                <dxg:GridSummaryItem FieldName="HoursActive" SummaryType="Average" />
            </dxg:GridControl.TotalSummary>
        </dxg:GridControl>
    </dxdb:DemoModuleControl>
</local:GridDemoModule>!�using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using DevExpress.Xpf.Grid;
using DevExpress.XtraEditors.DXErrorProvider;
using System.Windows.Markup;
using DevExpress.Xpf.Editors.Settings;
using System.Collections;
using DevExpress.Xpf.Core;
using DevExpress.Xpf.Editors;
using DevExpress.Xpf.DemoBase;

namespace GridDemo {
    [CodeFile("Controls/Converters.(cs)")]
    [CodeFile("ModuleResources/InplaceEditorsTemplates(.SL).xaml")]
    public partial class InplaceEditors : GridDemoModule {
        public InplaceEditors() {
            InitializeComponent();
            ComboBoxEditSettings settings = new ComboBoxEditSettings() { IsTextEditable = false };
            ComboBoxEdit.SetupComboBoxSettingsEnumItemSource<Priority>(settings);
            colPriority.EditSettings = settings;
            grid.ItemsSource = OutlookDataGenerator.CreateOutlookDataTable(1000);
            booleanColumnEditorListBox.EditValueChanged += new EditValueChangedEventHandler(booleanColumnEditorListBox_EditValueChanged);
            editorButtonShowModeListBox.EditValueChanged += new EditValueChangedEventHandler(editorButtonShowModeListBox_EditValueChanged);
            viewsListBox.EditValueChanged += new EditValueChangedEventHandler(viewsListBox_SelectionChanged);
            alternativeDisplayTemplateCheckBox.IsChecked = true;
            alternativeEditTemplateCheckBox.IsChecked = true;
            editorShowModeCombobox.EditValueChanged += new EditValueChangedEventHandler(editorShowModeCombobox_EditValueChanged);

        }
#region options
        void editorShowModeCombobox_EditValueChanged(object sender, EditValueChangedEventArgs e) {
            UpdateEditorShowMode();
        }
        void viewsListBox_SelectionChanged(object sender, DevExpress.Xpf.Editors.EditValueChangedEventArgs e) {
            if(viewsListBox.SelectedIndex == 0) {
                grid.View = (GridViewBase)FindResource("columnView");
            }
            if(viewsListBox.SelectedIndex == 1) {
                grid.View = (GridViewBase)FindResource("cardView");
            }
            UpdateEditorButtonShowMode();
            UpdateEditorShowMode();
        }
        void booleanColumnEditorListBox_EditValueChanged(object sender, EditValueChangedEventArgs e) {
            if(booleanColumnEditorListBox.SelectedIndex == 0) {
                colHasAttachment.EditSettings = null;
            }
            if(booleanColumnEditorListBox.SelectedIndex == 1) {
                colHasAttachment.EditSettings = new TextEditSettings();
            }
            if(booleanColumnEditorListBox.SelectedIndex == 2) {
                colHasAttachment.EditSettings = new ComboBoxEditSettings() { ItemsSource = new bool[] { true, false } };
            }
        }
        void editorButtonShowModeListBox_EditValueChanged(object sender, EditValueChangedEventArgs e) {
            UpdateEditorButtonShowMode();
        }
        void UpdateEditorButtonShowMode() {
            if(editorButtonShowModeListBox.SelectedIndex == 0) {
                grid.View.EditorButtonShowMode = EditorButtonShowMode.ShowOnlyInEditor;
            }
            if(editorButtonShowModeListBox.SelectedIndex == 1) {
                grid.View.EditorButtonShowMode = EditorButtonShowMode.ShowForFocusedCell;
            }
            if(editorButtonShowModeListBox.SelectedIndex == 2) {
                grid.View.EditorButtonShowMode = EditorButtonShowMode.ShowForFocusedRow;
            }
            if(editorButtonShowModeListBox.SelectedIndex == 3) {
                grid.View.EditorButtonShowMode = EditorButtonShowMode.ShowAlways;
            }
        }
        void UpdateEditorShowMode() {
            if(editorShowModeCombobox.SelectedIndex == 0) {
                grid.View.EditorShowMode = EditorShowMode.MouseDown;
            }
            if(editorShowModeCombobox.SelectedIndex == 1) {
                grid.View.EditorShowMode = EditorShowMode.MouseDownFocused;
            }
            if(editorShowModeCombobox.SelectedIndex == 2) {
                grid.View.EditorShowMode = EditorShowMode.MouseUp;
            }
            if(editorShowModeCombobox.SelectedIndex == 3) {
                grid.View.EditorShowMode = EditorShowMode.MouseUpFocused;
            }
        }
        private void colHoursActive_Validate(object sender, GridCellValidationEventArgs e) {
            double value = Convert.ToDouble(e.Value, e.Culture);
            if(value <= 0 || 1000 < value) {
                e.SetError("The Hours Active value must be greater than zero and less than or equal to 1000", ErrorType.Default);
            }
        }
#endregion
#region colHoursActive options
        private void alternativeDisplayTemplateCheckBox_Checked(object sender, RoutedEventArgs e) {
            colHoursActive.DisplayTemplate = (ControlTemplate)Resources["alternativeHoursActiveDisplayTemplate"];
        }
        private void alternativeDisplayTemplateCheckBox_Unchecked(object sender, RoutedEventArgs e) {
            colHoursActive.DisplayTemplate = null;
        }
        private void alternativeEditTemplateCheckBox_Checked(object sender, RoutedEventArgs e) {
            colHoursActive.EditTemplate = (ControlTemplate)Resources["alternativeHoursActiveEditTemplate"];
        }
        private void alternativeEditTemplateCheckBox_Unchecked(object sender, RoutedEventArgs e) {
            colHoursActive.EditTemplate = null;
        }
#endregion
#region custom edit template events
        private void TextEditSettings_GetIsActivatingKey(object sender, GetIsActivatingKeyEventArgs e) {
            switch(e.Key) {
                case Key.Add:
                case Key.Subtract:
                case Key.OemPlus:
                case Key.OemMinus:
                    e.IsActivatingKey = (e.Modifiers == ModifierKeys.None) || (e.Modifiers == ModifierKeys.Control);
                    break;
            }
        }
        private void TextEditSettings_ProcessActivatingKey(object sender, ProcessActivatingKeyEventArgs e) {
            RoutedCommand command = GetCommand(e);
            if(command != null)
                command.Execute(null, e.EditCore);
        }
        RoutedCommand GetCommand(ProcessActivatingKeyEventArgs e) {
            switch(e.Key) {
                case Key.Add:
                case Key.OemPlus:
                    return e.Modifiers == ModifierKeys.None ? Slider.IncreaseSmall : Slider.IncreaseLarge;
                case Key.Subtract:
                case Key.OemMinus:
                    return e.Modifiers == ModifierKeys.None ? Slider.DecreaseSmall : Slider.DecreaseLarge;
            }
            return null;
        }
#endregion
    }
}!1MSBAML```����D@GridDemo, Version=13.1.4.0, Culture=neutral, PublicKeyToken=null#clr-namespace:GridDemoGridDemo#clr-namespace:GridDemoGridDemoOKmscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e0891&clr-namespace:System;assembly=mscorlibSystemI2clr-namespace:System.Collections;assembly=mscorlibSystem.Collections GridDemo.InplaceLookUpEdit\XPresentationFramework, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35RNWindowsBase, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35WSPresentationCore, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35D9http://schemas.microsoft.com/winfx/2006/xaml/presentationRNSystem.Xaml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089:x,http://schemas.microsoft.com/winfx/2006/xamla]DevExpress.Xpf.Core.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a;dx2http://schemas.devexpress.com/winfx/2008/xaml/corefbDevExpress.Xpf.Grid.v13.1.Core, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49aa]DevExpress.Xpf.Grid.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49al	hDevExpress.Xpf.Grid.v13.1.Extensions, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a@dxg2http://schemas.devexpress.com/winfx/2008/xaml/grid	?dxe5http://schemas.devexpress.com/winfx/2008/xaml/editorse
aDevExpress.Xpf.DemoBase.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49aAdxdb6http://schemas.devexpress.com/winfx/2008/xaml/demobase
"localclr-namespace:GridDemo
#dxdemoclr-namespace:GridDemo
0sys&clr-namespace:System;assembly=mscorlib
Dmc;http://schemas.openxmlformats.org/markup-compatibility/2006
:d2http://schemas.microsoft.com/expression/blend/2008
Dcollections2clr-namespace:System.Collections;assembly=mscorlib
�	Resources
�MergedDictionaries
�Source-
'DevExpress.Xpf.DemoBase.NWindDataLoader NWindDataLoader��$IC/GridDemo;component/ModuleResources/InplaceLookUpEditResources.xaml?�%&	.�/
)DevExpress.Xpf.DemoBase.DemoModuleControlOptionsContent��$	�250��.+�$DevExpress.Xpf.Core.GroupFrame$��
Properties��$�0,0,0,12q�.���ColumnDefinitions��$
�Auto����RowDefinitions����.+�& DevExpress.Xpf.Editors.CheckEdit-$�chkShowSizeGrip��Content)#DevExpress.Xpf.Core.ObjectConverter$Show size grip$�2�$��0�$
�0,0,0,4q�	IsChecked$
TrueY�-$�chkImmediatePopup��$Immediate pop-up$�2�$��1�$
�0,0,0,4q�$
TrueY�-$�chkAllowAutoComplete��$Allow auto complete$�2�$��2�$
�0,0,0,4q�$
TrueY�Content.%DevExpress.Xpf.Grid.GridControl-$
�grid��)#DevExpress.Xpf.Grid.DataControlBase	ItemsSource	�*Orders+
�Source#
[Columns$DevExpress.Xpf.Grid.GridColumn$	DevExpress.Xpf.Grid.ColumnBase		FieldName$
OrderID��$
DevExpress.Xpf.Grid.BaseColumn


Header$
ID
Width$50��
MinWidth$30��$
CustomerID��$
Customer$50��$	180�� headerTemplate
HeaderTemplate#[	EditSettings3-DevExpress.Xpf.Grid.LookUp.LookUpEditSettings<6DevExpress.Xpf.Editors.Settings.LookUpEditSettingsBaseValueMember$
CustomerID��
DisplayMember$CompanyName�� customerGridTemplate;
5DevExpress.Xpf.Editors.Settings.PopupBaseEditSettings
PopupContentTemplate#[AutoPopulateColumns.IsPopupAutoWidth.ItemsSource�*	Customers+#
[AutoComplete��Path$	IsChecked��ElementName$chkAllowAutoComplete���Mode$TwoWay=�ImmediatePopup�$	IsChecked�$chkImmediatePopup��$TwoWay=�
ShowSizeGrip�$	IsChecked�$chkShowSizeGrip��$
EmployeeID��$
Employee$50��#[$
EmployeeID��$LastName�� employeeGridTemplate#[..�*EmployeesNew+#
[�$	IsChecked�$chkAllowAutoComplete��$TwoWay=��$	IsChecked�$chkImmediatePopup��$TwoWay=��$	IsChecked�$chkShowSizeGrip��$	OrderDate��$30��$RequiredDate��$30��View#DevExpress.Xpf.Grid.TableView-$
�view��	AutoWidth.!�<local:GridDemoModule x:Class="GridDemo.InplaceLookUpEdit"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:dx="http://schemas.devexpress.com/winfx/2008/xaml/core"
    xmlns:dxg="http://schemas.devexpress.com/winfx/2008/xaml/grid"
 xmlns:dxe="http://schemas.devexpress.com/winfx/2008/xaml/editors"
    xmlns:dxdb="http://schemas.devexpress.com/winfx/2008/xaml/demobase"
    xmlns:local="clr-namespace:GridDemo"
    xmlns:dxdemo="clr-namespace:GridDemo"
    xmlns:sys="clr-namespace:System;assembly=mscorlib"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:collections="clr-namespace:System.Collections;assembly=mscorlib"
    mc:Ignorable="d" d:DesignHeight="400" d:DesignWidth="800">
    <local:GridDemoModule.Resources>
        <ResourceDictionary>
            <ResourceDictionary.MergedDictionaries>
                <ResourceDictionary Source="/GridDemo;component/ModuleResources/InplaceLookUpEditResources.xaml" />
            </ResourceDictionary.MergedDictionaries>
            <dxdb:NWindDataLoader x:Key="NWindDataLoader" />
        </ResourceDictionary>
    </local:GridDemoModule.Resources>
    <dxdb:DemoModuleControl>
        <dxdb:DemoModuleControl.OptionsContent>
            <StackPanel MinWidth="250">
                <dx:GroupFrame Header="Properties" Margin="0,0,0,12">
                    <Grid>
                        <Grid.ColumnDefinitions>
                            <ColumnDefinition Width="Auto" />
                            <ColumnDefinition />
                        </Grid.ColumnDefinitions>
                        <Grid.RowDefinitions>
                            <RowDefinition />
                            <RowDefinition />
                            <RowDefinition />
                            <RowDefinition />
                        </Grid.RowDefinitions>
                        <dxe:CheckEdit Content="Show size grip" Grid.ColumnSpan="2" Grid.Row="0" Margin="0,0,0,4" Name="chkShowSizeGrip" IsChecked="True" />
                        <dxe:CheckEdit Content="Immediate pop-up" Grid.ColumnSpan="2" Grid.Row="1" Margin="0,0,0,4" Name="chkImmediatePopup" IsChecked="True" />
                        <dxe:CheckEdit Content="Allow auto complete" Grid.ColumnSpan="2" Grid.Row="2" Margin="0,0,0,4" Name="chkAllowAutoComplete" IsChecked="True" />
                    </Grid>
                </dx:GroupFrame>
            </StackPanel>
        </dxdb:DemoModuleControl.OptionsContent>
        <dxg:GridControl Name="grid" ItemsSource="{Binding Orders, Source={StaticResource NWindDataLoader}}">
            <dxg:GridControl.Columns>
                <dxg:GridColumn FieldName="OrderID" Header="ID" Width="50" MinWidth="30" />
                <dxg:GridColumn FieldName="CustomerID" Header="Customer" MinWidth="50" Width="180" HeaderTemplate="{StaticResource headerTemplate}">
                    <dxg:GridColumn.EditSettings>
                        <dxg:LookUpEditSettings ValueMember="CustomerID" DisplayMember="CompanyName" ItemsSource="{Binding Customers, Source={StaticResource NWindDataLoader}}" PopupContentTemplate="{StaticResource customerGridTemplate}" AutoPopulateColumns="False" IsPopupAutoWidth="False"
                                                AutoComplete="{Binding Path=IsChecked, ElementName=chkAllowAutoComplete, Mode=TwoWay}"
                                                ImmediatePopup="{Binding Path=IsChecked, ElementName=chkImmediatePopup, Mode=TwoWay}"
                                                ShowSizeGrip="{Binding Path=IsChecked, ElementName=chkShowSizeGrip}"
>
                        </dxg:LookUpEditSettings>
                    </dxg:GridColumn.EditSettings>
                </dxg:GridColumn>
                <dxg:GridColumn FieldName="EmployeeID" Header="Employee" MinWidth="50" HeaderTemplate="{StaticResource headerTemplate}">
                    <dxg:GridColumn.EditSettings>
                        <dxg:LookUpEditSettings ValueMember="EmployeeID" DisplayMember="LastName" ItemsSource="{Binding EmployeesNew, Source={StaticResource NWindDataLoader}}" PopupContentTemplate="{StaticResource employeeGridTemplate}" AutoPopulateColumns="False" IsPopupAutoWidth="False"
                                                AutoComplete="{Binding Path=IsChecked, ElementName=chkAllowAutoComplete, Mode=TwoWay}"
                                                ImmediatePopup="{Binding Path=IsChecked, ElementName=chkImmediatePopup, Mode=TwoWay}"
                                                ShowSizeGrip="{Binding Path=IsChecked, ElementName=chkShowSizeGrip}">
                        </dxg:LookUpEditSettings>
                    </dxg:GridColumn.EditSettings>
                </dxg:GridColumn>
                <dxg:GridColumn FieldName="OrderDate" MinWidth="30" />
                <dxg:GridColumn FieldName="RequiredDate" MinWidth="30" />
            </dxg:GridControl.Columns>
            <dxg:GridControl.View>
                <dxg:TableView Name="view" AutoWidth="true" />
            </dxg:GridControl.View>
        </dxg:GridControl>
    </dxdb:DemoModuleControl>
</local:GridDemoModule>!%using System;
using System.Windows.Controls;
using System.Windows.Data;
using DevExpress.Xpf.Grid;
using System.Collections;
using DevExpress.Xpf.Grid.LookUp;
using DevExpress.Xpf.DemoBase;
using System.Data;

namespace GridDemo {
    [CodeFile("ModuleResources/InplaceLookUpEditResources(.SL).xaml")]
    [CodeFile("ModuleResources/InplaceLookUpEditClasses.(cs)")]
    public partial class InplaceLookUpEdit : GridDemoModule {
        public InplaceLookUpEdit() {
            InitializeComponent();
        }
        protected override void RaiseModuleAppear() {
            base.RaiseModuleAppear();
            ShowLookUp();
        }
        protected override void Clear() {
            view.CloseEditor();
            base.Clear();
        }
        void ShowLookUp() {
            grid.CurrentColumn = grid.Columns["CustomerID"];
            view.ShowEditor();
            LookUpEdit lookUpEdit = view.ActiveEditor as LookUpEdit;
            if(lookUpEdit != null)
                lookUpEdit.ShowPopup();
        }
    }
}!�MSBAML```����OKmscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e0891&clr-namespace:System;assembly=mscorlibSystemD@GridDemo, Version=13.1.4.0, Culture=neutral, PublicKeyToken=null#clr-namespace:GridDemoGridDemoI2clr-namespace:System.Collections;assembly=mscorlibSystem.CollectionsGridDemo.LargeDataSet\XPresentationFramework, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35RNWindowsBase, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35WSPresentationCore, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35D9http://schemas.microsoft.com/winfx/2006/xaml/presentationRNSystem.Xaml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089:x,http://schemas.microsoft.com/winfx/2006/xaml6sys&clr-namespace:System;assembly=mscorliba]DevExpress.Xpf.Core.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a;dx2http://schemas.devexpress.com/winfx/2008/xaml/corefbDevExpress.Xpf.Grid.v13.1.Core, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49aa]DevExpress.Xpf.Grid.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49al	hDevExpress.Xpf.Grid.v13.1.Extensions, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a@dxg2http://schemas.devexpress.com/winfx/2008/xaml/grid	&localclr-namespace:GridDemo	?dxe5http://schemas.devexpress.com/winfx/2008/xaml/editorse
aDevExpress.Xpf.DemoBase.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49aAdxdb6http://schemas.devexpress.com/winfx/2008/xaml/demobase
Dcollections2clr-namespace:System.Collections;assembly=mscorlib
<dxb2http://schemas.devexpress.com/winfx/2008/xaml/barsDmc;http://schemas.openxmlformats.org/markup-compatibility/2006:d2http://schemas.microsoft.com/expression/blend/2008$
�Stretch=�$
�Stretch=��	Resources
�MergedDictionaries
�Source/)DevExpress.Xpf.Core.FormatStringConverter 
	converterFormatString countInfoTemplate%DevExpress.Xpf.Core.DXDockPanel�	Converter��$-'/GridDemo;component/Themes/generic.xaml?�%�&	&	7$	#,#����.R��.$	�150��.+���$
�Left=����*
Description+��$�Right=����*Value+8.�/
)DevExpress.Xpf.DemoBase.DemoModuleControlOptionsTopText$��Specify the number or Rows and Columns you’d like to view within the DXGrid. Group, filter and sort data to see how quickly the grid is able to shape information displayed within it.��OptionsContent��.+�$DevExpress.Xpf.Core.GroupFrame$
��Rows��.�("DevExpress.Xpf.Editors.ListBoxEdit-$�rowCountListBox��
SelectedIndex$1�ItemTemplate#[%DevExpress.Xpf.Editors.BaseEdit	
ShowBorder	.�Z�

StyleSettings
:4DevExpress.Xpf.Editors.RadioListBoxEditStyleSettingsItemsGridDemo.CountInfoValue$
1000�
Description$
Small��$10000�$
Medium��$100000�$
Large��$
1000000�$

Immense��$
��Columns��$�0,12,0,0q�.�-$�columnCountListBox��$1�#[	.�Z�
$50�$
Small��$	250�$
Medium��$	500�$
Large��$
1000�$

Immense���-$�setRowColumnCountButton��$�0,12,0,0q�$�22��.�ApplyContent.%	DevExpress.Xpf.Grid.GridControl	-$
�grid��$
�Stretch=�$
�Stretch=�	TotalSummary)
#DevExpress.Xpf.Grid.GridSummaryItem
)#DevExpress.Xpf.Grid.SummaryItemBaseSummaryType$Count=�	Alignment$Right=�	View#DevExpress.Xpf.Grid.TableView-$
�view��&
 DevExpress.Xpf.Grid.DataViewBase
ShowFixedTotalSummary.
AllowEditing.ShowAutoFilterRow.
ColumnMenuCustomizations4.DevExpress.Xpf.Bars.RemoveBarItemAndLinkAction+%DevExpress.Xpf.Bars.BarItemActionBaseItemName$BestFitColumns��!�<local:GridDemoModule x:Class="GridDemo.LargeDataSet"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:sys="clr-namespace:System;assembly=mscorlib"
    xmlns:dx="http://schemas.devexpress.com/winfx/2008/xaml/core"
    xmlns:dxg="http://schemas.devexpress.com/winfx/2008/xaml/grid"
    xmlns:local="clr-namespace:GridDemo"
 xmlns:dxe="http://schemas.devexpress.com/winfx/2008/xaml/editors"
    xmlns:dxdb="http://schemas.devexpress.com/winfx/2008/xaml/demobase"
 xmlns:collections="clr-namespace:System.Collections;assembly=mscorlib"
    xmlns:dxb="http://schemas.devexpress.com/winfx/2008/xaml/bars"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    mc:Ignorable="d" d:DesignHeight="400" d:DesignWidth="800"
 HorizontalAlignment="Stretch" VerticalAlignment="Stretch">

    <local:GridDemoModule.Resources>
        <ResourceDictionary>
            <ResourceDictionary.MergedDictionaries>
                <ResourceDictionary Source="/GridDemo;component/Themes/generic.xaml" />
            </ResourceDictionary.MergedDictionaries>
            <dx:FormatStringConverter x:Key="converter" FormatString="#,#" />
            <DataTemplate x:Key="countInfoTemplate">
                <dx:DXDockPanel LastChildFill="False" Width="150">
                    <TextBlock Text="{Binding Description}" dx:DXDockPanel.Dock="Left" />
                    <TextBlock Text="{Binding Value, Converter={StaticResource converter}}" dx:DXDockPanel.Dock="Right" />
                </dx:DXDockPanel>
            </DataTemplate>
        </ResourceDictionary>
    </local:GridDemoModule.Resources>
    <dxdb:DemoModuleControl>
        <dxdb:DemoModuleControl.OptionsTopText>
            Specify the number or Rows and Columns you’d like to view within the DXGrid.
            Group, filter and sort data to see how quickly the grid is able to shape information displayed within it.
        </dxdb:DemoModuleControl.OptionsTopText>
        <dxdb:DemoModuleControl.OptionsContent>
            <StackPanel>
                <dx:GroupFrame Header="Rows">
                    <dxe:ListBoxEdit Name="rowCountListBox" SelectedIndex="1" ItemTemplate="{StaticResource countInfoTemplate}" ShowBorder="False" Background="{x:Null}">
                        <dxe:ListBoxEdit.StyleSettings>
                            <dxe:RadioListBoxEditStyleSettings />
                        </dxe:ListBoxEdit.StyleSettings>
                        <dxe:ListBoxEdit.Items>
                            <local:CountInfo Value="1000" Description="Small" />
                            <local:CountInfo Value="10000" Description="Medium" />
                            <local:CountInfo Value="100000" Description="Large" />
                            <local:CountInfo Value="1000000" Description="Immense" />
                        </dxe:ListBoxEdit.Items>
                    </dxe:ListBoxEdit>
                </dx:GroupFrame>
                <dx:GroupFrame Header="Columns" Margin="0,12,0,0">
                    <dxe:ListBoxEdit Name="columnCountListBox" SelectedIndex="1" ItemTemplate="{StaticResource countInfoTemplate}" ShowBorder="False" Background="{x:Null}">
                        <dxe:ListBoxEdit.StyleSettings>
                            <dxe:RadioListBoxEditStyleSettings />
                        </dxe:ListBoxEdit.StyleSettings>
                        <dxe:ListBoxEdit.Items>
                            <local:CountInfo Value="50" Description="Small" />
                            <local:CountInfo Value="250" Description="Medium" />
                            <local:CountInfo Value="500" Description="Large" />
                            <local:CountInfo Value="1000" Description="Immense" />
                        </dxe:ListBoxEdit.Items>
                    </dxe:ListBoxEdit>
                </dx:GroupFrame>
                <Button Name="setRowColumnCountButton" Click="setRowColumnCountButton_Click" Margin="0,12,0,0" Height="22">Apply</Button>
            </StackPanel>
        </dxdb:DemoModuleControl.OptionsContent>
        <dxg:GridControl Name="grid" HorizontalAlignment="Stretch" VerticalAlignment="Stretch">
            <dxg:GridControl.TotalSummary>
                <dxg:GridSummaryItem SummaryType="Count" Alignment="Right"/>
            </dxg:GridControl.TotalSummary>
            <dxg:GridControl.View>
                <dxg:TableView ShowFixedTotalSummary="True" Name="view" AllowEditing="True" ShowAutoFilterRow="False" CustomBestFit="view_CustomBestFit">
                    <dxg:TableView.ColumnMenuCustomizations>
                        <dxb:RemoveBarItemAndLinkAction ItemName="BestFitColumns" />
                    </dxg:TableView.ColumnMenuCustomizations>
                </dxg:TableView>
            </dxg:GridControl.View>
        </dxg:GridControl>
    </dxdb:DemoModuleControl>
</local:GridDemoModule>!�using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using System.ComponentModel;
using System.Collections;
using DevExpress.Xpf.Editors.Settings;
using DevExpress.Xpf.Grid;
using DevExpress.Xpf.Editors;
using System.Threading;
using System.Windows.Threading;
using DevExpress.Utils;
using DevExpress.XtraGrid;
using DevExpress.Data.Browsing;
using DevExpress.Xpf.DemoBase;

namespace GridDemo {
    [CodeFile("Controls/OutlookDataGenerator.(cs)")]
    [CodeFile("ModuleResources/LargeDataSetClasses.(cs)")]
    public partial class LargeDataSet : GridDemoModule {
        VirtualList vList = new VirtualList();
        public LargeDataSet() {
            InitializeComponent();
            AssignDataSource();
        }

        void AssignDataSource() {
            setRowColumnCountButton.Cursor = Cursors.Wait;
            vList.RecordCount = ((CountInfo)rowCountListBox.SelectedItem).Value;
            vList.ColumnCount = ((CountInfo)columnCountListBox.SelectedItem).Value;
            grid.ItemsSource = null;
            grid.Columns.Clear();
            grid.Columns.BeginUpdate();
            PropertyDescriptorCollection properties = ((ITypedList)vList).GetItemProperties(null);
            foreach(PropertyDescriptor propertyDescriptor in properties) {
                GridColumn column = new GridColumn();
                column.FieldName = propertyDescriptor.Name;
                if(column.FieldName.Contains("Subject"))
                    column.EditSettings = new MemoEditSettings() {
                        PopupWidth = 300,
                        ShowIcon = false,
                        MemoTextWrapping=TextWrapping.Wrap,
                        MemoVerticalScrollBarVisibility = ScrollBarVisibility.Auto
                    };
                if(column.FieldName.Contains("Priority")) {
                    column.SortMode = ColumnSortMode.Value;
                }
                if(column.FieldName.Contains("Size")) {
                    column.BestFitArea = BestFitArea.Header;
                }
                column.AllowEditing = ((propertyDescriptor.Name == "ID(1)") ? DefaultBoolean.False : DefaultBoolean.Default);
                column.Header = ((propertyDescriptor.Name == "ID(1)") ? "ID(1)" : null);
                column.AllowColumnFiltering = ((propertyDescriptor.Name == "ID(1)") ? DefaultBoolean.False : DefaultBoolean.True);
                BaseEditSettings settings = CreateEditSettings(propertyDescriptor.Name);
                if(settings != null)
                    column.EditSettings = settings;
                grid.Columns.Add(column);
            }
            grid.Columns.EndUpdate();
            grid.ItemsSource = vList;
            Dispatcher.BeginInvoke(
                DispatcherPriority.Render,
            new Action(ClearCursorProperty));
        }
  void ClearCursorProperty() {
   setRowColumnCountButton.ClearValue(FrameworkElement.CursorProperty);
  }
        BaseEditSettings CreateEditSettings(string propertyName) {
            if(propertyName == "ID(1)")
                return new TextEditSettings() {
                    DisplayFormat = "#,0",
                    HorizontalContentAlignment = EditSettingsHorizontalAlignment.Right
                };
            if(propertyName.StartsWith("Size"))
                return new TextEditSettings() { Mask = "## ##0",
                                                MaskType = MaskType.Numeric,
                                                MaskUseAsDisplayFormat = true,
                                                HorizontalContentAlignment = EditSettingsHorizontalAlignment.Right
                };
            if(propertyName.StartsWith("Priority")) {
                return new ComboBoxEditSettings() {
                    ItemsSource = DevExpress.Data.Mask.EnumHelper.GetValues(typeof(Priority)),
                    IsTextEditable = false
                };
            }
            return null;
        }
        private void setRowColumnCountButton_Click(object sender, RoutedEventArgs e) {
            AssignDataSource();
        }

        private void view_CustomBestFit(object sender, CustomBestFitEventArgs e) {
            if(e.Column.FieldName != "ID(1)")
                return;
            List<int> largestIDHandles = new List<int>();
            for(int i = vList.Count - 1; i >= 0; i--) {
                int rowHanle = grid.GetRowHandleByListIndex(i);
                if(rowHanle != GridControl.InvalidRowHandle)
                    largestIDHandles.Add(rowHanle);
                if(largestIDHandles.Count >= 100)
                    break;
            }
            e.BestFitRows = largestIDHandles;
        }
    }
}!�MSBAML```����a]DevExpress.Xpf.Grid.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49ajKclr-namespace:DevExpress.Xpf.Grid.Themes;assembly=DevExpress.Xpf.Grid.v13.1DevExpress.Xpf.Grid.ThemesD@GridDemo, Version=13.1.4.0, Culture=neutral, PublicKeyToken=null#clr-namespace:GridDemoGridDemo5clr-namespace:GridDemo.ControlsGridDemo.ControlsOKmscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089I2clr-namespace:System.Collections;assembly=mscorlibSystem.Collections1&clr-namespace:System;assembly=mscorlibSystemGridDemo.LinqServerMode\XPresentationFramework, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35RNWindowsBase, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35WSPresentationCore, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35D9http://schemas.microsoft.com/winfx/2006/xaml/presentationRNSystem.Xaml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089:x,http://schemas.microsoft.com/winfx/2006/xamla]DevExpress.Xpf.Core.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a;dx2http://schemas.devexpress.com/winfx/2008/xaml/corefbDevExpress.Xpf.Grid.v13.1.Core, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49al	hDevExpress.Xpf.Grid.v13.1.Extensions, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a@dxg2http://schemas.devexpress.com/winfx/2008/xaml/grid	?dxe5http://schemas.devexpress.com/winfx/2008/xaml/editorsVdxgtKclr-namespace:DevExpress.Xpf.Grid.Themes;assembly=DevExpress.Xpf.Grid.v13.1"localclr-namespace:GridDemo.controlsclr-namespace:GridDemo.Controlse
aDevExpress.Xpf.DemoBase.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49aAdxdb6http://schemas.devexpress.com/winfx/2008/xaml/demobase
Dcollections2clr-namespace:System.Collections;assembly=mscorlib
0sys&clr-namespace:System;assembly=mscorlib
Dmc;http://schemas.openxmlformats.org/markup-compatibility/2006
:d2http://schemas.microsoft.com/expression/blend/2008
c_System.Windows.Interactivity, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35Bi:http://schemas.microsoft.com/expression/2010/interactivity�	Resources
�MergedDictionaries
�Source��$-'/GridDemo;component/Themes/generic.xaml?��$F@/GridDemo;component/ModuleResources/LinqServerModeTemplates.xaml?�%.�/
)DevExpress.Xpf.DemoBase.DemoModuleControl(!SupressGroupFramePaddingInOptions.OptionsContent��.+�& DevExpress.Xpf.Editors.CheckEdit-$�chkInstantFeedBack��	IsChecked$
TrueY�Content)#DevExpress.Xpf.Core.ObjectConverter$Enable Instant Feedback$�0,0,0,12q��-$�btnConfigure��$�Configuration...��$�22��$	�Top=�$�0,0,0,12q�$DevExpress.Xpf.Core.GroupFrame$��Wait Indicator Type��$�0,0,0,12q�y��*	IsChecked+�ElementName$chkInstantFeedBack��  BooleanToVisibilityConverter�	Converter#[.�("DevExpress.Xpf.Editors.ListBoxEdit-$�waitIndicatorList��%DevExpress.Xpf.Editors.BaseEdit	
ShowBorder	.$�0,0,30,0q��Z�
SelectedItem
�*WaitIndicatorType+$
view���Mode$
OneTime=�
StyleSettings:4DevExpress.Xpf.Editors.RadioListBoxEditStyleSettings
Items
+%DevExpress.Xpf.Grid.WaitIndicatorTypeDefault=�	Panel=�None=���
Custom��=	7DevExpress.Xpf.Core.ServerMode.LinqServerModeDataSource	-$�linqServerModeDataSource��	
KeyExpression$	OID��	ElementType-
'GridDemo.Controls.WpfServerSideGridTest"
	QueryableSource��Path$("DataContext.WpfServerSideGridTests�B<DevExpress.Xpf.Core.ServerMode.LinqInstantFeedbackDataSource-$#�linqInstantFeedbackDataSource��
KeyExpression$	OID��QueryableSource�$("DataContext.WpfServerSideGridTests�Content.%DevExpress.Xpf.Grid.GridControl-$
�grid��)
#DevExpress.Xpf.Grid.DataControlBase
DesignTimeDataObjectType"
Columns$DevExpress.Xpf.Grid.GridColumn-Name$colid��$DevExpress.Xpf.Grid.ColumnBase	FieldName$	OID��$DevExpress.Xpf.Grid.BaseColumn
Header$IDWidth$60��MinWidth$60��
AllowGrouping]YDevExpress.Data.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a5/DevExpress.Utils.Design.DefaultBooleanConverter$False-$
colFrom��$
From��
GroupInterval$Alphabetical=�
GroupIndex$1�-	$
colSubject��$
Subject��$	300��-
$
colSent��$
Sent��$80��$	DateMonth=�EditSettingsE?DevExpress.Xpf.Editors.Settings.Extension.DateSettingsExtensionE?DevExpress.Xpf.Editors.Settings.Extension.TextSettingsExtension 
DisplayFormat$ d��-$
colSize��$
Size��$60��-$colHasAttachment��$
HasAttachment��$35��'! HorizontalHeaderContentAlignment$!Center=� clipTemplate"HeaderTemplate#"[3-DevExpress.Xpf.Core.DXFrameworkContentElement#ToolTip$#Has Attachment��71DevExpress.Xpf.Editors.Settings.CheckEditSettings-
$
colDaysActive��$
DaysActive��$45��$UnboundType82DevExpress.Utils.Design.UnboundColumnTypeConverter$
$Integer#%AllowUnboundExpressionEditor%.&UnboundExpression$ &DateDiffDay([Sent], Now())�� daysActiveTemplate#"['GroupSummary')#DevExpress.Xpf.Grid.GridSummaryItem)#DevExpress.Xpf.Grid.SummaryItemBase(	FieldName$
(Size��)SummaryType$	)Sum=�$
(From��$)Count=�*TotalSummary*$
(From��$)Count=�+View+#DevExpress.Xpf.Grid.TableView-,Name$
,view��& DevExpress.Xpf.Grid.DataViewBase-WaitIndicatorType$-Panel=�.ShowTotalSummary../	AutoWidth/.0AllowEditing0.1ShowAutoFilterRow1.& DevExpress.Xpf.Grid.GridViewBase2ShowGroupedColumns2.-3&AllowHorizontalScrollingVirtualization3..(System.Windows.Interactivity.Interaction4Triggers4/)System.Windows.Interactivity.EventTrigger5	EventName$5BeforeModuleDisappear��.(System.Windows.Interactivity.TriggerBase6Actions.660System.Windows.Interactivity.InvokeCommandAction7Command7�$#linqInstantFeedbackDataSource��$DisposeCommand�!<local:GridDemoModule x:Class="GridDemo.LinqServerMode"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:dx="http://schemas.devexpress.com/winfx/2008/xaml/core"
    xmlns:dxg="http://schemas.devexpress.com/winfx/2008/xaml/grid"
 xmlns:dxe="http://schemas.devexpress.com/winfx/2008/xaml/editors"
    xmlns:dxgt="clr-namespace:DevExpress.Xpf.Grid.Themes;assembly=DevExpress.Xpf.Grid.v13.1"
    xmlns:local="clr-namespace:GridDemo"
    xmlns:controls="clr-namespace:GridDemo.Controls"
    xmlns:dxdb="http://schemas.devexpress.com/winfx/2008/xaml/demobase"
    xmlns:collections="clr-namespace:System.Collections;assembly=mscorlib"
    xmlns:sys="clr-namespace:System;assembly=mscorlib"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity"
    mc:Ignorable="d" d:DesignHeight="400" d:DesignWidth="800">

    <local:GridDemoModule.Resources>
        <ResourceDictionary>
            <ResourceDictionary.MergedDictionaries>
                <ResourceDictionary Source="/GridDemo;component/Themes/generic.xaml" />
                <ResourceDictionary Source="/GridDemo;component/ModuleResources/LinqServerModeTemplates.xaml" />
            </ResourceDictionary.MergedDictionaries>
        </ResourceDictionary>
    </local:GridDemoModule.Resources>
    <dxdb:DemoModuleControl SupressGroupFramePaddingInOptions="False">
        <dxdb:DemoModuleControl.OptionsContent>
            <StackPanel>
                <dxe:CheckEdit Name="chkInstantFeedBack" IsChecked="True" Content="Enable Instant Feedback" Margin="0,0,0,12" Checked="ChangeInstantFeedBack" Unchecked="ChangeInstantFeedBack" />
                <Button Name="btnConfigure" Content="Configuration..." Height="22" VerticalAlignment="Top" Margin="0,0,0,12" Click="Configure" />

                <dx:GroupFrame Header="Wait Indicator Type" Margin="0,0,0,12" Visibility="{Binding IsChecked, ElementName=chkInstantFeedBack, Converter={StaticResource BooleanToVisibilityConverter}}">
                    <dxe:ListBoxEdit Name="waitIndicatorList" Background="{x:Null}" ShowBorder="False" Margin="0,0,30,0" SelectedItem="{Binding WaitIndicatorType, ElementName=view, Mode=OneTime}" EditValueChanged="CustomizeWaitIndicator">
                        <dxe:ListBoxEdit.StyleSettings>
                            <dxe:RadioListBoxEditStyleSettings />
                        </dxe:ListBoxEdit.StyleSettings>
                        <dxe:ListBoxEdit.Items>
                            <dxg:WaitIndicatorType>Default</dxg:WaitIndicatorType>
                            <dxg:WaitIndicatorType>Panel</dxg:WaitIndicatorType>
                            <dxg:WaitIndicatorType>None</dxg:WaitIndicatorType>
                            <sys:String>Custom</sys:String>
                        </dxe:ListBoxEdit.Items>
                    </dxe:ListBoxEdit>
                </dx:GroupFrame>
                <dx:LinqServerModeDataSource Name="linqServerModeDataSource" KeyExpression="OID" ElementType="controls:WpfServerSideGridTest" QueryableSource="{Binding Path=DataContext.WpfServerSideGridTests}" />
                <dx:LinqInstantFeedbackDataSource Name="linqInstantFeedbackDataSource" KeyExpression="OID" QueryableSource="{Binding Path=DataContext.WpfServerSideGridTests}" />
            </StackPanel>
        </dxdb:DemoModuleControl.OptionsContent>
        <dxg:GridControl Name="grid" DesignTimeDataObjectType="controls:WpfServerSideGridTest">
            <dxg:GridControl.Columns>
                <dxg:GridColumn x:Name="colid" FieldName="OID" Header="ID" Width="60" MinWidth="60" AllowGrouping="False" />
                <dxg:GridColumn x:Name="colFrom" FieldName="From" GroupInterval="Alphabetical" GroupIndex="1" />
                <dxg:GridColumn x:Name="colSubject" FieldName="Subject" Width="300" />
                <dxg:GridColumn x:Name="colSent" FieldName="Sent" Width="80" GroupInterval="DateMonth" EditSettings="{dxe:DateSettings DisplayFormat=d}" />
                <dxg:GridColumn x:Name="colSize" FieldName="Size" Width="60" />
                <dxg:GridColumn x:Name="colHasAttachment" FieldName="HasAttachment" Width="35" HorizontalHeaderContentAlignment="Center" HeaderTemplate="{StaticResource clipTemplate}" ToolTip="Has Attachment">
                    <dxg:GridColumn.EditSettings>
                        <dxe:CheckEditSettings />
                    </dxg:GridColumn.EditSettings>
                </dxg:GridColumn>
                <dxg:GridColumn x:Name="colDaysActive" FieldName="DaysActive" Width="45" UnboundType="Integer" AllowUnboundExpressionEditor="True"
                                UnboundExpression="DateDiffDay([Sent], Now())" HeaderTemplate="{StaticResource daysActiveTemplate}" />
            </dxg:GridControl.Columns>
            <dxg:GridControl.GroupSummary>
                <dxg:GridSummaryItem FieldName="Size" SummaryType="Sum">
                </dxg:GridSummaryItem>
                <dxg:GridSummaryItem FieldName="From" SummaryType="Count" />
            </dxg:GridControl.GroupSummary>
            <dxg:GridControl.TotalSummary>
                <dxg:GridSummaryItem FieldName="From" SummaryType="Count" />
            </dxg:GridControl.TotalSummary>
            <dxg:GridControl.View>
                <dxg:TableView x:Name="view" WaitIndicatorType="Panel" ShowTotalSummary="True" AutoWidth="True" AllowEditing="False"
                               ShowAutoFilterRow="True" ShowGroupedColumns="True" AllowHorizontalScrollingVirtualization="False" />
            </dxg:GridControl.View>
        </dxg:GridControl>
        <i:Interaction.Triggers>
            <i:EventTrigger EventName="BeforeModuleDisappear">
                <i:InvokeCommandAction Command="{Binding ElementName=linqInstantFeedbackDataSource, Path=DisposeCommand}" />
            </i:EventTrigger>
        </i:Interaction.Triggers>
    </dxdb:DemoModuleControl>
</local:GridDemoModule>!using System;
using System.Linq;
using System.Windows;
using GridDemo.Controls;
using DevExpress.Xpf.DemoBase;
using DevExpress.Data.Linq;
using DevExpress.Xpf.Grid;

namespace GridDemo {
    [CodeFile("Controls/SQLConnectionWindow(.SL).xaml.(cs)")]
    [CodeFile("Controls/DataGridTestClasses.designer.(cs)")]
    [CodeFile("ModuleResources/LinqServerModeTemplates(.SL).xaml")]
    public partial class LinqServerMode : GridDemoModule {
        DataGridTestClassesDataContext linqDataContext;
        public LinqServerMode() {
            InitializeComponent();
            Loaded += new RoutedEventHandler(OnLoaded);

        }

        void CreateLinqDataContextIfNull() {
            DataContext = linqDataContext = new DataGridTestClassesDataContext(ServerModeOptions.SQLConnectionString);
        }

        void OnLoaded(object sender, RoutedEventArgs e) {
            if(DevExpress.Xpf.DemoBase.DemoTesting.DemoTestingHelper.IsTesting) {
                linqServerModeDataSource.QueryableSource = OutlookDataGenerator.CreateServerObjectsList(30000).AsQueryable();
                grid.ItemsSource = linqServerModeDataSource.Data;
                return;
            }
            if(String.IsNullOrEmpty(ServerModeOptions.SQLConnectionString))
                ShowConnectionWizard();
            ValidateSource();
        }
        void ChangeInstantFeedBack(object sender, RoutedEventArgs e) {
            ValidateSource();
        }
        void Configure(object sender, RoutedEventArgs e) {
            ShowConnectionWizard("Return");
            ValidateSource();
        }

        private void ShowConnectionWizard() {
            ShowConnectionWizard("Start Demo");
        }
        private void ShowConnectionWizard(string windowTitle) {
            DataContext = linqDataContext = null;
            SQLConnectionWindow window = new SQLConnectionWindow(windowTitle);
            window.Owner = Application.Current.MainWindow;
            window.ShowDialog();
            ServerModeOptions.SQLConnectionString = window.GetDataBaseConnectionString();
        }
        void ValidateSource() {
            if(!ServerModeOptions.IsCorrectConnection) {
                grid.ItemsSource = null;
                return;
            }
            CreateLinqDataContextIfNull();
            if(chkInstantFeedBack.IsChecked.Value)
                grid.ItemsSource = linqInstantFeedbackDataSource.Data;
            else
                grid.ItemsSource = linqServerModeDataSource.Data;
        }

        void CustomizeWaitIndicator(object sender, DevExpress.Xpf.Editors.EditValueChangedEventArgs e) {
            if(e.NewValue.ToString() == "Custom") {
                view.WaitIndicatorType = WaitIndicatorType.Panel;
                view.WaitIndicatorStyle = Resources["CustomWaitIndicatorStyle"] as Style;
            }
            else {
                view.ClearValue(GridViewBase.WaitIndicatorStyleProperty);
                view.WaitIndicatorType = (WaitIndicatorType)e.NewValue;
            }
        }
    }
}!+MSBAML```����D@GridDemo, Version=13.1.4.0, Culture=neutral, PublicKeyToken=null#clr-namespace:GridDemoGridDemo5clr-namespace:GridDemo.ControlsGridDemo.ControlsOKmscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089I2clr-namespace:System.Collections;assembly=mscorlibSystem.Collections1&clr-namespace:System;assembly=mscorlibSystem%GridDemo.LinqToEntityServerMode\XPresentationFramework, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35RNWindowsBase, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35WSPresentationCore, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35D9http://schemas.microsoft.com/winfx/2006/xaml/presentationRNSystem.Xaml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089:x,http://schemas.microsoft.com/winfx/2006/xamla]DevExpress.Xpf.Core.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a;dx2http://schemas.devexpress.com/winfx/2008/xaml/corefbDevExpress.Xpf.Grid.v13.1.Core, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49aa]DevExpress.Xpf.Grid.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49al	hDevExpress.Xpf.Grid.v13.1.Extensions, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a@dxg2http://schemas.devexpress.com/winfx/2008/xaml/grid	?dxe5http://schemas.devexpress.com/winfx/2008/xaml/editors"localclr-namespace:GridDemo.controlsclr-namespace:GridDemo.Controlse
aDevExpress.Xpf.DemoBase.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49aAdxdb6http://schemas.devexpress.com/winfx/2008/xaml/demobase
Dcollections2clr-namespace:System.Collections;assembly=mscorlib
0sys&clr-namespace:System;assembly=mscorlib
Dmc;http://schemas.openxmlformats.org/markup-compatibility/2006
:d2http://schemas.microsoft.com/expression/blend/2008
c_System.Windows.Interactivity, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35Bi:http://schemas.microsoft.com/expression/2010/interactivity�	Resources
�MergedDictionaries
�Source��$-'/GridDemo;component/Themes/generic.xaml?��$NH/GridDemo;component/ModuleResources/LinqToEntityServerModeTemplates.xaml?�%.�/
)DevExpress.Xpf.DemoBase.DemoModuleControl(!SupressGroupFramePaddingInOptions.OptionsContent��.+�& DevExpress.Xpf.Editors.CheckEdit-$�chkInstantFeedBack��	IsChecked$
TrueY�Content)#DevExpress.Xpf.Core.ObjectConverter$Enable Instant Feedback$�0,0,0,12q��-$�btnConfigure��$�Configuration...��$�22��$	�Top=�$�0,0,0,12q�$DevExpress.Xpf.Core.GroupFrame$��Wait Indicator Type��$�0,0,0,12q�y��*	IsChecked+�ElementName$chkInstantFeedBack��  BooleanToVisibilityConverter�	Converter#[.�("DevExpress.Xpf.Editors.ListBoxEdit-$�waitIndicatorList��%DevExpress.Xpf.Editors.BaseEdit	
ShowBorder	.$�0,0,30,0q��Z�
SelectedItem
�*WaitIndicatorType+$
view���Mode$
OneTime=�
StyleSettings:4DevExpress.Xpf.Editors.RadioListBoxEditStyleSettings
Items
+%DevExpress.Xpf.Grid.WaitIndicatorTypeDefault=�	Panel=�None=���
Custom��?	9DevExpress.Xpf.Core.ServerMode.EntityServerModeDataSource	-$ �entityServerModeDataSource��	
KeyExpression$	OID��	ElementType-
'GridDemo.Controls.EFServerModeTestClass"
	QueryableSource��Path$)#DataContext.EFServerModeTestClasses�D>DevExpress.Xpf.Core.ServerMode.EntityInstantFeedbackDataSource-$%�entityInstantFeedbackDataSource��
KeyExpression$	OID��QueryableSource�$)#DataContext.EFServerModeTestClasses�Content.%DevExpress.Xpf.Grid.GridControl-$
�grid��)
#DevExpress.Xpf.Grid.DataControlBase
DesignTimeDataObjectType"
Columns$DevExpress.Xpf.Grid.GridColumn-Name$colid��$DevExpress.Xpf.Grid.ColumnBase	FieldName$	OID��$DevExpress.Xpf.Grid.BaseColumn
Header$IDWidth$60��MinWidth$60��
AllowGrouping]YDevExpress.Data.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a5/DevExpress.Utils.Design.DefaultBooleanConverter$False-$
colFrom��$
From��-	$
colSubject��$
Subject��$	300��-
$
colSent��$
Sent��$80��
GroupInterval$	DateMonth=�EditSettingsE?DevExpress.Xpf.Editors.Settings.Extension.DateSettingsExtensionE?DevExpress.Xpf.Editors.Settings.Extension.TextSettingsExtension
DisplayFormat$d��-$
colSize��$
Size��$60��-$colHasAttachment��$
HasAttachment��$30��'  HorizontalHeaderContentAlignment$ Center=� clipTemplate!HeaderTemplate#![71DevExpress.Xpf.Editors.Settings.CheckEditSettings"GroupSummary")#DevExpress.Xpf.Grid.GridSummaryItem)#DevExpress.Xpf.Grid.SummaryItemBase#	FieldName$
#Size��$SummaryType$	$Sum=�$
#From��$$Count=�%TotalSummary%$
#From��$$Count=�&View&#DevExpress.Xpf.Grid.TableView-
'Name$
'view��& DevExpress.Xpf.Grid.DataViewBase(WaitIndicatorType$(Panel=�)ShowTotalSummary).*ShowAutoFilterRow*.+AllowEditing+.-,&AllowHorizontalScrollingVirtualization,.-	AutoWidth-..(System.Windows.Interactivity.Interaction.Triggers./)System.Windows.Interactivity.EventTrigger/	EventName$/BeforeModuleDisappear��.(System.Windows.Interactivity.TriggerBase0Actions.060System.Windows.Interactivity.InvokeCommandAction1Command1�$%entityInstantFeedbackDataSource��$DisposeCommand�!Z<local:GridDemoModule x:Class="GridDemo.LinqToEntityServerMode"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:dx="http://schemas.devexpress.com/winfx/2008/xaml/core"
    xmlns:dxg="http://schemas.devexpress.com/winfx/2008/xaml/grid"
 xmlns:dxe="http://schemas.devexpress.com/winfx/2008/xaml/editors"
    xmlns:local="clr-namespace:GridDemo"
    xmlns:controls="clr-namespace:GridDemo.Controls"
    xmlns:dxdb="http://schemas.devexpress.com/winfx/2008/xaml/demobase"
    xmlns:collections="clr-namespace:System.Collections;assembly=mscorlib"
    xmlns:sys="clr-namespace:System;assembly=mscorlib"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity"
    mc:Ignorable="d" d:DesignHeight="400" d:DesignWidth="800">

    <local:GridDemoModule.Resources>
        <ResourceDictionary>
            <ResourceDictionary.MergedDictionaries>
                <ResourceDictionary Source="/GridDemo;component/Themes/generic.xaml" />
                <ResourceDictionary Source="/GridDemo;component/ModuleResources/LinqToEntityServerModeTemplates.xaml" />
            </ResourceDictionary.MergedDictionaries>
        </ResourceDictionary>
    </local:GridDemoModule.Resources>
    <dxdb:DemoModuleControl SupressGroupFramePaddingInOptions="False">
        <dxdb:DemoModuleControl.OptionsContent>
            <StackPanel>
                <dxe:CheckEdit Name="chkInstantFeedBack" IsChecked="True" Content="Enable Instant Feedback" Margin="0,0,0,12" Checked="ChangeInstantFeedBack" Unchecked="ChangeInstantFeedBack" />
                <Button Name="btnConfigure" Content="Configuration..." Height="22" VerticalAlignment="Top" Margin="0,0,0,12" Click="Configure" />

                <dx:GroupFrame Header="Wait Indicator Type" Margin="0,0,0,12" Visibility="{Binding IsChecked, ElementName=chkInstantFeedBack, Converter={StaticResource BooleanToVisibilityConverter}}">
                    <dxe:ListBoxEdit Name="waitIndicatorList" Background="{x:Null}" ShowBorder="False" Margin="0,0,30,0" SelectedItem="{Binding WaitIndicatorType, ElementName=view, Mode=OneTime}" EditValueChanged="CustomizeWaitIndicator">
                        <dxe:ListBoxEdit.StyleSettings>
                            <dxe:RadioListBoxEditStyleSettings/>
                        </dxe:ListBoxEdit.StyleSettings>
                        <dxe:ListBoxEdit.Items>
                            <dxg:WaitIndicatorType>Default</dxg:WaitIndicatorType>
                            <dxg:WaitIndicatorType>Panel</dxg:WaitIndicatorType>
                            <dxg:WaitIndicatorType>None</dxg:WaitIndicatorType>
                            <sys:String>Custom</sys:String>
                        </dxe:ListBoxEdit.Items>
                    </dxe:ListBoxEdit>
                </dx:GroupFrame>
                <dx:EntityServerModeDataSource Name="entityServerModeDataSource" KeyExpression="OID" ElementType="controls:EFServerModeTestClass" QueryableSource="{Binding Path=DataContext.EFServerModeTestClasses}" />
                <dx:EntityInstantFeedbackDataSource Name="entityInstantFeedbackDataSource" KeyExpression="OID" QueryableSource="{Binding Path=DataContext.EFServerModeTestClasses}" />
            </StackPanel>
        </dxdb:DemoModuleControl.OptionsContent>
        <dxg:GridControl Name="grid" DesignTimeDataObjectType="controls:EFServerModeTestClass">
            <dxg:GridControl.Columns>
                <dxg:GridColumn x:Name="colid" FieldName="OID" Header="ID" Width="60" MinWidth="60" AllowGrouping="False" />
                <dxg:GridColumn x:Name="colFrom" FieldName="From" />
                <dxg:GridColumn x:Name="colSubject" FieldName="Subject" Width="300"/>
                <dxg:GridColumn x:Name="colSent" FieldName="Sent" Width="80" EditSettings="{dxe:DateSettings DisplayFormat=d}" GroupInterval="DateMonth" />
                <dxg:GridColumn x:Name="colSize" FieldName="Size" Width="60" />
                <dxg:GridColumn x:Name="colHasAttachment" FieldName="HasAttachment" Width="30" HorizontalHeaderContentAlignment="Center" HeaderTemplate="{StaticResource clipTemplate}">
                    <dxg:GridColumn.EditSettings>
                        <dxe:CheckEditSettings />
                    </dxg:GridColumn.EditSettings>
                </dxg:GridColumn>
            </dxg:GridControl.Columns>
            <dxg:GridControl.GroupSummary>
                <dxg:GridSummaryItem FieldName="Size" SummaryType="Sum">
                </dxg:GridSummaryItem>
                <dxg:GridSummaryItem FieldName="From" SummaryType="Count" />
            </dxg:GridControl.GroupSummary>
            <dxg:GridControl.TotalSummary>
                <dxg:GridSummaryItem FieldName="From" SummaryType="Count" />
            </dxg:GridControl.TotalSummary>
            <dxg:GridControl.View>
                <dxg:TableView x:Name="view" WaitIndicatorType="Panel" ShowTotalSummary="True" ShowAutoFilterRow="True" AllowEditing="False"
                               AllowHorizontalScrollingVirtualization="False" AutoWidth="True" />
            </dxg:GridControl.View>
        </dxg:GridControl>
        <i:Interaction.Triggers>
            <i:EventTrigger EventName="BeforeModuleDisappear">
                <i:InvokeCommandAction Command="{Binding ElementName=entityInstantFeedbackDataSource, Path=DisposeCommand}" />
            </i:EventTrigger>
        </i:Interaction.Triggers>
    </dxdb:DemoModuleControl>
</local:GridDemoModule>!Fusing System;
using System.Linq;
using System.Windows;
using GridDemo.Controls;
using DevExpress.Xpf.DemoBase;
using DevExpress.Xpf.Grid;

namespace GridDemo {
    [CodeFile("ModuleResources/LinqToEntityServerModeTemplates(.SL).xaml")]
    [CodeFile("ModuleResources/SharedResources(.SL).xaml")]
    [CodeFile("Controls/Converters.(cs)")]
    [CodeFile("Controls/EFServerModeModel1.Designer.(cs)")]
    public partial class LinqToEntityServerMode : GridDemoModule {
        DXGridServerModeDBEntities objectContext;
        public LinqToEntityServerMode() {
            InitializeComponent();
            Loaded += new RoutedEventHandler(OnLoaded);
        }

        void CreateObjectContextIfNull() {
            if(objectContext != null) return;
            System.Data.EntityClient.EntityConnectionStringBuilder builder = new System.Data.EntityClient.EntityConnectionStringBuilder();
            builder.ProviderConnectionString = ServerModeOptions.SQLConnectionString;
            builder.Metadata = @"res://*/Controls.EFServerModeModel.csdl|res://*/Controls.EFServerModeModel.ssdl|res://*/Controls.EFServerModeModel.msl";
            builder.Provider = "System.Data.SqlClient";
            DataContext = objectContext = new DXGridServerModeDBEntities(builder.ToString());
        }

        void OnLoaded(object sender, RoutedEventArgs e) {
            if(DevExpress.Xpf.DemoBase.DemoTesting.DemoTestingHelper.IsTesting) {
                entityServerModeDataSource.ElementType = typeof(WpfServerSideGridTest);
                entityServerModeDataSource.QueryableSource = OutlookDataGenerator.CreateServerObjectsList(30000).AsQueryable();
                grid.ItemsSource = entityServerModeDataSource.Data;
                return;
            }
            if(String.IsNullOrEmpty(ServerModeOptions.SQLConnectionString))
                ShowConnectionWizard();
            ValidateSource();
        }
        void ChangeInstantFeedBack(object sender, RoutedEventArgs e) {
            ValidateSource();
        }
        void Configure(object sender, RoutedEventArgs e) {
            ShowConnectionWizard("Return");
            ValidateSource();
        }

        void ShowConnectionWizard() {
            ShowConnectionWizard("Start Demo");
        }
        void ShowConnectionWizard(string windowTitle) {
            DataContext = objectContext = null;
            SQLConnectionWindow window = new SQLConnectionWindow(windowTitle);
            window.Owner = Application.Current.MainWindow;
            window.ShowDialog();
            ServerModeOptions.SQLConnectionString = window.GetDataBaseConnectionString();
        }

        void ValidateSource() {
            if(!ServerModeOptions.IsCorrectConnection) {
                grid.ItemsSource = null;
                return;
            }
            CreateObjectContextIfNull();
            if(chkInstantFeedBack.IsChecked.Value)
                grid.ItemsSource = entityInstantFeedbackDataSource.Data;
            else
                grid.ItemsSource = entityServerModeDataSource.Data;
        }

        void CustomizeWaitIndicator(object sender, DevExpress.Xpf.Editors.EditValueChangedEventArgs e) {
            if(e.NewValue.ToString() == "Custom") {
                view.WaitIndicatorType = WaitIndicatorType.Panel;
                view.WaitIndicatorStyle = Resources["CustomWaitIndicatorStyle"] as Style;
            } else {
                view.ClearValue(GridViewBase.WaitIndicatorStyleProperty);
                view.WaitIndicatorType = (WaitIndicatorType)e.NewValue;
            }
        }
    }
}![MSBAML```����D@GridDemo, Version=13.1.4.0, Culture=neutral, PublicKeyToken=null#clr-namespace:GridDemoGridDemoOKmscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089I2clr-namespace:System.Collections;assembly=mscorlibSystem.Collections1&clr-namespace:System;assembly=mscorlibSystemGridDemo.LiveData\XPresentationFramework, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35RNWindowsBase, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35WSPresentationCore, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35D9http://schemas.microsoft.com/winfx/2006/xaml/presentationRNSystem.Xaml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089:x,http://schemas.microsoft.com/winfx/2006/xamla]DevExpress.Xpf.Core.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a;dx2http://schemas.devexpress.com/winfx/2008/xaml/corefbDevExpress.Xpf.Grid.v13.1.Core, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49aa]DevExpress.Xpf.Grid.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49al	hDevExpress.Xpf.Grid.v13.1.Extensions, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a@dxg2http://schemas.devexpress.com/winfx/2008/xaml/grid	Gdxgt<http://schemas.devexpress.com/winfx/2008/xaml/grid/themekeys?dxe5http://schemas.devexpress.com/winfx/2008/xaml/editors"localclr-namespace:GridDemoe
aDevExpress.Xpf.DemoBase.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49aAdxdb6http://schemas.devexpress.com/winfx/2008/xaml/demobase
Dcollections2clr-namespace:System.Collections;assembly=mscorlib
0sys&clr-namespace:System;assembly=mscorlib
Dmc;http://schemas.openxmlformats.org/markup-compatibility/2006
:d2http://schemas.microsoft.com/expression/blend/2008
�	Resources
�MergedDictionaries
�Source��$@:/GridDemo;component/ModuleResources/LiveDataTemplates.xaml?�%.�/
)DevExpress.Xpf.DemoBase.DemoModuleControl(!SupressGroupFramePaddingInOptions.OptionsContent��.�����Orientation$Vertical=�$�0,0,0,12q�.+�& DevExpress.Xpf.Editors.CheckEdit-Name$chkAllowUpdating��$
�0,0,0,4q�Content)#DevExpress.Xpf.Core.ObjectConverter$Allow Updating$DevExpress.Xpf.Core.GroupFrame$��Update Mode��$�0,0,0,12q�.���$Vertical=�.+�("DevExpress.Xpf.Editors.ListBoxEdit-Name$updateModeList��$�0,0,30,0q�%DevExpress.Xpf.Editors.BaseEdit	
ShowBorder	.�Z�

StyleSettings
:4DevExpress.Xpf.Editors.RadioListBoxEditStyleSettingsItems��Add, Remove, Update����Add, Remove����Update Only��+
%DevExpress.Xpf.DemoBase.SliderControl-
Header$Max Process Count��$�0,0,0,12q�
Minimum$
10Q�Maximum$
1000Q�	SmallStep$5Q�	LargeStep$50Q�	EditValue��Path$!DataContext.ProcessMaxCount��Mode$TwoWay=�$Update Interval��$�0,0,0,12q�
UOM$
(ms)��$
0Q�$
1000Q�$50Q�$50Q��$ DataContext.UpdateInterval�$TwoWay=�$History Update Interval��$
(ms)��$�0,0,0,12q�$	
200Q�$
5000Q�$10Q�$	100Q��$'!DataContext.UpdateHistoryInterval�$TwoWay=�$��Animation options��.���.+�-$�memoryUsageCheckBox��	IsChecked$
TrueY�$
�0,0,0,4q�$Memory Usage animation-$�cpuUsageCheckBox��$
TrueY�$
�0,0,0,4q�$CPU Usage animation-$�newRowCheckBox��$
TrueY�$
�0,0,0,4q�$New row animation-$�deleteRowCheckBox��$
TrueY�$
�0,0,0,0q�$Delete row animationContent.%	DevExpress.Xpf.Grid.GridControl	-$
�grid��$�0�)
#DevExpress.Xpf.Grid.DataControlBase
DesignTimeDataObjectTypeGridDemo.ProcessInfo"	Columns$DevExpress.Xpf.Grid.GridColumn$
DevExpress.Xpf.Grid.ColumnBase
	FieldName$	PID��$DevExpress.Xpf.Grid.BaseColumnWidth$50��
AllowResizing]YDevExpress.Data.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a5/DevExpress.Utils.Design.DefaultBooleanConverter$False
FixedWidth.$
Name��$	100��.$MemoryUsage�� memUsageTemplate
CellTemplate#[$CpuUsage�� progressTemplate#[$
History�� historyTemplate#[
AllowColumnFiltering$False$AnimationElement��
UnboundType82DevExpress.Utils.Design.UnboundColumnTypeConverter$Object Visible .!
ShowInColumnChooser!.$False"	TotalSummary")#DevExpress.Xpf.Grid.GridSummaryItem)#DevExpress.Xpf.Grid.SummaryItemBase#	FieldName$	#PID��$SummaryType$$Count=�%
DisplayFormat$%Process Count = {0}��&	Alignment$&Right=�$#MemoryUsage��$	$Sum=�$ %Total Memory Usage = {0} K��$
&Left=�'	GroupSummary'$	#PID��$$Count=�$#MemoryUsage��$	$Sum=�(	View(#DevExpress.Xpf.Grid.TableView-	$
�view��& DevExpress.Xpf.Grid.DataViewBase)NavigationStyle$	)Row=�*RowMinHeight$*0Q�+	AutoWidth+.,ShowFixedTotalSummary,. rowTemplate-DataRowTemplate#-[& DevExpress.Xpf.Grid.GridViewBase .UseAnimationWhenExpanding..!�<local:GridDemoModule x:Class="GridDemo.LiveData"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:dx="http://schemas.devexpress.com/winfx/2008/xaml/core"
    xmlns:dxg="http://schemas.devexpress.com/winfx/2008/xaml/grid"
    xmlns:dxgt="http://schemas.devexpress.com/winfx/2008/xaml/grid/themekeys"
    xmlns:dxe="http://schemas.devexpress.com/winfx/2008/xaml/editors"
    xmlns:local="clr-namespace:GridDemo"
    xmlns:dxdb="http://schemas.devexpress.com/winfx/2008/xaml/demobase"
    xmlns:collections="clr-namespace:System.Collections;assembly=mscorlib"
    xmlns:sys="clr-namespace:System;assembly=mscorlib"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    mc:Ignorable="d" d:DesignHeight="400" d:DesignWidth="800">
    <local:GridDemoModule.Resources>
        <ResourceDictionary>
            <ResourceDictionary.MergedDictionaries>
                <ResourceDictionary Source="/GridDemo;component/ModuleResources/LiveDataTemplates.xaml" />
            </ResourceDictionary.MergedDictionaries>
        </ResourceDictionary>
    </local:GridDemoModule.Resources>
    <dxdb:DemoModuleControl SupressGroupFramePaddingInOptions="False">
        <dxdb:DemoModuleControl.OptionsContent>
            <ContentControl>
                <StackPanel Orientation="Vertical" Margin="0,0,0,12">
                    <dxe:CheckEdit x:Name="chkAllowUpdating" Margin="0,0,0,4" Content="Allow Updating" Checked="CheckBox_Checked" Unchecked="CheckBox_Unchecked" />
                    <dx:GroupFrame Header="Update Mode" Margin="0,0,0,12">
                        <StackPanel Orientation="Vertical">
                            <dxe:ListBoxEdit Margin="0,0,30,0" ShowBorder="False" x:Name="updateModeList" EditValueChanged="updateModeList_EditValueChanged" Background="{x:Null}">
                                <dxe:ListBoxEdit.StyleSettings>
                                    <dxe:RadioListBoxEditStyleSettings />
                                </dxe:ListBoxEdit.StyleSettings>
                                <dxe:ListBoxEdit.Items>
                                    <sys:String>Add, Remove, Update</sys:String>
                                    <sys:String>Add, Remove</sys:String>
                                    <sys:String>Update Only</sys:String>
                                </dxe:ListBoxEdit.Items>
                            </dxe:ListBoxEdit>
                        </StackPanel>
                    </dx:GroupFrame>
                    <dxdb:SliderControl Header="Max Process Count" Margin="0,0,0,12" EditValue="{Binding Path=DataContext.ProcessMaxCount, Mode=TwoWay}" Minimum="10" Maximum="1000" SmallStep="5" LargeStep="50" ValueChanged="maxCountSlider_ValueChanged" />
                    <dxdb:SliderControl Header="Update Interval" Margin="0,0,0,12" UOM="(ms)" EditValue="{Binding Path=DataContext.UpdateInterval, Mode=TwoWay}" Minimum="0" Maximum="1000" SmallStep="50" LargeStep="50" />
                    <dxdb:SliderControl Header="History Update Interval" UOM="(ms)" Margin="0,0,0,12" EditValue="{Binding Path=DataContext.UpdateHistoryInterval, Mode=TwoWay}" Minimum="200" Maximum="5000" SmallStep="10" LargeStep="100" />
                    <dx:GroupFrame Header="Animation options">
                        <StackPanel>
                            <dxe:CheckEdit Name="memoryUsageCheckBox" IsChecked="True" Margin="0,0,0,4" Content="Memory Usage animation" />
                            <dxe:CheckEdit Name="cpuUsageCheckBox" IsChecked="True" Margin="0,0,0,4" Content="CPU Usage animation" />
                            <dxe:CheckEdit Name="newRowCheckBox" IsChecked="True" Margin="0,0,0,4" Content="New row animation" />
                            <dxe:CheckEdit Name="deleteRowCheckBox" IsChecked="True" Margin="0,0,0,0" Content="Delete row animation" />
                        </StackPanel>
                    </dx:GroupFrame>
                </StackPanel>
            </ContentControl>
        </dxdb:DemoModuleControl.OptionsContent>
        <dxg:GridControl Name="grid" Grid.Column="0" CustomUnboundColumnData="grid_CustomUnboundColumnData" DesignTimeDataObjectType="local:ProcessInfo">
            <dxg:GridControl.Columns>
                <dxg:GridColumn FieldName="PID" Width="50" AllowResizing="False" FixedWidth="True" />
                <dxg:GridColumn FieldName="Name" Width="100" FixedWidth="True" />
                <dxg:GridColumn FieldName="MemoryUsage" CellTemplate="{StaticResource memUsageTemplate}" />
                <dxg:GridColumn FieldName="CpuUsage" CellTemplate="{StaticResource progressTemplate}" />
                <dxg:GridColumn FieldName="History" CellTemplate="{StaticResource historyTemplate}" AllowColumnFiltering="False" />
                <dxg:GridColumn FieldName="AnimationElement" UnboundType="Object" Visible="False" ShowInColumnChooser="False" AllowColumnFiltering="False" />
            </dxg:GridControl.Columns>
            <dxg:GridControl.TotalSummary>
                <dxg:GridSummaryItem FieldName="PID" SummaryType="Count" DisplayFormat="Process Count = {0}" Alignment="Right"/>
                <dxg:GridSummaryItem FieldName="MemoryUsage" SummaryType="Sum" DisplayFormat="Total Memory Usage = {0} K" Alignment="Left"/>
            </dxg:GridControl.TotalSummary>
            <dxg:GridControl.GroupSummary>
                <dxg:GridSummaryItem FieldName="PID" SummaryType="Count"/>
                <dxg:GridSummaryItem FieldName="MemoryUsage" SummaryType="Sum"/>
            </dxg:GridControl.GroupSummary>
            <dxg:GridControl.View>
                <dxg:TableView NavigationStyle="Row" RowMinHeight="0" AutoWidth="True" Name="view" ShowFixedTotalSummary="True" DataRowTemplate="{StaticResource rowTemplate}" UseAnimationWhenExpanding="False" />
            </dxg:GridControl.View>
        </dxg:GridControl>
    </dxdb:DemoModuleControl>
</local:GridDemoModule>!eusing System;
using System.Windows;
using DevExpress.Xpf.DemoBase;
using DevExpress.Xpf.Grid;

namespace GridDemo {
    [CodeFile("ModuleResources/LiveDataClasses.(cs)")]
    [CodeFile("Controls/Converters.(cs)")]
    [CodeFile("ModuleResources/LiveDataTemplates(.SL).xaml")]
    public partial class LiveData : GridDemoModule {
        ProcessGenerator generator;
        public LiveData() {
            InitializeComponent();
            generator = new ProcessGenerator(this);
            generator.Initialize();
            grid.AllowLiveDataShaping = true;
            grid.ItemsSource = generator.Processes;
            grid.DataContext = generator;
            updateModeList.SelectedIndex = 0;
            chkAllowUpdating.IsChecked = true;
        }
        private void CheckBox_Checked(object sender, RoutedEventArgs e) {
            generator.Start();
        }
        private void CheckBox_Unchecked(object sender, RoutedEventArgs e) {
            generator.Stop();
        }
        private void maxCountSlider_ValueChanged(object sender, EventArgs e) {
            if(generator != null)
                generator.ProcessMinCount = Math.Max(5, generator.ProcessMaxCount - 15);
        }

        private void grid_CustomUnboundColumnData(object sender, GridColumnDataEventArgs e) {
            if(e.Column != null || e.Column.FieldName == "AnimationElement") {
                e.Value = generator.GetAnimationElement(generator.Processes[e.ListSourceRowIndex]);
            }
        }
        protected override void Clear() {
            base.Clear();
            generator.Stop();
        }
        private void updateModeList_EditValueChanged(object sender, DevExpress.Xpf.Editors.EditValueChangedEventArgs e) {
            generator.UpdateMode = (ProcessGenerator.ProcessUpdateMode)updateModeList.SelectedIndex;
        }
    }
}!�MSBAML```����D@GridDemo, Version=13.1.4.0, Culture=neutral, PublicKeyToken=null'clr-namespace:CommonDemo
CommonDemo'clr-namespace:CommonDemo
CommonDemoOKmscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e0891&clr-namespace:System;assembly=mscorlibSystemI2clr-namespace:System.Collections;assembly=mscorlibSystem.CollectionsCommonDemo.LookUpEdit\XPresentationFramework, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35RNWindowsBase, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35WSPresentationCore, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35D9http://schemas.microsoft.com/winfx/2006/xaml/presentationRNSystem.Xaml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089:x,http://schemas.microsoft.com/winfx/2006/xamla]DevExpress.Xpf.Core.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a;dx2http://schemas.devexpress.com/winfx/2008/xaml/corefbDevExpress.Xpf.Grid.v13.1.Core, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49aa]DevExpress.Xpf.Grid.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49al	hDevExpress.Xpf.Grid.v13.1.Extensions, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a@dxg2http://schemas.devexpress.com/winfx/2008/xaml/grid	?dxe5http://schemas.devexpress.com/winfx/2008/xaml/editorse
aDevExpress.Xpf.DemoBase.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49aAdxdb6http://schemas.devexpress.com/winfx/2008/xaml/demobase
%commonclr-namespace:CommonDemo
%dxdemoclr-namespace:CommonDemo
0sys&clr-namespace:System;assembly=mscorlib
Dmc;http://schemas.openxmlformats.org/markup-compatibility/2006
:d2http://schemas.microsoft.com/expression/blend/2008
Dcollections2clr-namespace:System.Collections;assembly=mscorlib
�	Resources
�MergedDictionaries
�Source��$1+../ModuleResources/LookUpEditTemplates.xaml?�%.�/
)DevExpress.Xpf.DemoBase.DemoModuleControl�DataContext��Path$ProductsNew� NWindDataLoader
�Source#[OptionsContent��$	�250��.+�$DevExpress.Xpf.Core.GroupFrame$��Editor Properties��$�0,0,0,12q�.���ColumnDefinitions��$
�Auto����RowDefinitions�������.+���$��Edit Value:��$�Center=�$
�0,0,6,4q�%DevExpress.Xpf.Editors.TextEdit%DevExpress.Xpf.Editors.BaseEdit	
IsReadOnly	.$�1�$
�0,0,0,4q�)#DevExpress.Xpf.Editors.TextEditBase
Text
�$	EditValue��ElementName$
lookUpEdit���UpdateSourceTrigger$PropertyChanged=���$��Display Member:��$��1�$�Center=�$
�0,0,6,4q�-
Name$
txtDisplayMember��$��1�$�1�$
�0,0,0,4q�	.$
ProductName����$��
Value Member:��$��2�$�Center=�$
�0,0,6,4q�-$
txtValueMember��	.$
	ProductID��$��2�$�1�$
�0,0,0,4q�& DevExpress.Xpf.Editors.CheckEditContent)#DevExpress.Xpf.Core.ObjectConverter$Show Size Grip$�2�$��3�$
�0,0,0,4q�	IsChecked�$ShowSizeGrip��Mode$TwoWay=�$Immediate Popup$�2�$��5�$
�0,0,0,4q��$ImmediatePopup�$TwoWay=�-Name$chProcessNewValue��$#Allow Processing of New Value$�2�$��6�$
�0,0,0,4q�$��Search Properties��$�0,0,0,12q�.����$
�Auto�������.+�$Allow Auto Complete$�2�$��0�$
�0,0,0,4q�	EditValue�$AutoComplete�$TwoWay=�$!Allow Incremental Filtering$�2�$��1�$
�0,0,0,4q��$IncrementalFiltering�$TwoWay=���$��Auto Search Text:��$�Center=�$��2�$�0�$
�0,0,6,4q�	.$��2�$�1�$
�0,0,0,4q��$AutoSearchText�$OneWay=�Content.�$�48,40,48,48q��$��0.25*��$��0.75*���$�*���$	�300���$�*�.+�$ ��Multi-Column Lookup Editor��$��0�$�1�$	�Top=�.�+%DevExpress.Xpf.Grid.LookUp.LookUpEdit-$�
lookUpEdit��$�Center=�*	$DevExpress.Xpf.Editors.PopupBaseEdit	ShowSizeGrip$
TrueY�+
%DevExpress.Xpf.Editors.LookUpEditBase

SelectedIndex$1�AutoPopulateColumns. gridTemplate	PopupContentTemplate#[IsPopupAutoWidth.	
PopupMaxWidth$	600Q�
ItemsSource�

DisplayMember�$	EditValue�$txtDisplayMember��
ValueMember�$	EditValue�$txtValueMember��!�<common:CommonDemoModule x:Class="CommonDemo.LookUpEdit"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:dx="http://schemas.devexpress.com/winfx/2008/xaml/core"
    xmlns:dxg="http://schemas.devexpress.com/winfx/2008/xaml/grid"
 xmlns:dxe="http://schemas.devexpress.com/winfx/2008/xaml/editors"
    xmlns:dxdb="http://schemas.devexpress.com/winfx/2008/xaml/demobase"
    xmlns:common="clr-namespace:CommonDemo"
    xmlns:dxdemo="clr-namespace:CommonDemo"
    xmlns:sys="clr-namespace:System;assembly=mscorlib"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:collections="clr-namespace:System.Collections;assembly=mscorlib"
    mc:Ignorable="d" d:DesignHeight="400" d:DesignWidth="800">
    <common:CommonDemoModule.Resources>
        <ResourceDictionary>
            <ResourceDictionary.MergedDictionaries>
                <ResourceDictionary Source="../ModuleResources/LookUpEditTemplates.xaml" />
            </ResourceDictionary.MergedDictionaries>
        </ResourceDictionary>
    </common:CommonDemoModule.Resources>
    <dxdb:DemoModuleControl DataContext="{Binding Path=ProductsNew, Source={StaticResource NWindDataLoader}}">
        <dxdb:DemoModuleControl.OptionsContent>
            <StackPanel MinWidth="250">
                <dx:GroupFrame Header="Editor Properties" Margin="0,0,0,12">
                    <Grid>
                        <Grid.ColumnDefinitions>
                            <ColumnDefinition Width="Auto"/>
                            <ColumnDefinition/>
                        </Grid.ColumnDefinitions>
                        <Grid.RowDefinitions>
                            <RowDefinition/>
                            <RowDefinition/>
                            <RowDefinition/>
                            <RowDefinition/>
                            <RowDefinition/>
                            <RowDefinition/>
                            <RowDefinition/>
                        </Grid.RowDefinitions>
                        <TextBlock Text="Edit Value:" VerticalAlignment="Center" Margin="0,0,6,4"/>
                        <dxe:TextEdit IsReadOnly="True" Grid.Column="1" Margin="0,0,0,4" >
                            <dxe:TextEdit.Text>
                                <Binding Path="EditValue" ElementName="lookUpEdit">
                                    <Binding.UpdateSourceTrigger>PropertyChanged</Binding.UpdateSourceTrigger>
                                </Binding>
                            </dxe:TextEdit.Text>
                        </dxe:TextEdit>
                        <TextBlock Text="Display Member:" Grid.Row="1" VerticalAlignment="Center" Margin="0,0,6,4"/>
                        <dxe:TextEdit x:Name="txtDisplayMember" Grid.Row="1" Grid.Column="1" Margin="0,0,0,4" IsReadOnly="True" Text="ProductName"/>
                        <TextBlock Text="Value Member:" Grid.Row="2" VerticalAlignment="Center" Margin="0,0,6,4"/>
                        <dxe:TextEdit x:Name="txtValueMember" IsReadOnly="true" Text="ProductID" Grid.Row="2" Grid.Column="1" Margin="0,0,0,4"/>
                        <dxe:CheckEdit Content="Show Size Grip" Grid.ColumnSpan="2" Grid.Row="3" Margin="0,0,0,4" IsChecked="{Binding Path=ShowSizeGrip, Mode=TwoWay}"/>
                        <dxe:CheckEdit Content="Immediate Popup" Grid.ColumnSpan="2" Grid.Row="5" Margin="0,0,0,4" IsChecked="{Binding Path=ImmediatePopup, Mode=TwoWay}"/>
                        <dxe:CheckEdit Content="Allow Processing of New Value" x:Name="chProcessNewValue" Grid.ColumnSpan="2" Grid.Row="6" Margin="0,0,0,4" />
                    </Grid>
                </dx:GroupFrame>
                <dx:GroupFrame Header="Search Properties" Margin="0,0,0,12" >
                    <Grid>
                        <Grid.ColumnDefinitions>
                            <ColumnDefinition Width="Auto"/>
                            <ColumnDefinition/>
                        </Grid.ColumnDefinitions>
                        <Grid.RowDefinitions>
                            <RowDefinition/>
                            <RowDefinition/>
                            <RowDefinition />
                            <RowDefinition />
                        </Grid.RowDefinitions>
                        <dxe:CheckEdit Content="Allow Auto Complete" Grid.ColumnSpan="2" Grid.Row="0" Margin="0,0,0,4" EditValue="{Binding Path=AutoComplete, Mode=TwoWay}" />
                        <dxe:CheckEdit Content="Allow Incremental Filtering" Grid.ColumnSpan="2" Grid.Row="1" Margin="0,0,0,4" EditValue="{Binding Path=IncrementalFiltering, Mode=TwoWay}"/>
                        <TextBlock Text="Auto Search Text:" VerticalAlignment="Center" Grid.Row="2" Grid.Column="0" Margin="0,0,6,4" />
                        <dxe:TextEdit IsReadOnly="True" Grid.Row="2" Grid.Column="1" EditValue="{Binding Path=AutoSearchText, Mode=OneWay}" Margin="0,0,0,4"/>
                    </Grid>
                </dx:GroupFrame>
            </StackPanel>
        </dxdb:DemoModuleControl.OptionsContent>
        <Grid Margin="48,40,48,48">
            <Grid.RowDefinitions>
                <RowDefinition Height="0.25*"/>
                <RowDefinition Height="0.75*"/>
            </Grid.RowDefinitions>
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="*"/>
                <ColumnDefinition Width="300"/>
                <ColumnDefinition Width="*"/>
            </Grid.ColumnDefinitions>
            <dx:GroupFrame Header="Multi-Column Lookup Editor" Grid.Row="0" Grid.Column="1" VerticalAlignment="Top">
                <dxg:LookUpEdit
                    Name="lookUpEdit"
                    VerticalAlignment="Center"
                    ShowSizeGrip="True"
                    SelectedIndex="1"
                    AutoPopulateColumns="False"
                    PopupContentTemplate="{StaticResource gridTemplate}"
                    IsPopupAutoWidth="False"
                    ProcessNewValue="lookUpEdit_ProcessNewValue"
                    ItemsSource="{Binding}"
                    DisplayMember="{Binding Path=EditValue, ElementName=txtDisplayMember}"
                    ValueMember="{Binding Path=EditValue, ElementName=txtValueMember}" PopupMaxWidth="600">
                </dxg:LookUpEdit>
            </dx:GroupFrame>
        </Grid>
    </dxdb:DemoModuleControl>
</common:CommonDemoModule>!
using System;
using System.Windows;
using System.Windows.Controls;
using DevExpress.Xpf.DemoBase;
using System.Collections;
using DevExpress.Xpf.Core;
using DevExpress.Utils;
using System.Data;
using DevExpress.Xpf.Editors;


namespace CommonDemo {
   [CodeFile("ModuleResources/LookUpEditTemplates(.SL).xaml")]
    public partial class LookUpEdit : CommonDemoModule {
        NWindDataLoader NWind { get; set; }
        string GenericXamlName { get { return "Generic.xaml"; } }
        DataView Categories { get { return (DataView)NWind.Categories; } }
        DataView Products { get { return (DataView)lookUpEdit.DataContext; } }
        int NewItemRowID { get { return Products.Count + 1; } }
        public LookUpEdit() {
            Resources.MergedDictionaries.Add(new ResourceDictionary() { Source = new Uri(string.Format("/{0};component/Themes/{1}", AssemblyHelper.GetPartialName(typeof(LookUpEdit).Assembly), GenericXamlName), UriKind.Relative) });
            InitializeComponent();
            NWind = Resources["NWindDataLoader"] as NWindDataLoader;
        }
        Control control;
        private void lookUpEdit_ProcessNewValue(DependencyObject sender, DevExpress.Xpf.Editors.ProcessNewValueEventArgs e) {
            if(!(bool)chProcessNewValue.IsChecked)
                return;

            control = new ContentControl { Template = (ControlTemplate)Resources["addNewRecordTemplate"], Tag = e };
            Products.BeginInit();
            DataRowView row = Products.AddNew();
            row["ProductName"] = e.DisplayText;

            control.DataContext = row;
            FrameworkElement owner = sender as FrameworkElement;
            DialogClosedDelegate closeHandler = CloseAddNewRecordHandler;

            FloatingContainer.ShowDialogContent(control, owner, Size.Empty, new FloatingContainerParameters()
            {
                Title = "Add New Record",
                AllowSizing = false,
                ClosedDelegate = closeHandler,
                ContainerFocusable = false,
                ShowModal = true
            });

            e.PostponedValidation = true;
            e.Handled = true;
        }

        void CloseAddNewRecordHandler(bool? close) {
            DataRowView row = (DataRowView)control.DataContext;
            if(close == null || !(bool)close)
                row.CancelEdit();
            Products.EndInit();
            control = null;
        }
        protected override object GetModuleDataContext() {
            return lookUpEdit;
        }
    }
}!�MSBAML```����D@GridDemo, Version=13.1.4.0, Culture=neutral, PublicKeyToken=null#clr-namespace:GridDemoGridDemoOKmscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089I2clr-namespace:System.Collections;assembly=mscorlibSystem.Collections1&clr-namespace:System;assembly=mscorlibSystemGridDemo.MasterDetailView\XPresentationFramework, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35RNWindowsBase, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35WSPresentationCore, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35D9http://schemas.microsoft.com/winfx/2006/xaml/presentationRNSystem.Xaml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089:x,http://schemas.microsoft.com/winfx/2006/xamla]DevExpress.Xpf.Core.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a;dx2http://schemas.devexpress.com/winfx/2008/xaml/corefbDevExpress.Xpf.Grid.v13.1.Core, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49aa]DevExpress.Xpf.Grid.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49al	hDevExpress.Xpf.Grid.v13.1.Extensions, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a@dxg2http://schemas.devexpress.com/winfx/2008/xaml/grid	&localclr-namespace:GridDemo	e
aDevExpress.Xpf.DemoBase.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49aAdxdb6http://schemas.devexpress.com/winfx/2008/xaml/demobase
?dxe5http://schemas.devexpress.com/winfx/2008/xaml/editorsGdxgt<http://schemas.devexpress.com/winfx/2008/xaml/grid/themekeysDcollections2clr-namespace:System.Collections;assembly=mscorlibDmc;http://schemas.openxmlformats.org/markup-compatibility/2006:d2http://schemas.microsoft.com/expression/blend/2008c_System.Windows.Interactivity, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35Bi:http://schemas.microsoft.com/expression/2010/interactivity0sys&clr-namespace:System;assembly=mscorlib$
�Stretch=�$
�Stretch=��	Resources
�MergedDictionaries
�Source$GridDemo.MasterDetailViewModel 
	viewModel��$-'/GridDemo;component/Themes/generic.xaml?��$KE/GridDemo;component/Controls/ControlStyles/MasterDetailTemplates.xaml?��$>8/GridDemo;component/ModuleResources/SharedResources.xaml?�%&	.�/
)DevExpress.Xpf.DemoBase.DemoModuleControl(!SupressGroupFramePaddingInOptions.OptionsContent��$	�200��.+����DataContext#[.+�& DevExpress.Xpf.Editors.CheckEdit$�10,0,0,5q�	IsChecked�*AllowPerPixelScrolling+�ElementName$
view���Mode$TwoWay=�	Content.	Allow Per Pixel Scrolling$�10,0,0,5q��*ShowFixedTotalSummary+$
view��$TwoWay=�.	Show Total Summary$�10,0,0,5q��*ShowDetailButtons+$TwoWay=�.	Show Detail Buttons-
Name$
DetailContentCheck��$
TrueY�$�10,0,0,5q�.	Show Detail Content$DevExpress.Xpf.Core.GroupFrame$��Orders Detail Options��$�0,10,0,0q�$	�Top=�#[.���.+�$
�0,0,0,5q��*ShowOrdersColumnHeaders+$TwoWay=�.	Show Column Headers�*ShowOrdersSummaries+$TwoWay=�.	Show Total Summary$��Invoices Detail Options��$�0,10,0,0q�$	�Top=�#[.���.+�$
�0,0,0,5q��*ShowInvoicesColumnHeaders+$TwoWay=�.	Show Column Headers�*ShowInvoicesSummaries+$TwoWay=�.	Show Total Summary$��Customers Detail Options��$�0,10,0,0q�$	�Top=�#[.���.+�$
�0,0,0,5q��*ShowCustomersColumnHeaders+$TwoWay=�.	Show Column Headers�*ShowCustomersSummaries+$TwoWay=�.	Show Total SummaryContent.%DevExpress.Xpf.Grid.GridControl-Name$
grid��#[)#DevExpress.Xpf.Grid.DataControlBase
ItemsSource
�*	Employees+DetailDescriptor1+DevExpress.Xpf.Grid.TabViewDetailDescriptor.(DevExpress.Xpf.Grid.DetailDescriptorBase
ShowHeader.ContentTemplate��Path$	IsChecked�$DetailContentCheck���	Converter/	)DevExpress.Xpf.Core.BoolToObjectConverter	 *&tabViewDetailDescriptorContentTemplate		TrueValue#[/
)DevExpress.Xpf.Grid.MultiDetailDescriptor
DetailDescriptors5/DevExpress.Xpf.Grid.DataControlDetailDescriptor.ItemsSourceBinding�*
MDOrders+DataControl..�*
Invoices+.Columns$DevExpress.Xpf.Grid.GridColumn$
DevExpress.Xpf.Grid.ColumnBase
	FieldName$ProductName��$	UnitPrice��$Quantity��$Total��
UnboundType]YDevExpress.Data.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a82DevExpress.Utils.Design.UnboundColumnTypeConverter$
Decimal
UnboundExpression$[UnitPrice]*[Quantity]��$DevExpress.Xpf.Grid.BaseColumn
Header)#DevExpress.Xpf.Core.ObjectConverter$TotalView#DevExpress.Xpf.Grid.TableView"VerticalScrollbarVisibility$
Auto=�	AutoWidth.& DevExpress.Xpf.Grid.DataViewBaseNavigationStyle$	Row=� DetailHeaderContent$ Invoices��& DevExpress.Xpf.Grid.GridViewBase!ShowGroupPanel!."ShowFixedTotalSummary"�*ShowInvoicesSummaries+
#�Source##[$ShowColumnHeaders$�*ShowInvoicesColumnHeaders+##[%TotalSummary%)#DevExpress.Xpf.Grid.GridSummaryItem)#DevExpress.Xpf.Grid.SummaryItemBase&SummaryType$&Count=�'	Alignment$
'Left=�(	FieldName$(Total��$	&Sum=�$'Right=�$	OrderDate��$
Freight��$ShipName��$ShipCountry�� colCountryCellTemplate)
CellTemplate#)[$ShipCity��$ShipAddress��$
Auto=�.$	Row=�$ Orders��!."�*ShowOrdersSummaries+$�*ShowOrdersColumnHeaders+*ShowDetailButtons*�*ShowDetailButtons+ $ booleanToDefaultBooleanConverter#[%$
(Freight��$	&Sum=�$'Right=�.�*
MDCustomers+.$ContactName��$
Country��#)[$
City��$
Address��$Phone��+GroupSummary+$(MDOrders.Count��$	&Sum=�$
Auto=�.$	Row=�$ 	Customers��!."�*ShowCustomersSummaries+$�*ShowCustomersColumnHeaders+%$&Count=�$
'Left=�1+DevExpress.Xpf.Grid.ContentDetailDescriptor.,
HeaderContent$,Stats employeeStatsTemplate#[ cardViewTemplate#[.$,Subordinates--Name$
-view��.AllowPerPixelScrolling...$
Cell=�$ 	Employees��".*�*ShowDetailButtons+#[.(System.Windows.Interactivity.Interaction/Triggers//)System.Windows.Interactivity.EventTrigger0	EventName$0Loaded��.(System.Windows.Interactivity.TriggerBase1Actions.160System.Windows.Interactivity.InvokeCommandAction2CommandName$2ExpandMasterRow��3CommandParameter$31��4Command4�*Commands.ExpandMasterRow+$
view��$FullName��5
ReadOnly5.6MinWidth$660�� ColumnHeaderTemplate7HeaderTemplate#7[$Title��$JobTitle#7[$Region��$
Country$660��#)[#7[$	BirthDate��$660��#7[8
EditSettings860DevExpress.Xpf.Editors.Settings.DateEditSettings60DevExpress.Xpf.Editors.Settings.BaseEditSettings9
DisplayFormat$9d��$EMail��$Contacts:Width$	:195��#7[%$&Count=�$'Right=�!x5<local:GridDemoModule x:Class="GridDemo.MasterDetailView"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:dx="http://schemas.devexpress.com/winfx/2008/xaml/core"
    xmlns:dxg="http://schemas.devexpress.com/winfx/2008/xaml/grid"
    xmlns:local="clr-namespace:GridDemo"
 xmlns:dxdb="http://schemas.devexpress.com/winfx/2008/xaml/demobase"
 xmlns:dxe="http://schemas.devexpress.com/winfx/2008/xaml/editors"
    xmlns:dxgt="http://schemas.devexpress.com/winfx/2008/xaml/grid/themekeys"
 xmlns:collections="clr-namespace:System.Collections;assembly=mscorlib"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity"
    xmlns:sys="clr-namespace:System;assembly=mscorlib"
    mc:Ignorable="d" d:DesignHeight="400" d:DesignWidth="800"
 HorizontalAlignment="Stretch" VerticalAlignment="Stretch">
    <local:GridDemoModule.Resources>
        <ResourceDictionary>
            <ResourceDictionary.MergedDictionaries>
                <ResourceDictionary Source="/GridDemo;component/Themes/generic.xaml" />
                <ResourceDictionary Source="/GridDemo;component/Controls/ControlStyles/MasterDetailTemplates.xaml" />
                <ResourceDictionary Source="/GridDemo;component/ModuleResources/SharedResources.xaml" />
            </ResourceDictionary.MergedDictionaries>
            <local:MasterDetailViewModel x:Key="viewModel" />
        </ResourceDictionary>
    </local:GridDemoModule.Resources>
    <dxdb:DemoModuleControl SupressGroupFramePaddingInOptions="False">
        <dxdb:DemoModuleControl.OptionsContent>
            <StackPanel MinWidth="200">
                <StackPanel DataContext="{StaticResource viewModel}">
                    <dxe:CheckEdit IsChecked="{Binding AllowPerPixelScrolling, ElementName=view, Mode=TwoWay}" Margin="10,0,0,5">Allow Per Pixel Scrolling</dxe:CheckEdit>
                    <dxe:CheckEdit IsChecked="{Binding ShowFixedTotalSummary, ElementName=view, Mode=TwoWay}" Margin="10,0,0,5">Show Total Summary</dxe:CheckEdit>
                    <dxe:CheckEdit IsChecked="{Binding ShowDetailButtons, Mode=TwoWay}" Margin="10,0,0,5">Show Detail Buttons</dxe:CheckEdit>
                    <dxe:CheckEdit x:Name="DetailContentCheck" IsChecked="True" Margin="10,0,0,5">Show Detail Content</dxe:CheckEdit>
                </StackPanel>
                <dx:GroupFrame Header="Orders Detail Options" Margin="0,10,0,0" VerticalAlignment="Top" DataContext="{StaticResource viewModel}">
                    <StackPanel>
                        <dxe:CheckEdit IsChecked="{Binding ShowOrdersColumnHeaders, Mode=TwoWay}" Margin="0,0,0,5">Show Column Headers</dxe:CheckEdit>
                        <dxe:CheckEdit IsChecked="{Binding ShowOrdersSummaries, Mode=TwoWay}">Show Total Summary</dxe:CheckEdit>
                    </StackPanel>
                </dx:GroupFrame>
                <dx:GroupFrame Header="Invoices Detail Options" Margin="0,10,0,0" VerticalAlignment="Top" DataContext="{StaticResource viewModel}">
                    <StackPanel>
                        <dxe:CheckEdit IsChecked="{Binding ShowInvoicesColumnHeaders, Mode=TwoWay}" Margin="0,0,0,5">Show Column Headers</dxe:CheckEdit>
                        <dxe:CheckEdit IsChecked="{Binding ShowInvoicesSummaries, Mode=TwoWay}">Show Total Summary</dxe:CheckEdit>
                    </StackPanel>
                </dx:GroupFrame>
                <dx:GroupFrame Header="Customers Detail Options" Margin="0,10,0,0" VerticalAlignment="Top" DataContext="{StaticResource viewModel}">
                    <StackPanel>
                        <dxe:CheckEdit IsChecked="{Binding ShowCustomersColumnHeaders, Mode=TwoWay}" Margin="0,0,0,5">Show Column Headers</dxe:CheckEdit>
                        <dxe:CheckEdit IsChecked="{Binding ShowCustomersSummaries, Mode=TwoWay}">Show Total Summary</dxe:CheckEdit>
                    </StackPanel>
                </dx:GroupFrame>
            </StackPanel>
        </dxdb:DemoModuleControl.OptionsContent>
        <dxg:GridControl x:Name="grid" ItemsSource="{Binding Employees}" DataContext="{StaticResource viewModel}">
            <dxg:GridControl.DetailDescriptor>
                <dxg:TabViewDetailDescriptor ShowHeader="False">
                    <dxg:TabViewDetailDescriptor.ContentTemplate>
                        <Binding Path="IsChecked" ElementName="DetailContentCheck">
                            <Binding.Converter>
                                <dx:BoolToObjectConverter TrueValue="{StaticResource tabViewDetailDescriptorContentTemplate}" />
                            </Binding.Converter>
                        </Binding>
                    </dxg:TabViewDetailDescriptor.ContentTemplate>
                    <dxg:TabViewDetailDescriptor.DetailDescriptors>
                        <dxg:DataControlDetailDescriptor ItemsSourceBinding="{Binding MDOrders}" ShowHeader="false">
                            <dxg:GridControl>
                                <dxg:GridControl.DetailDescriptor>
                                    <dxg:DataControlDetailDescriptor ShowHeader="False" ItemsSourceBinding="{Binding Invoices}">
                                        <dxg:GridControl>
                                            <dxg:GridControl.Columns>
                                                <dxg:GridColumn FieldName="ProductName" />
                                                <dxg:GridColumn FieldName="UnitPrice" />
                                                <dxg:GridColumn FieldName="Quantity" />
                                                <dxg:GridColumn FieldName="Total" UnboundType="Decimal"
                                                                UnboundExpression="[UnitPrice]*[Quantity]" Header="Total" />
                                            </dxg:GridControl.Columns>
                                            <dxg:GridControl.View>
                                                <dxg:TableView VerticalScrollbarVisibility="Auto" AutoWidth="True" NavigationStyle="Row"
                                                               DetailHeaderContent="Invoices" ShowGroupPanel="False"
                                                               ShowFixedTotalSummary="{Binding ShowInvoicesSummaries, Source={StaticResource viewModel}}"
                                                               ShowColumnHeaders="{Binding ShowInvoicesColumnHeaders, Source={StaticResource viewModel}}" />
                                            </dxg:GridControl.View>
                                            <dxg:GridControl.TotalSummary>
                                                <dxg:GridSummaryItem SummaryType="Count" Alignment="Left"/>
                                                <dxg:GridSummaryItem FieldName="Total" SummaryType="Sum" Alignment="Right" />
                                            </dxg:GridControl.TotalSummary>
                                        </dxg:GridControl>
                                    </dxg:DataControlDetailDescriptor>
                                </dxg:GridControl.DetailDescriptor>
                                <dxg:GridControl.Columns>
                                    <dxg:GridColumn FieldName="OrderDate" />
                                    <dxg:GridColumn FieldName="Freight" />
                                    <dxg:GridColumn FieldName="ShipName" />
                                    <dxg:GridColumn FieldName="ShipCountry" CellTemplate="{StaticResource colCountryCellTemplate}" />
                                    <dxg:GridColumn FieldName="ShipCity" />
                                    <dxg:GridColumn FieldName="ShipAddress" />
                                </dxg:GridControl.Columns>
                                <dxg:GridControl.View>
                                    <dxg:TableView VerticalScrollbarVisibility="Auto" AutoWidth="True" NavigationStyle="Row"
                                                   DetailHeaderContent="Orders" ShowGroupPanel="False"
                                                   ShowFixedTotalSummary="{Binding ShowOrdersSummaries}"
                                                   ShowColumnHeaders="{Binding ShowOrdersColumnHeaders}"
                                                   ShowDetailButtons="{Binding ShowDetailButtons, Converter={StaticResource booleanToDefaultBooleanConverter}}" />
                                </dxg:GridControl.View>
                                <dxg:GridControl.TotalSummary>
                                    <dxg:GridSummaryItem FieldName="Freight" SummaryType="Sum" Alignment="Right" />
                                </dxg:GridControl.TotalSummary>
                            </dxg:GridControl>
                        </dxg:DataControlDetailDescriptor>
                        <dxg:DataControlDetailDescriptor ItemsSourceBinding="{Binding MDCustomers}" ShowHeader="false">
                            <dxg:GridControl>
                                <dxg:GridControl.Columns>
                                    <dxg:GridColumn FieldName="ContactName" />
                                    <dxg:GridColumn FieldName="Country" CellTemplate="{StaticResource colCountryCellTemplate}" />
                                    <dxg:GridColumn FieldName="City" />
                                    <dxg:GridColumn FieldName="Address" />
                                    <dxg:GridColumn FieldName="Phone" />
                                </dxg:GridControl.Columns>
                                <dxg:GridControl.GroupSummary>
                                    <dxg:GridSummaryItem FieldName="MDOrders.Count" SummaryType="Sum" />
                                </dxg:GridControl.GroupSummary>
                                <dxg:GridControl.View>
                                    <dxg:TableView VerticalScrollbarVisibility="Auto" AutoWidth="True" NavigationStyle="Row"
                                                   DetailHeaderContent="Customers" ShowGroupPanel="False"
                                                   ShowFixedTotalSummary="{Binding ShowCustomersSummaries}"
                                                   ShowColumnHeaders="{Binding ShowCustomersColumnHeaders}" />
                                </dxg:GridControl.View>
                                <dxg:GridControl.TotalSummary>
                                    <dxg:GridSummaryItem SummaryType="Count" Alignment="Left"  />
                                </dxg:GridControl.TotalSummary>
                            </dxg:GridControl>
                        </dxg:DataControlDetailDescriptor>
                        <dxg:ContentDetailDescriptor ShowHeader="False" HeaderContent="Stats"
                                                     ContentTemplate="{StaticResource employeeStatsTemplate}" />
                        <dxg:ContentDetailDescriptor ContentTemplate="{StaticResource cardViewTemplate}"
                                                     ShowHeader="False" HeaderContent="Subordinates" />
                    </dxg:TabViewDetailDescriptor.DetailDescriptors>
                </dxg:TabViewDetailDescriptor>
            </dxg:GridControl.DetailDescriptor>
            <dxg:GridControl.View>
                <dxg:TableView x:Name="view" AllowPerPixelScrolling="True" AutoWidth="True"
                               NavigationStyle="Cell" DetailHeaderContent="Employees"
                               ShowFixedTotalSummary="True" ShowDetailButtons="{Binding ShowDetailButtons, Converter={StaticResource booleanToDefaultBooleanConverter}}">
                    <i:Interaction.Triggers>
                        <i:EventTrigger EventName="Loaded">
                            <i:InvokeCommandAction CommandName="ExpandMasterRow" CommandParameter="1"
                                                   Command="{Binding Commands.ExpandMasterRow, ElementName=view}" />
                        </i:EventTrigger>
                    </i:Interaction.Triggers>
                </dxg:TableView>
            </dxg:GridControl.View>
            <dxg:GridControl.Columns>
                <dxg:GridColumn FieldName="FullName" ReadOnly="True" MinWidth="60" HeaderTemplate="{StaticResource ColumnHeaderTemplate}" />
                <dxg:GridColumn FieldName="Title" Header="JobTitle" HeaderTemplate="{StaticResource ColumnHeaderTemplate}" />
                <dxg:GridColumn FieldName="Region" Header="Country" MinWidth="60" CellTemplate="{StaticResource colCountryCellTemplate}" HeaderTemplate="{StaticResource ColumnHeaderTemplate}" />
                <dxg:GridColumn FieldName="BirthDate" MinWidth="60" HeaderTemplate="{StaticResource ColumnHeaderTemplate}">
                    <dxg:GridColumn.EditSettings>
                        <dxe:DateEditSettings DisplayFormat="d" />
                    </dxg:GridColumn.EditSettings>
                </dxg:GridColumn>
                <dxg:GridColumn FieldName="EMail" Header="Contacts" Width="195" HeaderTemplate="{StaticResource ColumnHeaderTemplate}" />
            </dxg:GridControl.Columns>
            <dxg:GridControl.TotalSummary>
                <dxg:GridSummaryItem SummaryType="Count" Alignment="Right"/>
            </dxg:GridControl.TotalSummary>
        </dxg:GridControl>
    </dxdb:DemoModuleControl>
</local:GridDemoModule>!�using DevExpress.Xpf.DemoBase;

namespace GridDemo {
    [CodeFile("ModuleResources/SharedResources(.SL).xaml")]
    [CodeFile("ModuleResources/MasterDetailViewModel.(cs)")]
    [CodeFile("Controls/ControlStyles/MasterDetailTemplates(.SL).xaml")]
    [CodeFile("Controls/Converters.(cs)")]
    public partial class MasterDetailView : GridDemoModule {
        public MasterDetailView() {
            InitializeComponent();
        }
    }
}!�MSBAML```����D@GridDemo, Version=13.1.4.0, Culture=neutral, PublicKeyToken=null#clr-namespace:GridDemoGridDemoOKmscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089I2clr-namespace:System.Collections;assembly=mscorlibSystem.Collections1&clr-namespace:System;assembly=mscorlibSystem!GridDemo.MasterDetailWithEF\XPresentationFramework, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35RNWindowsBase, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35WSPresentationCore, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35D9http://schemas.microsoft.com/winfx/2006/xaml/presentationRNSystem.Xaml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089:x,http://schemas.microsoft.com/winfx/2006/xamla]DevExpress.Xpf.Core.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a;dx2http://schemas.devexpress.com/winfx/2008/xaml/corefbDevExpress.Xpf.Grid.v13.1.Core, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49aa]DevExpress.Xpf.Grid.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49al	hDevExpress.Xpf.Grid.v13.1.Extensions, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a@dxg2http://schemas.devexpress.com/winfx/2008/xaml/grid	&localclr-namespace:GridDemo	e
aDevExpress.Xpf.DemoBase.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49aAdxdb6http://schemas.devexpress.com/winfx/2008/xaml/demobase
?dxe5http://schemas.devexpress.com/winfx/2008/xaml/editorsGdxgt<http://schemas.devexpress.com/winfx/2008/xaml/grid/themekeysDcollections2clr-namespace:System.Collections;assembly=mscorlibDmc;http://schemas.openxmlformats.org/markup-compatibility/2006:d2http://schemas.microsoft.com/expression/blend/2008c_System.Windows.Interactivity, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35Bi:http://schemas.microsoft.com/expression/2010/interactivity0sys&clr-namespace:System;assembly=mscorlib$
�Stretch=�$
�Stretch=�.�/
)DevExpress.Xpf.DemoBase.DemoModuleControlContent.%DevExpress.Xpf.Grid.GridControl-$
�grid��$��1�)#DevExpress.Xpf.Grid.DataControlBaseAutoGenerateColumns$
KeepOld=�DetailDescriptor5/DevExpress.Xpf.Grid.DataControlDetailDescriptor-�Name$gridDetailDescriptor��.(DevExpress.Xpf.Grid.DetailDescriptorBase
ShowHeader.ItemsSourceBinding��Path$Orders�DataControl.-$�
detailGrid��.�$
Order_Details�.-$�
subDetailGrid��Columns$DevExpress.Xpf.Grid.GridColumn$DevExpress.Xpf.Grid.ColumnBase		FieldName$	Product.ProductName��$		UnitPrice��$	Quantity��$	
TotalPrice��
UnboundType]YDevExpress.Data.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a82DevExpress.Utils.Design.UnboundColumnTypeConverter$
DecimalUnboundExpression$[UnitPrice]*[Quantity]��$	Discount��TotalSummary)	#DevExpress.Xpf.Grid.GridSummaryItem	)
#DevExpress.Xpf.Grid.SummaryItemBase

SummaryType$	
Sum=�
	FieldName$
TotalPrice��
ShowInColumn$
TotalPrice��	$	
Sum=�$Quantity��$Quantity��	$
Count=�$Product.ProductName��View#DevExpress.Xpf.Grid.TableView-$�
subDetailView��& DevExpress.Xpf.Grid.DataViewBaseDetailHeaderContent$
Order details��	AutoWidth.&
 DevExpress.Xpf.Grid.GridViewBase 
UseAnimationWhenExpanding.ShowColumnHeaders.AllowFixedColumnMenu.ShowTotalSummary.$		OrderDate��$	ShippedDate��$	ShipPostalCode��$
	Freight��$	ShipCountry��	$	
Sum=�$
Freight��$
Freight��	$
Count=�$	OrderDate��-$�
detailView��$Orders��.....$	ContactName��$
	Country��$
	City��$
	Address��$	
PostalCode��$	
CustomerID��	$
Count=�$ContactName��-$�
masterView��$	Customers��AllowPerPixelScrolling.AllowFixedGroups5/DevExpress.Utils.Design.DefaultBooleanConverter$
trueNavigationStyle$
Cell=�....(System.Windows.Interactivity.InteractionTriggers/)System.Windows.Interactivity.EventTrigger	EventName$Loaded��.(System.Windows.Interactivity.TriggerBaseActions.60System.Windows.Interactivity.InvokeCommandActionCommandName$ExpandMasterRow��CommandParameter$1��Command�*Commands.ExpandMasterRow+ �ElementName$ 
masterView��!x<local:GridDemoModule x:Class="GridDemo.MasterDetailWithEF"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:dx="http://schemas.devexpress.com/winfx/2008/xaml/core"
    xmlns:dxg="http://schemas.devexpress.com/winfx/2008/xaml/grid"
    xmlns:local="clr-namespace:GridDemo"
 xmlns:dxdb="http://schemas.devexpress.com/winfx/2008/xaml/demobase"
 xmlns:dxe="http://schemas.devexpress.com/winfx/2008/xaml/editors"
    xmlns:dxgt="http://schemas.devexpress.com/winfx/2008/xaml/grid/themekeys"
 xmlns:collections="clr-namespace:System.Collections;assembly=mscorlib"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity"
    xmlns:sys="clr-namespace:System;assembly=mscorlib"
    mc:Ignorable="d" d:DesignHeight="400" d:DesignWidth="800"
 HorizontalAlignment="Stretch" VerticalAlignment="Stretch">
    <dxdb:DemoModuleControl>
        <dxg:GridControl Grid.Row="1" Name="grid" AutoGenerateColumns="KeepOld">
            <dxg:GridControl.DetailDescriptor>
                <dxg:DataControlDetailDescriptor Name="gridDetailDescriptor" ItemsSourceBinding="{Binding Path=Orders}" ShowHeader="false">
                    <dxg:GridControl Name="detailGrid">
                        <dxg:GridControl.DetailDescriptor>
                            <dxg:DataControlDetailDescriptor ItemsSourceBinding="{Binding Path=Order_Details}" ShowHeader="false">
                                <dxg:GridControl Name="subDetailGrid">
                                    <dxg:GridControl.Columns>
                                        <dxg:GridColumn FieldName="Product.ProductName" />
                                        <dxg:GridColumn FieldName="UnitPrice" />
                                        <dxg:GridColumn FieldName="Quantity" />
                                        <dxg:GridColumn FieldName="TotalPrice"  UnboundType="Decimal"  UnboundExpression="[UnitPrice]*[Quantity]" />
                                        <dxg:GridColumn FieldName="Discount" />
                                    </dxg:GridControl.Columns>
                                    <dxg:GridControl.TotalSummary>
                                        <dxg:GridSummaryItem SummaryType="Sum" FieldName="TotalPrice" ShowInColumn="TotalPrice" />
                                        <dxg:GridSummaryItem SummaryType="Sum" FieldName="Quantity" ShowInColumn="Quantity" />
                                        <dxg:GridSummaryItem SummaryType="Count" ShowInColumn="Product.ProductName" />
                                    </dxg:GridControl.TotalSummary>
                                    <dxg:GridControl.View>
                                        <dxg:TableView Name="subDetailView" DetailHeaderContent="Order details" AutoWidth="True"
                                                       UseAnimationWhenExpanding="true" ShowColumnHeaders="True"
                                                       AllowFixedColumnMenu="true" ShowTotalSummary="True" />
                                    </dxg:GridControl.View>
                                </dxg:GridControl>
                            </dxg:DataControlDetailDescriptor>
                        </dxg:GridControl.DetailDescriptor>
                        <dxg:GridControl.Columns>
                            <dxg:GridColumn FieldName="OrderDate" />
                            <dxg:GridColumn FieldName="ShippedDate" />
                            <dxg:GridColumn FieldName="ShipPostalCode" />
                            <dxg:GridColumn FieldName="Freight" />
                            <dxg:GridColumn FieldName="ShipCountry" />
                        </dxg:GridControl.Columns>
                        <dxg:GridControl.TotalSummary>
                            <dxg:GridSummaryItem SummaryType="Sum" FieldName="Freight" ShowInColumn="Freight" />
                            <dxg:GridSummaryItem SummaryType="Count" ShowInColumn="OrderDate" />
                        </dxg:GridControl.TotalSummary>
                        <dxg:GridControl.View>
                            <dxg:TableView Name="detailView" DetailHeaderContent="Orders" UseAnimationWhenExpanding="true"
                                           ShowColumnHeaders="True"  AllowFixedColumnMenu="true" AutoWidth="True"
                                           ShowTotalSummary="True"/>
                        </dxg:GridControl.View>
                    </dxg:GridControl>
                </dxg:DataControlDetailDescriptor>
            </dxg:GridControl.DetailDescriptor>
            <dxg:GridControl.Columns>
                <dxg:GridColumn FieldName="ContactName" />
                <dxg:GridColumn FieldName="Country" />
                <dxg:GridColumn FieldName="City" />
                <dxg:GridColumn FieldName="Address" />
                <dxg:GridColumn FieldName="PostalCode"/>
                <dxg:GridColumn FieldName="CustomerID" />
            </dxg:GridControl.Columns>
            <dxg:GridControl.TotalSummary>
                <dxg:GridSummaryItem SummaryType="Count" ShowInColumn="ContactName" />
            </dxg:GridControl.TotalSummary>
            <dxg:GridControl.View>
                <dxg:TableView Name="masterView" DetailHeaderContent="Customers" AllowPerPixelScrolling="true" AllowFixedGroups="true"
                               NavigationStyle="Cell" AllowFixedColumnMenu="true" AutoWidth="True" ShowTotalSummary="True">
                    <i:Interaction.Triggers>
                        <i:EventTrigger EventName="Loaded">
                            <i:InvokeCommandAction CommandName="ExpandMasterRow" CommandParameter="1"
                                                   Command="{Binding Commands.ExpandMasterRow, ElementName=masterView}" />
                        </i:EventTrigger>
                    </i:Interaction.Triggers>
                </dxg:TableView>
            </dxg:GridControl.View>
        </dxg:GridControl>
    </dxdb:DemoModuleControl>
</local:GridDemoModule>!�using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using GridDemo.Controls;
using System.Data.EntityClient;
using System.Data.Common;
using DevExpress.DemoData.Helpers;
using System.Data;
using DevExpress.Xpf.DemoBase;

namespace GridDemo {
    [CodeFile("Controls/NWindModel1.Designer.(cs)")]
    public partial class MasterDetailWithEF : GridDemoModule {
        public MasterDetailWithEF() {
            InitializeComponent();
            NorthwindEntities entities = new NorthwindEntities(EFConnectionStringProvider.ConnectionString);
            try {
                grid.ItemsSource = entities.Customers;
            } catch(EntityException e) {
                MessageBox.Show("Connection could not be established." + Environment.NewLine + e.Message, "Connection Error", MessageBoxButton.OK);
            }
        }
    }
}!�
MSBAML```����D@GridDemo, Version=13.1.4.0, Culture=neutral, PublicKeyToken=null#clr-namespace:GridDemoGridDemoOKmscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e0891&clr-namespace:System;assembly=mscorlibSystemGridDemo.MultiEditors\XPresentationFramework, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35RNWindowsBase, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35WSPresentationCore, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35D9http://schemas.microsoft.com/winfx/2006/xaml/presentationRNSystem.Xaml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089:x,http://schemas.microsoft.com/winfx/2006/xamla]DevExpress.Xpf.Core.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a;dx2http://schemas.devexpress.com/winfx/2008/xaml/corefbDevExpress.Xpf.Grid.v13.1.Core, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49aa]DevExpress.Xpf.Grid.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49al	hDevExpress.Xpf.Grid.v13.1.Extensions, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a@dxg2http://schemas.devexpress.com/winfx/2008/xaml/grid	?dxe5http://schemas.devexpress.com/winfx/2008/xaml/editorse
aDevExpress.Xpf.DemoBase.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49aAdxdb6http://schemas.devexpress.com/winfx/2008/xaml/demobase
"localclr-namespace:GridDemo
Dmc;http://schemas.openxmlformats.org/markup-compatibility/2006
:d2http://schemas.microsoft.com/expression/blend/2008
0sys&clr-namespace:System;assembly=mscorlib
�	Resources
�MergedDictionaries
�SourceGridDemo.CountriesData 
CountriesData��$C=/GridDemo;component/Descriptions/MultiEditorDescriptions.xaml?�%&	.�/
)DevExpress.Xpf.DemoBase.DemoModuleControlOptionsContent$DevExpress.Xpf.Core.GroupFrame$��Highlighted Editor��$	�150��$	�230��.��-�Name$descriptionRichTextBox��
�����$�0q���
IsReadOnly.Content.%DevExpress.Xpf.Grid.GridControl-$
�grid��
��$D>/GridDemo;component/ModuleResources/MultiEditorsTemplates.xaml?�%View#DevExpress.Xpf.Grid.TableView-Name$
view��& DevExpress.Xpf.Grid.GridViewBase	ShowGroupPanel	.& DevExpress.Xpf.Grid.DataViewBase
AllowSorting
.AllowColumnFiltering.-&AllowHorizontalScrollingVirtualization.!
<local:GridDemoModule x:Class="GridDemo.MultiEditors"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             xmlns:dx="http://schemas.devexpress.com/winfx/2008/xaml/core"
             xmlns:dxg="http://schemas.devexpress.com/winfx/2008/xaml/grid"
             xmlns:dxe="http://schemas.devexpress.com/winfx/2008/xaml/editors"
             xmlns:dxdb="http://schemas.devexpress.com/winfx/2008/xaml/demobase"
             xmlns:local="clr-namespace:GridDemo"
             xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
             xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
             xmlns:sys="clr-namespace:System;assembly=mscorlib"
             mc:Ignorable="d" d:DesignHeight="400" d:DesignWidth="800">
    <local:GridDemoModule.Resources>
        <ResourceDictionary>
            <ResourceDictionary.MergedDictionaries>
                <ResourceDictionary Source="/GridDemo;component/Descriptions/MultiEditorDescriptions.xaml" />
            </ResourceDictionary.MergedDictionaries>
            <local:CountriesData x:Key="CountriesData"/>
        </ResourceDictionary>
    </local:GridDemoModule.Resources>
    <dxdb:DemoModuleControl>
        <dxdb:DemoModuleControl.OptionsContent>
            <dx:GroupFrame Header="Highlighted Editor" MinWidth="150" MaxWidth="230">
                <RichTextBox x:Name="descriptionRichTextBox" Background="Transparent" BorderThickness="0" IsReadOnly="True" />
            </dx:GroupFrame>
        </dxdb:DemoModuleControl.OptionsContent>
        <dxg:GridControl Name="grid">
            <dxg:GridControl.Resources>
                <ResourceDictionary>
                    <ResourceDictionary.MergedDictionaries>
                        <ResourceDictionary Source="/GridDemo;component/ModuleResources/MultiEditorsTemplates.xaml" />
                    </ResourceDictionary.MergedDictionaries>
                </ResourceDictionary>
            </dxg:GridControl.Resources>
            <dxg:GridControl.View>
                <dxg:TableView x:Name="view" ShowGroupPanel="False" AllowSorting="False" AllowColumnFiltering="False" AllowHorizontalScrollingVirtualization="True"
                           ShowGridMenu="TableView_ShowGridMenu" FocusedRowHandleChanged="TableView_FocusedRowChanged" ShowingEditor="TableView_ShowingEditor" />
            </dxg:GridControl.View>
        </dxg:GridControl>
    </dxdb:DemoModuleControl>
</local:GridDemoModule>!�using System;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Media;
using DevExpress.Xpf.DemoBase;
using DevExpress.Xpf.Grid;
using DevExpress.Utils;
using DevExpress.Xpf.Editors;
using DevExpress.Xpf.Core;
using DevExpress.Xpf.Bars;
using DevExpress.Xpf.DemoBase.DemosHelpers.Grid;
using System.Windows.Input;
using DevExpress.Xpf.Core.Commands;

using System.Data;
using DevExpress.Xpf.DemoBase.DemosHelpers;
using System.ComponentModel;

namespace GridDemo {
    [CodeFile("Descriptions/MultiEditorDescriptions(.SL).xaml")]
    [CodeFile("ModuleResources/MultiEditorsTemplates(.SL).xaml")]
    [CodeFile("ModuleResources/MultiEditorsClasses.(cs)")]
    public partial class MultiEditors : GridDemoModule {
        MultiEditorsList list;
        public MultiEditors() {
            DataContext = this;
            ButtonEditClickCommand = new DelegateCommand<object>(PART_Editor_DefaultButtonClick);
            InitializeComponent();
            UpdateDescription();
            AssignDataSource();
        }
        void AssignDataSource() {
            list = new MultiEditorsList();

            MultiEditorsTemplateSelector templateSelector = new MultiEditorsTemplateSelector();

            foreach(PropertyDescriptor propertyDescriptor in ((ITypedList)list).GetItemProperties(null)) {
                GridColumn column = new GridColumn() { FieldName = propertyDescriptor.Name };
                if(column.FieldName == "Field") {
                    column.AllowEditing = DefaultBoolean.False;
                    column.Fixed = FixedStyle.Left;
                }
                if(column.FieldName == "TemplateName") {
                    column.Visible = false;
                    column.ShowInColumnChooser = false;
                }
                if(column.FieldName == "EditorType") {
                    column.Fixed = FixedStyle.Right;
                    column.AllowEditing = DefaultBoolean.False;
                    column.Width = 200;
                }
                if(column.FieldName != "Field" && column.FieldName != "EditorType")
                    column.CellTemplateSelector = templateSelector;
                grid.Columns.Add(column);
            }
            grid.ItemsSource = list;
        }

        void PART_Editor_DefaultButtonClick(object param) {
            ListBoxEdit listBoxEdit = new ListBoxEdit() { ItemsSource = NWindData.CountriesArray, ShowBorder = false };
            listBoxEdit.EditValue = grid.GetCellValue(grid.View.FocusedRowHandle, (GridColumn)grid.CurrentColumn);
            DialogClosedDelegate closedHandler = delegate(bool? dialogResult) {
                if(dialogResult == true) {
                    grid.View.ShowEditor();
                    grid.View.ActiveEditor.EditValue = listBoxEdit.EditValue;
                }
            };

            FloatingContainer.ShowDialogContent(listBoxEdit, grid.View.ActiveEditor, new Size(400, 300), new FloatingContainerParameters() { ClosedDelegate = closedHandler, Title = "Select Country", ContainerFocusable = false });
        }
        void TableView_ShowGridMenu(object sender, GridMenuEventArgs e) {
            if(e.MenuType == GridMenuType.Column) {
                e.Customizations.Add(new RemoveBarItemAndLinkAction() { ItemName = DefaultColumnMenuItemNames.GroupBox });
                e.Customizations.Add(new RemoveBarItemAndLinkAction() { ItemName = DefaultColumnMenuItemNames.SortAscending });
                e.Customizations.Add(new RemoveBarItemAndLinkAction() { ItemName = DefaultColumnMenuItemNames.SortDescending });
                e.Customizations.Add(new RemoveBarItemAndLinkAction() { ItemName = DefaultColumnMenuItemNames.ClearSorting });
                e.Customizations.Add(new RemoveBarItemAndLinkAction() { ItemName = DefaultColumnMenuItemNames.GroupColumn });
            }
        }

        void TableView_FocusedRowChanged(object sender, FocusedRowHandleChangedEventArgs e) {
            UpdateDescription();
        }
        string lastDescription;
        void UpdateDescription() {
            if(descriptionRichTextBox == null)
                return;
            BlockCollection blocks =
            descriptionRichTextBox.Document.Blocks;
            if(grid.View.FocusedRowHandle == GridControl.InvalidRowHandle)
                return;
            string newDescription = list.FieldDescriptions[grid.View.FocusedRowHandle].TemplateName + "Description";
            if(newDescription == lastDescription)
                return;
            lastDescription = newDescription;
            ContentControl control = new ContentControl() { Template = Resources[newDescription] as ControlTemplate };
            control.ApplyTemplate();
            ParagraphContainer container = VisualTreeHelper.GetChild(control, 0) as ParagraphContainer;

            blocks.Clear();
            blocks.Add(container.Paragraph);
        }
        void TableView_ShowingEditor(object sender, ShowingEditorEventArgs e) {
            e.Cancel = list.FieldDescriptions[grid.View.FocusedRowHandle].TemplateName == "ProgressBarEdit";
        }
        public ICommand ButtonEditClickCommand { get; private set; }
    }
}!�MSBAML```����D@GridDemo, Version=13.1.4.0, Culture=neutral, PublicKeyToken=null#clr-namespace:GridDemoGridDemoOKmscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089I2clr-namespace:System.Collections;assembly=mscorlibSystem.Collections1&clr-namespace:System;assembly=mscorlibSystema]DevExpress.Xpf.Core.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49atPclr-namespace:DevExpress.Xpf.Editors.Controls;assembly=DevExpress.Xpf.Core.v13.1DevExpress.Xpf.Editors.ControlsGridDemo.MultipleGrouping\XPresentationFramework, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35RNWindowsBase, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35WSPresentationCore, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35D9http://schemas.microsoft.com/winfx/2006/xaml/presentationRNSystem.Xaml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089:x,http://schemas.microsoft.com/winfx/2006/xaml;dx2http://schemas.devexpress.com/winfx/2008/xaml/corefbDevExpress.Xpf.Grid.v13.1.Core, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49aa]DevExpress.Xpf.Grid.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49al	hDevExpress.Xpf.Grid.v13.1.Extensions, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a@dxg2http://schemas.devexpress.com/winfx/2008/xaml/grid	?dxe5http://schemas.devexpress.com/winfx/2008/xaml/editorsJdxet?http://schemas.devexpress.com/winfx/2008/xaml/editors/themekeys"localclr-namespace:GridDemoe
aDevExpress.Xpf.DemoBase.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49aAdxdb6http://schemas.devexpress.com/winfx/2008/xaml/demobase
Dcollections2clr-namespace:System.Collections;assembly=mscorlib
0sys&clr-namespace:System;assembly=mscorlib
Dmc;http://schemas.openxmlformats.org/markup-compatibility/2006
:d2http://schemas.microsoft.com/expression/blend/2008
\dxconPclr-namespace:DevExpress.Xpf.Editors.Controls;assembly=DevExpress.Xpf.Core.v13.1
�	Resources
�MergedDictionaries
�Source��$HB/GridDemo;component/ModuleResources/MultipleGroupingTemplates.xaml?�%.�/
)DevExpress.Xpf.DemoBase.DemoModuleControl(!SupressGroupFramePaddingInOptions.OptionsContent��.+��-$�groupButton��$
�Stretch=�$	�Top=�$	�160��$�22��Content.%DevExpress.Xpf.Grid.GridControl-$
�grid��AutoExpandAllGroups.)#DevExpress.Xpf.Grid.DataControlBaseDesignTimeDataObjectType
GridDemo.Task"Columns$DevExpress.Xpf.Grid.GridColumn$DevExpress.Xpf.Grid.ColumnBase		FieldName$	Complete��$DevExpress.Xpf.Grid.BaseColumn
Width$
80��
AllowResizing]YDevExpress.Data.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a5/DevExpress.Utils.Design.DefaultBooleanConverter$False
FixedWidth.$	TaskName��$
80�� displayTemplate
DisplayTemplate#
[ editTemplateEditTemplate#[$	CategoryName��
GroupIndex$0�
AllowGrouping$
True$	
150��
Header)	#DevExpress.Xpf.Core.ObjectConverter$Category	#
[#[ReadOnly.$
	DueDate��#
[#[$	PercentComplete��$
80��$
% Complete	#
[#[EditSettings6
0DevExpress.Xpf.Editors.Settings.SpinEditSettings

MaxValue$	100X�
MinValue$0X�60DevExpress.Xpf.Editors.Settings.TextEditSettingsMaskType$
Numeric=�Mask$P0��MaskUseAsDisplayFormat.$
	Note��Visible.60DevExpress.Xpf.Editors.Settings.MemoEditSettingsShowIcon.;
5DevExpress.Xpf.Editors.Settings.PopupBaseEditSettings

PopupWidth$	250Q�MemoTextWrapping$
Wrap=�&MemoVerticalScrollBarVisibility$
Auto=�View#DevExpress.Xpf.Grid.TableView-$
�view��	AutoWidth.& DevExpress.Xpf.Grid.GridViewBase ShowGroupedColumns .!
AllowGrouping!.!�<local:GridDemoModule x:Class="GridDemo.MultipleGrouping"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:dx="http://schemas.devexpress.com/winfx/2008/xaml/core"
    xmlns:dxg="http://schemas.devexpress.com/winfx/2008/xaml/grid"
    xmlns:dxe="http://schemas.devexpress.com/winfx/2008/xaml/editors"
    xmlns:dxet="http://schemas.devexpress.com/winfx/2008/xaml/editors/themekeys"
    xmlns:local="clr-namespace:GridDemo"
    xmlns:dxdb="http://schemas.devexpress.com/winfx/2008/xaml/demobase"
    xmlns:collections="clr-namespace:System.Collections;assembly=mscorlib"
    xmlns:sys="clr-namespace:System;assembly=mscorlib"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:dxcon="clr-namespace:DevExpress.Xpf.Editors.Controls;assembly=DevExpress.Xpf.Core.v13.1"
    mc:Ignorable="d" d:DesignHeight="400" d:DesignWidth="800">
    <local:GridDemoModule.Resources>
        <ResourceDictionary>
            <ResourceDictionary.MergedDictionaries>
                <ResourceDictionary Source="/GridDemo;component/ModuleResources/MultipleGroupingTemplates.xaml" />
            </ResourceDictionary.MergedDictionaries>
        </ResourceDictionary>
    </local:GridDemoModule.Resources>
    <dxdb:DemoModuleControl SupressGroupFramePaddingInOptions="False">
        <dxdb:DemoModuleControl.OptionsContent>
            <StackPanel>
                <Button HorizontalAlignment="Stretch" dx:DXDockPanel.Dock="Top" Name="groupButton" Click="groupButton_Click" MinWidth="160" Height="22" />
            </StackPanel>
        </dxdb:DemoModuleControl.OptionsContent>
        <dxg:GridControl Name="grid" AutoExpandAllGroups="True" DesignTimeDataObjectType="local:Task">
            <dxg:GridControl.Columns>
                <dxg:GridColumn FieldName="Complete" Width="80" AllowResizing="False" FixedWidth="True" />
                <dxg:GridColumn FieldName="TaskName" Width="80" DisplayTemplate="{StaticResource displayTemplate}" EditTemplate="{StaticResource editTemplate}" />
                <dxg:GridColumn FieldName="CategoryName" GroupIndex="0" AllowGrouping="True" Width="150" Header="Category" DisplayTemplate="{StaticResource displayTemplate}" EditTemplate="{StaticResource editTemplate}" ReadOnly="True" />
                <dxg:GridColumn FieldName="DueDate" DisplayTemplate="{StaticResource displayTemplate}" EditTemplate="{StaticResource editTemplate}" />
                <dxg:GridColumn FieldName="PercentComplete" Width="80" Header="% Complete" DisplayTemplate="{StaticResource displayTemplate}" EditTemplate="{StaticResource editTemplate}">
                    <dxg:GridColumn.EditSettings>
                        <dxe:SpinEditSettings MaxValue="100"
      MinValue="0"
      MaskType="Numeric"
      Mask="P0"
      MaskUseAsDisplayFormat="True">
                        </dxe:SpinEditSettings>
                    </dxg:GridColumn.EditSettings>
                </dxg:GridColumn>
                <dxg:GridColumn FieldName="Note" Visible="False">
                    <dxg:GridColumn.EditSettings>
                        <dxe:MemoEditSettings ShowIcon="True" PopupWidth="250" MemoTextWrapping="Wrap" MemoVerticalScrollBarVisibility="Auto" />
                    </dxg:GridColumn.EditSettings>
                </dxg:GridColumn>
            </dxg:GridControl.Columns>
            <dxg:GridControl.View>
                <dxg:TableView AutoWidth="True" Name="view" ShowGroupedColumns="True" AllowGrouping="False">
                </dxg:TableView>
            </dxg:GridControl.View>
        </dxg:GridControl>
    </dxdb:DemoModuleControl>
</local:GridDemoModule>!$using System;
using System.Windows;
using System.Windows.Data;
using GridDemo;
using System.Windows.Markup;
using DevExpress.Xpf.DemoBase;


namespace GridDemo {
    [CodeFile("ModuleResources/MultipleGroupingTemplates(.SL).xaml")]
    [CodeFile("ModuleResources/MultipleGroupingClasses.(cs)")]
    public partial class MultipleGrouping : GridDemoModule {
        public MultipleGrouping() {
            InitializeComponent();
            gc = new GroupingControllerTasksWithCategories(grid);
            gc.AfterGrouping += new EventHandler(gc_AfterGrouping);
            InitButtonCaption();
        }

        GroupingControllerTasksWithCategories gc;
        void InitButtonCaption() {
            groupButton.Content = gc.IsCategoryGrouping ? " Ungroup by 'Category'" : "Group by 'Category'";
        }
        private void groupButton_Click(object sender, RoutedEventArgs e) {
            if(gc.CategoryColumn == null) {
                groupButton.IsEnabled = false;
                return;
            }
            if(!gc.CategoryColumn.IsGrouped)
                grid.GroupBy(gc.CategoryColumn);
            else grid.UngroupBy(gc.CategoryColumn);

        }
        void gc_AfterGrouping(object sender, EventArgs e) {
            InitButtonCaption();
        }
    }
}!�MSBAML```����D@GridDemo, Version=13.1.4.0, Culture=neutral, PublicKeyToken=null#clr-namespace:GridDemoGridDemoOKmscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089I2clr-namespace:System.Collections;assembly=mscorlibSystem.Collections1&clr-namespace:System;assembly=mscorlibSystemGridDemo.MultiSelection\XPresentationFramework, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35RNWindowsBase, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35WSPresentationCore, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35D9http://schemas.microsoft.com/winfx/2006/xaml/presentationRNSystem.Xaml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089:x,http://schemas.microsoft.com/winfx/2006/xamlfbDevExpress.Xpf.Grid.v13.1.Core, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49aa]DevExpress.Xpf.Grid.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49alhDevExpress.Xpf.Grid.v13.1.Extensions, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a@dxg2http://schemas.devexpress.com/winfx/2008/xaml/grida	]DevExpress.Xpf.Core.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a?dxe5http://schemas.devexpress.com/winfx/2008/xaml/editors	e
aDevExpress.Xpf.DemoBase.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49aAdxdb6http://schemas.devexpress.com/winfx/2008/xaml/demobase
;dx2http://schemas.devexpress.com/winfx/2008/xaml/core	"localclr-namespace:GridDemo	Dcollections2clr-namespace:System.Collections;assembly=mscorlib	0sys&clr-namespace:System;assembly=mscorlib	Dmc;http://schemas.openxmlformats.org/markup-compatibility/2006	:d2http://schemas.microsoft.com/expression/blend/2008	$
�Stretch=�$
�Stretch=�GridDemo.GridDemoModule)"UseGridControlWrapperAsDataContext.�	Resources
�MergedDictionaries
�Source-
'DevExpress.Xpf.DemoBase.NWindDataLoader NWindDataLoader#DevExpress.Xpf.Grid.TableView 
	tableView& DevExpress.Xpf.Grid.DataViewBaseShowTotalSummary IsTotalSummaryMenuEnabled& DevExpress.Xpf.Grid.GridViewBaseShowGroupedColumnsNavigationStyle	AutoWidth"DevExpress.Xpf.Grid.CardView cardView		FixedSize
AllowCardResizingCardHeaderBinding�Path
�RelativeSource�	Converter/	)DevExpress.Xpf.Core.FormatStringConverterFormatString"System.Collections.ArrayList 	Views��$-'/GridDemo;component/Themes/generic.xaml?��$F@/GridDemo;component/ModuleResources/MultiSelectionTemplates.xaml?�%&	&	&	1&	�...$
Cell=�.$		300Q�
....$	Row=��$Data.OrderID�
��*Self+$
Order ID: {0}����
Table View����
	Card View��.�/	
)DevExpress.Xpf.DemoBase.DemoModuleControl	(	!SupressGroupFramePaddingInOptions.	OptionsContent��.+�&
	 DevExpress.Xpf.Editors.CheckEdit
-
Name$ enableMultiSelectCheckEdit��
Content)	#DevExpress.Xpf.Core.ObjectConverter$Enable Multi-Selection
	IsChecked$
TrueY�$	DevExpress.Xpf.Core.GroupFrame$��	View Type��$�0,12,0,0q�.�(
	"DevExpress.Xpf.Editors.ListBoxEdit
-
Name$viewsListBox��%	DevExpress.Xpf.Editors.BaseEdit
ShowBorder.

SelectedIndex$0��Z�
ItemsSource�
�Source#[

StyleSettings:	4DevExpress.Xpf.Editors.RadioListBoxEditStyleSettings+%GridDemo.MultiSelectionOptionsControl-Name$*$ProductsMultiSelectionOptionsControl��$�0,12,0,0q�
Header$
Product��ComboBoxDisplayMember$ProductName��ComboBoxValueMember$	ProductID��ComboBoxItemsSource�$Products�#[-$'!PriceMultiSelectionOptionsControl��$�0,12,0,0q�$Price Range��$��Selected Records��$�0,12,0,0q�.�
-$SelectionRowsListBox��$	�240��$	�200��$
��Visible=� selectedRowItemTemplate 
ItemTemplate# [�Z��$GridControl.SelectedItems�!	Content.!%DevExpress.Xpf.Grid.GridControl-"Name$
"grid��)#DevExpress.Xpf.Grid.DataControlBase#
SelectionMode$	#Row=�$ItemsSource$�$InvoicesNew�#[%Columns%$DevExpress.Xpf.Grid.GridColumn-&Name$&colID��$DevExpress.Xpf.Grid.ColumnBase'	FieldName$
'OrderID��$DevExpress.Xpf.Grid.BaseColumn(MinWidth$(60��)Width$)60��*
AllowResizing]YDevExpress.Data.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a5/DevExpress.Utils.Design.DefaultBooleanConverter$*False+
FixedWidth+.
,Header$,ID-$&
colProduct��$'	ProductID��$
,Product$	(200��$	)200��-EditSettings-:	4DevExpress.Xpf.Editors.Settings.ComboBoxEditSettings<	6DevExpress.Xpf.Editors.Settings.LookUpEditSettingsBase.AutoComplete../ImmediatePopup/.0ValueMember$0	ProductID��1
DisplayMember$1ProductName��2ItemsSource2�$Products�#[-	$&colUnitPrice��$'	UnitPrice��$(50��$)50��-6	0DevExpress.Xpf.Editors.Settings.SpinEditSettings6	0DevExpress.Xpf.Editors.Settings.TextEditSettings3MaskType$
3Numeric=�4MaskUseAsDisplayFormat4.5Mask$5c��6MaskCulture$6en-US��-
$&colQuantity��$'Quantity��$(50��$)50��-$&colTotal��$'Total��$	(110��$	)110��7UnboundType82DevExpress.Utils.Design.UnboundColumnTypeConverter$
7Decimal8ReadOnly8.9UnboundExpression$9[UnitPrice] * [Quantity]��-$
3Numeric=�4.$5c��$6en-US��:View:-;Name$;defaultView��...$
Cell=�.<TotalSummary<)#DevExpress.Xpf.Grid.GridSummaryItem)#DevExpress.Xpf.Grid.SummaryItemBase=	FieldName$=Total��>SummaryType$>Custom=�?ShowInColumn$?Total��@
DisplayFormat$@Grand Total=${0:N}��AGroupSummaryA$=Total��$>Custom=�$@Grand Total=${0:N}��!P<local:GridDemoModule x:Class="GridDemo.MultiSelection"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
 xmlns:dxg="http://schemas.devexpress.com/winfx/2008/xaml/grid"
 xmlns:dxe="http://schemas.devexpress.com/winfx/2008/xaml/editors"
 xmlns:dxdb="http://schemas.devexpress.com/winfx/2008/xaml/demobase"
 xmlns:dx="http://schemas.devexpress.com/winfx/2008/xaml/core"
 xmlns:local="clr-namespace:GridDemo"
 xmlns:collections="clr-namespace:System.Collections;assembly=mscorlib"
 xmlns:sys="clr-namespace:System;assembly=mscorlib"
 xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    mc:Ignorable="d" d:DesignHeight="400" d:DesignWidth="800"
 HorizontalAlignment="Stretch" VerticalAlignment="Stretch" UseGridControlWrapperAsDataContext="True">
 <local:GridDemoModule.Resources>
  <ResourceDictionary>
   <ResourceDictionary.MergedDictionaries>
    <ResourceDictionary Source="/GridDemo;component/Themes/generic.xaml" />
                <ResourceDictionary Source="/GridDemo;component/ModuleResources/MultiSelectionTemplates.xaml" />
   </ResourceDictionary.MergedDictionaries>
            <dxdb:NWindDataLoader x:Key="NWindDataLoader" />
            <dxg:TableView x:Key="tableView" ShowTotalSummary="True" IsTotalSummaryMenuEnabled="False" ShowGroupedColumns="True"
          NavigationStyle="Cell" AutoWidth="True" />
            <dxg:CardView x:Key="cardView" FixedSize="300" AllowCardResizing="False" ShowTotalSummary="True" IsTotalSummaryMenuEnabled="False"
         ShowGroupedColumns="True" NavigationStyle="Row">
                <dxg:CardView.CardHeaderBinding>
                    <Binding Path="Data.OrderID" RelativeSource="{RelativeSource Self}">
                        <Binding.Converter>
                            <dx:FormatStringConverter FormatString="{}Order ID: {0}" />
                        </Binding.Converter>
                    </Binding>
                </dxg:CardView.CardHeaderBinding>
            </dxg:CardView>
   <collections:ArrayList x:Key="Views">
    <sys:String>Table View</sys:String>
    <sys:String>Card View</sys:String>
            </collections:ArrayList>
        </ResourceDictionary>
 </local:GridDemoModule.Resources>
 <dxdb:DemoModuleControl SupressGroupFramePaddingInOptions="False">
        <dxdb:DemoModuleControl.OptionsContent>
            <StackPanel>
                <dxe:CheckEdit x:Name="enableMultiSelectCheckEdit" Content="Enable Multi-Selection" IsChecked="True" Checked="EnableMultiSelectCheckEditChecked" Unchecked="EnableMultiSelectCheckEditUnchecked" />
                <dx:GroupFrame Header="View Type" Margin="0,12,0,0">
                    <dxe:ListBoxEdit x:Name="viewsListBox" ShowBorder="False" Background="{x:Null}" SelectedIndex="0" ItemsSource="{Binding Source={StaticResource Views}}">
                        <dxe:ListBoxEdit.StyleSettings>
                            <dxe:RadioListBoxEditStyleSettings />
                        </dxe:ListBoxEdit.StyleSettings>
                    </dxe:ListBoxEdit>
                </dx:GroupFrame>
                <local:MultiSelectionOptionsControl x:Name="ProductsMultiSelectionOptionsControl" Margin="0,12,0,0" Header="Product"
                ComboBoxItemsSource="{Binding Path=Products, Source={StaticResource NWindDataLoader}}" ComboBoxDisplayMember="ProductName"
                ComboBoxValueMember="ProductID" />
                <local:MultiSelectionOptionsControl x:Name="PriceMultiSelectionOptionsControl" Margin="0,12,0,0" Header="Price Range" />
                <dx:GroupFrame Header="Selected Records" Margin="0,12,0,0">
                    <dxe:ListBoxEdit x:Name="SelectionRowsListBox" Height="240" Background="{x:Null}" Width="200"
                                     ItemsSource="{Binding Path=GridControl.SelectedItems}" ScrollViewer.HorizontalScrollBarVisibility="Visible"
                                     ItemTemplate="{StaticResource selectedRowItemTemplate}" />
       </dx:GroupFrame>
            </StackPanel>
     </dxdb:DemoModuleControl.OptionsContent>
        <dxg:GridControl x:Name="grid" ItemsSource="{Binding Path=InvoicesNew, Source={StaticResource NWindDataLoader}}" CustomSummary="grid_CustomSummary" SelectionMode="Row" SelectionChanged="gridView_SelectionChanged" CurrentItemChanged="grid_CurrentItemChanged">
            <dxg:GridControl.Columns>
       <dxg:GridColumn x:Name="colID" FieldName="OrderID" MinWidth="60" Width="60" AllowResizing="False" FixedWidth="true" Header="ID" />
                <dxg:GridColumn x:Name="colProduct" FieldName="ProductID" Header="Product" MinWidth="200" Width="200">
                    <dxg:GridColumn.EditSettings>
                        <dxe:ComboBoxEditSettings AutoComplete="True" ImmediatePopup="True" ValueMember="ProductID" DisplayMember="ProductName" ItemsSource="{Binding Path=Products, Source={StaticResource NWindDataLoader}}" />
                    </dxg:GridColumn.EditSettings>
                </dxg:GridColumn>
                <dxg:GridColumn x:Name="colUnitPrice" FieldName="UnitPrice" MinWidth="50" Width="50">
        <dxg:GridColumn.EditSettings>
         <dxe:SpinEditSettings MaskType="Numeric" MaskUseAsDisplayFormat="True" Mask="c" MaskCulture="en-US" />
        </dxg:GridColumn.EditSettings>
       </dxg:GridColumn>
       <dxg:GridColumn x:Name="colQuantity" FieldName="Quantity" MinWidth="50" Width="50" />
       <dxg:GridColumn x:Name="colTotal" FieldName="Total" MinWidth="110" Width="110" UnboundType="Decimal" ReadOnly="True" UnboundExpression="[UnitPrice] * [Quantity]">
        <dxg:GridColumn.EditSettings>
         <dxe:TextEditSettings MaskType="Numeric" MaskUseAsDisplayFormat="True" Mask="c" MaskCulture="en-US" />
        </dxg:GridColumn.EditSettings>
       </dxg:GridColumn>
      </dxg:GridControl.Columns>
            <dxg:GridControl.View>
                <dxg:TableView x:Name="defaultView" ShowTotalSummary="True" IsTotalSummaryMenuEnabled="False" ShowGroupedColumns="True"
          NavigationStyle="Cell" AutoWidth="True" />
            </dxg:GridControl.View>
            <dxg:GridControl.TotalSummary>
       <dxg:GridSummaryItem FieldName="Total" SummaryType="Custom" ShowInColumn="Total" DisplayFormat="Grand Total=${0:N}" />
      </dxg:GridControl.TotalSummary>
      <dxg:GridControl.GroupSummary>
       <dxg:GridSummaryItem FieldName="Total" SummaryType="Custom" DisplayFormat="Grand Total=${0:N}" />
      </dxg:GridControl.GroupSummary>
        </dxg:GridControl>
    </dxdb:DemoModuleControl>
</local:GridDemoModule>!Ousing System.Linq;
using System;
using System.Collections.Generic;
using System.Windows;
using System.Windows.Data;
using DevExpress.Data;
using DevExpress.Xpf.DemoBase;
using DevExpress.Xpf.Grid;
using DevExpress.Xpf.Bars;
using System.Collections;
using System.Data;

namespace GridDemo {
    [CodeFile("Controls/MiltiSelectionOptionsControl.xaml.(cs)")]
    [CodeFile("Controls/MiltiSelectionOptionsControl(.SL).xaml")]
    [CodeFile("ModuleResources/MultiSelectionClasses.(cs)")]
    [CodeFile("ModuleResources/MultiSelectionTemplates(.SL).xaml")]
    public partial class MultiSelection : GridDemoModule {
        GridViewBase View { get { return (GridViewBase)grid.View; } }
        public MultiSelection() {
            InitializeComponent();
            viewsListBox.EditValueChanged += new DevExpress.Xpf.Editors.EditValueChangedEventHandler(viewsListBox_SelectionChanged);
            View.ShowGridMenu += new GridMenuEventHandler(View_ShowGridMenu);
            FillComboBoxes();
            ProductsMultiSelectionOptionsControl.SelectButtonClick += new EventHandler(SelectProductsButtonClick);
            ProductsMultiSelectionOptionsControl.UnselectButtonClick += new EventHandler(UnselectProductsButtonClick);
            ProductsMultiSelectionOptionsControl.ReselectButtonClick += new EventHandler(ReselectProductsButtonClick);
            PriceMultiSelectionOptionsControl.SelectButtonClick += new EventHandler(SelectPriceButtonClick);
            PriceMultiSelectionOptionsControl.UnselectButtonClick += new EventHandler(UnselectPriceButtonClick);
            PriceMultiSelectionOptionsControl.ReselectButtonClick += new EventHandler(ReselectPriceButtonClick);
        }

        void View_ShowGridMenu(object sender, GridMenuEventArgs e) {
            if(e.MenuType == GridMenuType.Column) {
                e.Customizations.Add(new RemoveBarItemAndLinkAction() { ItemName = DefaultColumnMenuItemNames.SortBySummary });
            }
        }
        void viewsListBox_SelectionChanged(object sender, DevExpress.Xpf.Editors.EditValueChangedEventArgs e) {
            grid.View = (GridViewBase)FindResource(viewsListBox.SelectedIndex == 0 ? "tableView" : "cardView");
        }

        DataTable dataTableFromGrid = null;
        DataTable DataTableFromGrid {
            get {
                if(dataTableFromGrid == null) {
                    dataTableFromGrid = ((DataView)grid.ItemsSource).Table;
                }
                return dataTableFromGrid;
            }
        }
        private void FillComboBoxes() {
            List<Range> listRanges = new List<Range>();
            const int lastRangeMinLimit = 240;
            const int rangeInList = 30;
            for(int i = 0; i <= lastRangeMinLimit; i += rangeInList) {
                listRanges.Add(new Range() { Text = ("$" + Convert.ToString(i) + " - $" + Convert.ToString(i + rangeInList)), Min = i, Max = (i + rangeInList) });
            }
            PriceMultiSelectionOptionsControl.ComboBox.ItemsSource = listRanges;
            PriceMultiSelectionOptionsControl.ComboBox.SelectedIndex = 0;
            ProductsMultiSelectionOptionsControl.ComboBox.SelectedIndex = 0;
        }
        void RunAction(RowFilter FilterDelegate, Action actionForRows) {
            try {
                grid.BeginSelection();
                ICollection rows = DataTableFromGrid.Rows;
                foreach(DataRow row in rows) {
                    if(FilterDelegate(row))
                        actionForRows(grid.GetRowHandleByListIndex(DataTableFromGrid.Rows.IndexOf(row)));
                }
            } finally {
                grid.EndSelection();
            }
        }
        delegate bool RowFilter(DataRow row);
        bool SelectProductsFilter(DataRow row) {
            return object.Equals((row["ProductID"]), (int)ProductsMultiSelectionOptionsControl.ComboBox.EditValue);
        }
        bool SelectRangeFilter(DataRow row) {
            Range range = (Range)PriceMultiSelectionOptionsControl.ComboBox.SelectedItem;
            return (((Convert.ToInt32(row["UnitPrice"]) >= range.Min) && (Convert.ToInt32(row["UnitPrice"]) <= range.Max)));
        }
        delegate void Action(int rowHandle);
        void SelectAction(int rowHandle) {
            grid.SelectItem(rowHandle);
        }
        void UnselectAction(int rowHandle) {
            grid.UnselectItem(rowHandle);
        }
        private void SelectProductsButtonClick(object sender, EventArgs e) {
            RunAction(SelectProductsFilter, SelectAction);
        }
        private void UnselectProductsButtonClick(object sender, EventArgs e) {
            RunAction(SelectProductsFilter, UnselectAction);
        }
        private void ReselectProductsButtonClick(object sender, EventArgs e) {
            grid.UnselectAll();
            RunAction(SelectProductsFilter, SelectAction);
        }
        private void SelectPriceButtonClick(object sender, EventArgs e) {
            RunAction(SelectRangeFilter, SelectAction);
        }
        private void UnselectPriceButtonClick(object sender, EventArgs e) {
            RunAction(SelectRangeFilter, UnselectAction);
        }
        private void ReselectPriceButtonClick(object sender, EventArgs e) {
            grid.UnselectAll();
            RunAction(SelectRangeFilter, SelectAction);
        }
        decimal sum = 0;
        private void grid_CustomSummary(object sender, DevExpress.Data.CustomSummaryEventArgs e) {
            if(object.Equals(e.SummaryProcess, CustomSummaryProcess.Start)) {
                sum = 0;
            }
            if(e.SummaryProcess == CustomSummaryProcess.Calculate) {
                if((grid != null) && (grid.View != null)) {
                    if(grid.View.IsRowSelected(e.RowHandle)) {
                        sum += (decimal)e.FieldValue;
                    }
                }
            }
            if(e.SummaryProcess == CustomSummaryProcess.Finalize)
                e.TotalValue = sum;
        }
        void UpdateSummary() {
            if(grid != null) {
                grid.UpdateTotalSummary();
                grid.UpdateGroupSummary();
            }
        }
        private void gridView_SelectionChanged(object sender, GridSelectionChangedEventArgs e) {
            UpdateSummary();
        }
        private void EnableMultiSelectCheckEditChecked(object sender, RoutedEventArgs e) {
            SetMultiSelectMode(true);
        }
        private void EnableMultiSelectCheckEditUnchecked(object sender, RoutedEventArgs e) {
            SetMultiSelectMode(false);
        }
        void SetMultiSelectMode(bool enabled) {
            grid.SelectionMode = enabled ? MultiSelectMode.Row : MultiSelectMode.None;
            ProductsMultiSelectionOptionsControl.IsEnabled = enabled;
            PriceMultiSelectionOptionsControl.IsEnabled = enabled;
        }

        private void grid_CurrentItemChanged(object sender, CurrentItemChangedEventArgs e) {
            if((enableMultiSelectCheckEdit != null) && ((bool)enableMultiSelectCheckEdit.IsChecked))
                UpdateSummary();
        }
    }
}!jMSBAML```����OKmscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089M4clr-namespace:System.Globalization;assembly=mscorlibSystem.GlobalizationD@GridDemo, Version=13.1.4.0, Culture=neutral, PublicKeyToken=null#clr-namespace:GridDemoGridDemo1&clr-namespace:System;assembly=mscorlibSystemGridDemo.MultiView\XPresentationFramework, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35RNWindowsBase, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35WSPresentationCore, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35D9http://schemas.microsoft.com/winfx/2006/xaml/presentationRNSystem.Xaml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089:x,http://schemas.microsoft.com/winfx/2006/xamlGglobal4clr-namespace:System.Globalization;assembly=mscorliba]DevExpress.Xpf.Core.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a;dx2http://schemas.devexpress.com/winfx/2008/xaml/corefbDevExpress.Xpf.Grid.v13.1.Core, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49aa]DevExpress.Xpf.Grid.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49al	hDevExpress.Xpf.Grid.v13.1.Extensions, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a@dxg2http://schemas.devexpress.com/winfx/2008/xaml/grid	Gdxgt<http://schemas.devexpress.com/winfx/2008/xaml/grid/themekeys?dxe5http://schemas.devexpress.com/winfx/2008/xaml/editorse
aDevExpress.Xpf.DemoBase.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49aAdxdb6http://schemas.devexpress.com/winfx/2008/xaml/demobase
"localclr-namespace:GridDemo
0sys&clr-namespace:System;assembly=mscorlib
Dmc;http://schemas.openxmlformats.org/markup-compatibility/2006
:d2http://schemas.microsoft.com/expression/blend/2008
c_System.Windows.Interactivity, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35Bi:http://schemas.microsoft.com/expression/2010/interactivityGridDemo.GridDemoModule)"UseGridControlWrapperAsDataContext.�	Resources
�MergedDictionaries
�SourceGridDemo.DemoDataProvider DemoDataProvider��$-'/GridDemo;component/Themes/generic.xaml?��$A;/GridDemo;component/ModuleResources/MultiViewTemplates.xaml?��$E?/GridDemo;component/ModuleResources/MultiViewViewTemplates.xaml?�%&	.�/
)DevExpress.Xpf.DemoBase.DemoModuleControlOptionsContent$DevExpress.Xpf.Core.GroupFrame$��	View Type��$	�Top=�.�("DevExpress.Xpf.Editors.ListBoxEdit-$�multiViewListBox��$�0,0,30,0q�%DevExpress.Xpf.Editors.BaseEdit
ShowBorder.
DisplayMember$DisplayName��
SelectedIndex$0��Z�
StyleSettings:4DevExpress.Xpf.Editors.RadioListBoxEditStyleSettings	Items	 GridDemo.MultiViewViewItem
DisplayName$
	TableView��Content���*	$GridDemo.MultiViewTableViewViewModel	$
TreeListView�����-
'GridDemo.MultiViewTreeListViewViewModel
$
CardView�����)#GridDemo.MultiViewCardViewViewModel$
Multi-Row TableView�����0*GridDemo.MultiViewBandedTableViewViewModel$
Multi-Row TreeListView�����3
-GridDemo.MultiViewBandedTreeListViewViewModel
Content.��$�-1q���
�Path$
SelectedItem.Content��ElementName$multiViewListBox��!<local:GridDemoModule x:Class="GridDemo.MultiView"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:global="clr-namespace:System.Globalization;assembly=mscorlib"
    xmlns:dx="http://schemas.devexpress.com/winfx/2008/xaml/core"
    xmlns:dxg="http://schemas.devexpress.com/winfx/2008/xaml/grid"
    xmlns:dxgt="http://schemas.devexpress.com/winfx/2008/xaml/grid/themekeys"
 xmlns:dxe="http://schemas.devexpress.com/winfx/2008/xaml/editors"
    xmlns:dxdb="http://schemas.devexpress.com/winfx/2008/xaml/demobase"
    xmlns:local="clr-namespace:GridDemo"
    xmlns:sys="clr-namespace:System;assembly=mscorlib"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity"
    mc:Ignorable="d" d:DesignHeight="400" d:DesignWidth="800" UseGridControlWrapperAsDataContext="True">
    <local:GridDemoModule.Resources>
        <ResourceDictionary>
            <ResourceDictionary.MergedDictionaries>
                <ResourceDictionary Source="/GridDemo;component/Themes/generic.xaml" />
                <ResourceDictionary Source="/GridDemo;component/ModuleResources/MultiViewTemplates.xaml" />
                <ResourceDictionary Source="/GridDemo;component/ModuleResources/MultiViewViewTemplates.xaml" />
            </ResourceDictionary.MergedDictionaries>
            <local:DemoDataProvider x:Key="DemoDataProvider" />
        </ResourceDictionary>
    </local:GridDemoModule.Resources>
    <dxdb:DemoModuleControl>
        <dxdb:DemoModuleControl.OptionsContent>
            <dx:GroupFrame Header="View Type" VerticalAlignment="Top">
                <dxe:ListBoxEdit Name="multiViewListBox" Margin="0,0,30,0" ShowBorder="False" DisplayMember="DisplayName" SelectedIndex="0" Background="{x:Null}">
                    <dxe:ListBoxEdit.StyleSettings>
                        <dxe:RadioListBoxEditStyleSettings/>
                    </dxe:ListBoxEdit.StyleSettings>
                    <dxe:ListBoxEdit.Items>
                        <local:MultiViewViewItem DisplayName="TableView">
                            <local:MultiViewViewItem.Content>
                                <ContentPresenter>
                                    <ContentPresenter.Content>
                                        <local:MultiViewTableViewViewModel/>
                                    </ContentPresenter.Content>
                                </ContentPresenter>
                            </local:MultiViewViewItem.Content>
                        </local:MultiViewViewItem>
                        <local:MultiViewViewItem DisplayName="TreeListView">
                            <local:MultiViewViewItem.Content>
                                <ContentPresenter>
                                    <ContentPresenter.Content>
                                        <local:MultiViewTreeListViewViewModel/>
                                    </ContentPresenter.Content>
                                </ContentPresenter>
                            </local:MultiViewViewItem.Content>
                        </local:MultiViewViewItem>
                        <local:MultiViewViewItem DisplayName="CardView">
                            <local:MultiViewViewItem.Content>
                                <ContentPresenter>
                                    <ContentPresenter.Content>
                                        <local:MultiViewCardViewViewModel/>
                                    </ContentPresenter.Content>
                                </ContentPresenter>
                            </local:MultiViewViewItem.Content>
                        </local:MultiViewViewItem>
                        <local:MultiViewViewItem DisplayName="Multi-Row TableView">
                            <local:MultiViewViewItem.Content>
                                <ContentPresenter>
                                    <ContentPresenter.Content>
                                        <local:MultiViewBandedTableViewViewModel/>
                                    </ContentPresenter.Content>
                                </ContentPresenter>
                            </local:MultiViewViewItem.Content>
                        </local:MultiViewViewItem>
                        <local:MultiViewViewItem DisplayName="Multi-Row TreeListView">
                            <local:MultiViewViewItem.Content>
                                <ContentPresenter>
                                    <ContentPresenter.Content>
                                        <local:MultiViewBandedTreeListViewViewModel/>
                                    </ContentPresenter.Content>
                                </ContentPresenter>
                            </local:MultiViewViewItem.Content>
                        </local:MultiViewViewItem>
                    </dxe:ListBoxEdit.Items>
                </dxe:ListBoxEdit>
            </dx:GroupFrame>
        </dxdb:DemoModuleControl.OptionsContent>
        <ContentControl Content="{Binding Path=SelectedItem.Content, ElementName=multiViewListBox}" Margin="-1"/>
    </dxdb:DemoModuleControl>
</local:GridDemoModule>!using System;
using System.Collections.Generic;
using System.Windows;
using System.Windows.Input;
using System.Windows.Threading;
using DevExpress.Xpf.Core.Commands;
using DevExpress.Xpf.DemoBase;
using DevExpress.Xpf.DemoBase.Helpers;
using DevExpress.Xpf.Grid;

namespace GridDemo {
    [CodeFile("ModuleResources/MultiViewTemplates(.SL).xaml")]
    [CodeFile("ModuleResources/MultiViewViewTemplates(.SL).xaml")]
    [CodeFile("ModuleResources/SharedResources(.SL).xaml")]
    [CodeFile("ModuleResources/MultiViewClasses.(cs)")]
    [CodeFile("ModuleResources/MultiViewViewModel.(cs)")]
    [CodeFile("Controls/Converters.(cs)")]
    public partial class MultiView : GridDemoModule {
        public MultiView() {
            InitializeComponent();
            BeforeModuleDisappear += new RoutedEventHandler(MultiView_BeforeModuleDisappear);
        }

        void MultiView_BeforeModuleDisappear(object sender, RoutedEventArgs e) {
            multiViewListBox.Items.Clear();
        }
    }
}!MSBAML```����D@GridDemo, Version=13.1.4.0, Culture=neutral, PublicKeyToken=null#clr-namespace:GridDemoGridDemoOKmscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089I2clr-namespace:System.Collections;assembly=mscorlibSystem.CollectionsGridDemo.NewItemRow\XPresentationFramework, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35RNWindowsBase, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35WSPresentationCore, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35D9http://schemas.microsoft.com/winfx/2006/xaml/presentationRNSystem.Xaml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089:x,http://schemas.microsoft.com/winfx/2006/xamla]DevExpress.Xpf.Core.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a;dx2http://schemas.devexpress.com/winfx/2008/xaml/corefbDevExpress.Xpf.Grid.v13.1.Core, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49aa]DevExpress.Xpf.Grid.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49al	hDevExpress.Xpf.Grid.v13.1.Extensions, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a@dxg2http://schemas.devexpress.com/winfx/2008/xaml/grid	?dxe5http://schemas.devexpress.com/winfx/2008/xaml/editorse
aDevExpress.Xpf.DemoBase.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49aAdxdb6http://schemas.devexpress.com/winfx/2008/xaml/demobase
"localclr-namespace:GridDemo
Dcollections2clr-namespace:System.Collections;assembly=mscorlib
Dmc;http://schemas.openxmlformats.org/markup-compatibility/2006
:d2http://schemas.microsoft.com/expression/blend/2008
�	Resources
-
'DevExpress.Xpf.DemoBase.NWindDataLoader NWindDataLoader�%&	.�/
)DevExpress.Xpf.DemoBase.DemoModuleControl(!SupressGroupFramePaddingInOptions.OptionsContent����Orientation$Vertical=�.+�$DevExpress.Xpf.Core.GroupFrame$��New Item Row Position��.�("DevExpress.Xpf.Editors.ListBoxEdit-%DevExpress.Xpf.Editors.BaseEdit
ShowBorder.SelectedItem��ElementName$
view���Path$NewItemRowPosition��Mode$TwoWay=�	�UpdateSourceTrigger$	PropertyChanged=�

StyleSettings
:4DevExpress.Xpf.Editors.RadioListBoxEditStyleSettingsItems.,&DevExpress.Xpf.Grid.NewItemRowPositionTop=�
Bottom=�None=�Content.%DevExpress.Xpf.Grid.GridControl-$
�grid��
Columns
$	DevExpress.Xpf.Grid.GridColumn	-$
DevExpress.Xpf.Grid.ColumnBase
Name$
colOrderID��
	FieldName$
OrderID��$DevExpress.Xpf.Grid.BaseColumn
Header)#DevExpress.Xpf.Core.ObjectConverter$IDWidth$50��MinWidth$30��	-$colProductID��$	ProductID��$
Product$	100��
EditSettings:
4DevExpress.Xpf.Editors.Settings.ComboBoxEditSettings
<6DevExpress.Xpf.Editors.Settings.LookUpEditSettingsBaseAutoComplete.ImmediatePopup.ValueMember$	ProductID��
DisplayMember$ProductName��ItemsSource�*
Products+
�Source#[	-$colUnitPrice��$	UnitPrice��$	100��60DevExpress.Xpf.Editors.Settings.SpinEditSettings60DevExpress.Xpf.Editors.Settings.TextEditSettingsMaskType$
Numeric=�MaskUseAsDisplayFormat.Mask$c��MaskCulture$en-US��	-$colQuantity��$Quantity��$	100��$
Numeric=�$d��	-$colDiscount��$Discount��$	100��$
Numeric=�.$p0��View#DevExpress.Xpf.Grid.TableView-$
�view��	AutoWidth. NewItemRowPosition$ Bottom=�& DevExpress.Xpf.Grid.GridViewBase!ShowGroupedColumns!.!S<local:GridDemoModule x:Class="GridDemo.NewItemRow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:dx="http://schemas.devexpress.com/winfx/2008/xaml/core"
 xmlns:dxg="http://schemas.devexpress.com/winfx/2008/xaml/grid"
 xmlns:dxe="http://schemas.devexpress.com/winfx/2008/xaml/editors"
 xmlns:dxdb="http://schemas.devexpress.com/winfx/2008/xaml/demobase"
 xmlns:local="clr-namespace:GridDemo"
 xmlns:collections="clr-namespace:System.Collections;assembly=mscorlib"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    mc:Ignorable="d" d:DesignHeight="400" d:DesignWidth="800">
    <local:GridDemoModule.Resources>
        <dxdb:NWindDataLoader x:Key="NWindDataLoader" />
    </local:GridDemoModule.Resources>
    <dxdb:DemoModuleControl SupressGroupFramePaddingInOptions="False">
        <dxdb:DemoModuleControl.OptionsContent>
            <StackPanel Orientation="Vertical">
                <dx:GroupFrame Header="New Item Row Position">
                    <dxe:ListBoxEdit ShowBorder="False" SelectedItem="{Binding ElementName=view, Path=NewItemRowPosition, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" SelectedIndexChanged="newItemRowPositionChanged">
                        <dxe:ListBoxEdit.StyleSettings>
                            <dxe:RadioListBoxEditStyleSettings />
                        </dxe:ListBoxEdit.StyleSettings>
                        <dxg:NewItemRowPosition>Top</dxg:NewItemRowPosition>
                        <dxg:NewItemRowPosition>Bottom</dxg:NewItemRowPosition>
                        <dxg:NewItemRowPosition>None</dxg:NewItemRowPosition>
                    </dxe:ListBoxEdit>
                </dx:GroupFrame>
            </StackPanel>
        </dxdb:DemoModuleControl.OptionsContent>

        <dxg:GridControl Name="grid">
            <dxg:GridControl.Columns>
                <dxg:GridColumn Name="colOrderID" FieldName="OrderID" Header="ID" Width="50" MinWidth="30" />
                <dxg:GridColumn Name="colProductID" FieldName="ProductID" Header="Product" Width="100">
                    <dxg:GridColumn.EditSettings>
                        <dxe:ComboBoxEditSettings AutoComplete="True" ImmediatePopup="True" ValueMember="ProductID" DisplayMember="ProductName" ItemsSource="{Binding Products, Source={StaticResource NWindDataLoader}}" />
                    </dxg:GridColumn.EditSettings>
                </dxg:GridColumn>
                <dxg:GridColumn Name="colUnitPrice" FieldName="UnitPrice" Width="100">
                    <dxg:GridColumn.EditSettings>
                        <dxe:SpinEditSettings MaskType="Numeric" MaskUseAsDisplayFormat="True" Mask="c" MaskCulture="en-US" />
                    </dxg:GridColumn.EditSettings>
                </dxg:GridColumn>
                <dxg:GridColumn Name="colQuantity" FieldName="Quantity" Width="100">
                    <dxg:GridColumn.EditSettings>
                        <dxe:SpinEditSettings MaskType="Numeric" Mask="d" />
                    </dxg:GridColumn.EditSettings>
                </dxg:GridColumn>
                <dxg:GridColumn Name="colDiscount" FieldName="Discount" Width="100">
                    <dxg:GridColumn.EditSettings>
                        <dxe:TextEditSettings MaskType="Numeric" MaskUseAsDisplayFormat="True" Mask="p0" />
                    </dxg:GridColumn.EditSettings>
                </dxg:GridColumn>
            </dxg:GridControl.Columns>
            <dxg:GridControl.View>
                <dxg:TableView Name="view" AutoWidth="true" NewItemRowPosition="Bottom" ShowGroupedColumns="True" InitNewRow="view_InitNewRow" />
            </dxg:GridControl.View>
        </dxg:GridControl>
    </dxdb:DemoModuleControl>
</local:GridDemoModule>!�using System;
using System.Collections.Generic;
using System.Windows.Data;
using GridDemo;
using DevExpress.Xpf.DemoBase;
using DevExpress.Xpf.Grid;

namespace GridDemo {
 public partial class NewItemRow : GridDemoModule {
        int newRowID = 10000;
  public NewItemRow() {
   InitializeComponent();

            grid.ItemsSource = ((NWindDataLoader)Resources["NWindDataLoader"]).OrderDetailsNew;
        }

        protected override void RaiseModuleAppear() {
            base.RaiseModuleAppear();
            view.ScrollIntoView(view.FocusedRowHandle);
        }
  void view_InitNewRow(object sender, DevExpress.Xpf.Grid.InitNewRowEventArgs e) {
   grid.SetCellValue(e.RowHandle, colQuantity, 1);
            grid.SetCellValue(e.RowHandle, colUnitPrice, 100);
            grid.SetCellValue(e.RowHandle, colDiscount, 0);
            grid.SetCellValue(e.RowHandle, colOrderID, newRowID++);
  }
        void newItemRowPositionChanged(object sender, System.Windows.RoutedEventArgs e) {
            if(view.NewItemRowPosition != NewItemRowPosition.None) {
                view.FocusedRowHandle = GridControl.NewItemRowHandle;
                view.ScrollIntoView(view.FocusedRowHandle);
            }
        }
 }
}!�
MSBAML```����D@GridDemo, Version=13.1.4.0, Culture=neutral, PublicKeyToken=null#clr-namespace:GridDemoGridDemo#clr-namespace:GridDemoGridDemoOKmscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089I2clr-namespace:System.Collections;assembly=mscorlibSystem.Collections1&clr-namespace:System;assembly=mscorlibSystem!GridDemo.PersistentRowState\XPresentationFramework, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35RNWindowsBase, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35WSPresentationCore, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35D9http://schemas.microsoft.com/winfx/2006/xaml/presentationRNSystem.Xaml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089:x,http://schemas.microsoft.com/winfx/2006/xamla]DevExpress.Xpf.Core.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a;dx2http://schemas.devexpress.com/winfx/2008/xaml/corefbDevExpress.Xpf.Grid.v13.1.Core, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49aa]DevExpress.Xpf.Grid.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49al	hDevExpress.Xpf.Grid.v13.1.Extensions, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a@dxg2http://schemas.devexpress.com/winfx/2008/xaml/grid	Gdxgt<http://schemas.devexpress.com/winfx/2008/xaml/grid/themekeys?dxe5http://schemas.devexpress.com/winfx/2008/xaml/editors"localclr-namespace:GridDemo#dxdemoclr-namespace:GridDemoe
aDevExpress.Xpf.DemoBase.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49aAdxdb6http://schemas.devexpress.com/winfx/2008/xaml/demobase
Dcollections2clr-namespace:System.Collections;assembly=mscorlib
0sys&clr-namespace:System;assembly=mscorlib
Dmc;http://schemas.openxmlformats.org/markup-compatibility/2006
:d2http://schemas.microsoft.com/expression/blend/2008
�	Resources
�MergedDictionaries
�Source"System.Collections.ArrayList 	Views��$-'/GridDemo;component/Themes/generic.xaml?��$JD/GridDemo;component/ModuleResources/PersistentRowStateTemplates.xaml?�%6&	��
Table View����
	Card View��.�/
)DevExpress.Xpf.DemoBase.DemoModuleControlOptionsContent$DevExpress.Xpf.Core.GroupFrame$��	View Type��$	�Top=�.�("DevExpress.Xpf.Editors.ListBoxEdit-Name$viewListBox��$�0,0,30,0q�%DevExpress.Xpf.Editors.BaseEdit
ShowBorder.
SelectedIndex$0�ItemsSource�
�Source#[�Z�	
StyleSettings	:4DevExpress.Xpf.Editors.RadioListBoxEditStyleSettings
Content.
%DevExpress.Xpf.Grid.GridControl-$
�grid��Columns$DevExpress.Xpf.Grid.GridColumn-Name$colTrademark��$	DevExpress.Xpf.Grid.ColumnBase
		FieldName$
	Trademark��$
DevExpress.Xpf.Grid.BaseColumn
MinWidth$50��
Width$	100��-$colModel��$
Model��$50��-$colCategory��$
Category��$50��-$colPrice��$
Price��$50��	EditSettings60DevExpress.Xpf.Editors.Settings.TextEditSettings60DevExpress.Xpf.Editors.Settings.BaseEditSettings
DisplayFormat$$0��MaskType$
Numeric=�!
<local:GridDemoModule x:Class="GridDemo.PersistentRowState"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:dx="http://schemas.devexpress.com/winfx/2008/xaml/core"
    xmlns:dxg="http://schemas.devexpress.com/winfx/2008/xaml/grid"
    xmlns:dxgt="http://schemas.devexpress.com/winfx/2008/xaml/grid/themekeys"
 xmlns:dxe="http://schemas.devexpress.com/winfx/2008/xaml/editors"
    xmlns:local="clr-namespace:GridDemo"
    xmlns:dxdemo="clr-namespace:GridDemo"
    xmlns:dxdb="http://schemas.devexpress.com/winfx/2008/xaml/demobase"
    xmlns:collections="clr-namespace:System.Collections;assembly=mscorlib"
    xmlns:sys="clr-namespace:System;assembly=mscorlib"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    mc:Ignorable="d" d:DesignHeight="400" d:DesignWidth="800">
    <local:GridDemoModule.Resources>
        <ResourceDictionary>
            <ResourceDictionary.MergedDictionaries>
                <ResourceDictionary Source="/GridDemo;component/Themes/generic.xaml" />
                <ResourceDictionary Source="/GridDemo;component/ModuleResources/PersistentRowStateTemplates.xaml" />
            </ResourceDictionary.MergedDictionaries>
            <collections:ArrayList x:Key="Views">
                <sys:String>Table View</sys:String>
                <sys:String>Card View</sys:String>
            </collections:ArrayList>
        </ResourceDictionary>
    </local:GridDemoModule.Resources>
    <dxdb:DemoModuleControl>
        <dxdb:DemoModuleControl.OptionsContent>
            <dx:GroupFrame Header="View Type" VerticalAlignment="Top">
                <dxe:ListBoxEdit Margin="0,0,30,0" ShowBorder="False" SelectedIndex="0" x:Name="viewListBox" ItemsSource="{Binding Source={StaticResource Views}}" EditValueChanged="viewListBox_SelectionChanged" Background="{x:Null}">
                    <dxe:ListBoxEdit.StyleSettings>
                        <dxe:RadioListBoxEditStyleSettings />
                    </dxe:ListBoxEdit.StyleSettings>
                </dxe:ListBoxEdit>
            </dx:GroupFrame>
        </dxdb:DemoModuleControl.OptionsContent>
        <dxg:GridControl Name="grid">
            <dxg:GridControl.Columns>
                <dxg:GridColumn x:Name="colTrademark" FieldName="Trademark" MinWidth="50" Width="100" />
                <dxg:GridColumn x:Name="colModel" FieldName="Model" MinWidth="50" />
                <dxg:GridColumn x:Name="colCategory" FieldName="Category" MinWidth="50" />
                <dxg:GridColumn x:Name="colPrice" FieldName="Price" MinWidth="50">
                    <dxg:GridColumn.EditSettings>
                        <dxe:TextEditSettings DisplayFormat="$0" MaskType="Numeric" />
                    </dxg:GridColumn.EditSettings>
                </dxg:GridColumn>
            </dxg:GridControl.Columns>
        </dxg:GridControl>
    </dxdb:DemoModuleControl>
</local:GridDemoModule>!�
using System;
using System.Runtime.InteropServices;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Controls.Primitives;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Threading;
using DevExpress.Xpf.Core;
using DevExpress.Xpf.DemoBase.DataClasses;
using DevExpress.Xpf.Grid;
using DevExpress.Xpf.DemoBase;
using DevExpress.Xpf.Utils;
using DevExpress.Xpf.Core.Commands;

namespace GridDemo {
    [CodeFile("ModuleResources/PersistentRowStateTemplates(.SL).xaml")]
    [CodeFile("ModuleResources/PersistentRowStateClasses.(cs)")]
    public partial class PersistentRowState : GridDemoModule {
        public static readonly DependencyProperty SetCursorPositionCommandProperty;
        public static readonly DependencyProperty CanExecuteHandlerCommandProperty;
        static PersistentRowState() {
            Type ownerType = typeof(PersistentRowState);
            SetCursorPositionCommandProperty = DependencyPropertyManager.Register("SetCursorPositionCommand", typeof(ICommand), ownerType);
            CanExecuteHandlerCommandProperty = DependencyPropertyManager.Register("CanExecuteHandlerCommand", typeof(ICommand), ownerType);
        }
        public PersistentRowState() {
            DataContext = this;
            SetCursorPositionCommand = new DelegateCommand<FrameworkElement>(SetCursorPosition);
            CanExecuteHandlerCommand = new DelegateCommand<CanExecuteRoutedEventArgs>(OnDescriptionTextBoxCommandPreviewCanExecute);
            InitializeComponent();
            grid.ItemsSource = CarsData.NewDataView;
            UpdateView();
        }
        private void viewListBox_SelectionChanged(object sender, DevExpress.Xpf.Editors.EditValueChangedEventArgs e) {
            if(grid == null)
                return;
            UpdateView();
        }
        void UpdateView() {
            if(viewListBox.SelectedIndex == 0)
                grid.View = (GridViewBase)FindResource("gridView");
            if(viewListBox.SelectedIndex == 1)
                grid.View = (GridViewBase)FindResource("cardView");
        }
        private void SetCursorPosition(FrameworkElement sender) {
            this.sender = sender;
            Dispatcher.BeginInvoke(DispatcherPriority.Render, new Action(SetCursorPositionCore));
        }
        FrameworkElement sender;
        void SetCursorPositionCore() {
            Point point = sender.PointToScreen(new Point(sender.ActualWidth / 2, sender.ActualHeight / 2));
            UnsafeNativeMethods.SetCursorPos((int)point.X, (int)point.Y);
        }
        void OnDescriptionTextBoxCommandPreviewCanExecute(CanExecuteRoutedEventArgs e) {
            if(e.Command == EditingCommands.MoveDownByLine ||
                e.Command == EditingCommands.MoveUpByLine ||
                e.Command == EditingCommands.MoveUpByPage ||
                e.Command == EditingCommands.MoveDownByPage) {
                e.ContinueRouting = true;
            }
        }
        public ICommand SetCursorPositionCommand {
            get { return (ICommand)GetValue(SetCursorPositionCommandProperty); }
            set { SetValue(SetCursorPositionCommandProperty, value); }
        }
        public ICommand CanExecuteHandlerCommand {
            get { return (ICommand)GetValue(CanExecuteHandlerCommandProperty); }
            set { SetValue(CanExecuteHandlerCommandProperty, value); }
        }
    }
}!�MSBAML```����OKmscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e0891&clr-namespace:System;assembly=mscorlibSystemD@GridDemo, Version=13.1.4.0, Culture=neutral, PublicKeyToken=null#clr-namespace:GridDemoGridDemo#GridDemo.PLinqInstantFeedback\XPresentationFramework, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35RNWindowsBase, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35WSPresentationCore, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35D9http://schemas.microsoft.com/winfx/2006/xaml/presentationRNSystem.Xaml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089:x,http://schemas.microsoft.com/winfx/2006/xaml6sys&clr-namespace:System;assembly=mscorlib(localclr-namespace:GridDemoa]DevExpress.Xpf.Core.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a;dx2http://schemas.devexpress.com/winfx/2008/xaml/core?dxe5http://schemas.devexpress.com/winfx/2008/xaml/editorsfbDevExpress.Xpf.Grid.v13.1.Core, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49aa]DevExpress.Xpf.Grid.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49al	hDevExpress.Xpf.Grid.v13.1.Extensions, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a@dxg2http://schemas.devexpress.com/winfx/2008/xaml/grid	e
aDevExpress.Xpf.DemoBase.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49aAdxdb6http://schemas.devexpress.com/winfx/2008/xaml/demobase
Dmc;http://schemas.openxmlformats.org/markup-compatibility/2006
:d2http://schemas.microsoft.com/expression/blend/2008
c_System.Windows.Interactivity, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35Bi:http://schemas.microsoft.com/expression/2010/interactivity$
�Stretch=�$
�Stretch=��	Resources
�MergedDictionaries
�Source0*GridDemo.PLinqInstantFeedbackDemoViewModel %!PLinqInstantFeedbackDemoViewModel
CountItems"GridDemo.CountItemCollectionGridDemo.CountItemCountDisplayName��$-'/GridDemo;component/Themes/generic.xaml?��$LF/GridDemo;component/ModuleResources/PLinqInstantFeedbackTemplates.xaml?�%u&	$100000�$Small��$
1000000�$Medium��$
3000000�$Large��.�/
)DevExpress.Xpf.DemoBase.DemoModuleControlOptionsTopText$HBSpecify the number or Rows you’d like to view within the DXGrid.��OptionsContent��.+�$DevExpress.Xpf.Core.GroupFrame$
��Rows��.�("DevExpress.Xpf.Editors.ListBoxEdit
SelectedIndex$1� CountItemTemplate	ItemTemplate#	[%DevExpress.Xpf.Editors.BaseEdit

ShowBorder
.�Z�ItemsSource��Path$DataContext.CountItems�
SelectedItem
�$#DataContext.SelectedCountItem��Mode$TwoWay=�
StyleSettings:4DevExpress.Xpf.Editors.RadioListBoxEditStyleSettingsC	=DevExpress.Xpf.Core.ServerMode.PLinqInstantFeedbackDataSource	-$�pLinqInstantSource��	
ListSource�$DataContext.ListSource�Content.��DataContext#[.+�%
DevExpress.Xpf.Grid.GridControl
-$
�grid��)#DevExpress.Xpf.Grid.DataControlBaseDesignTimeDataObjectTypeGridDemo.OrderData"ItemsSource��ElementName$pLinqInstantSource��$
Data�
Columns$
DevExpress.Xpf.Grid.GridColumn
-
Name$
colOrderId��$DevExpress.Xpf.Grid.ColumnBase	FieldName$
OrderId��$DevExpress.Xpf.Grid.BaseColumn
Header)#DevExpress.Xpf.Core.ObjectConverter$IDWidth$60��MinWidth$60��
FixedWidth.
AllowResizing]YDevExpress.Data.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a5/DevExpress.Utils.Design.DefaultBooleanConverter$False

AllowGrouping$FalseAllowColumnFiltering$False
-$colCustomerName��$CustomerName��$	180��
-$colOrderDate��$	OrderDate��$80�� 

GroupInterval$ 	DateRange=�!EditSettings!60DevExpress.Xpf.Editors.Settings.DateEditSettings60DevExpress.Xpf.Editors.Settings.BaseEditSettings"
DisplayFormat$"d��
-$colProductCategory��$ProductCategory��$	100�� categoryCellTemplate#CellTemplate##[!:4DevExpress.Xpf.Editors.Settings.ComboBoxEditSettings categoryTemplate<6DevExpress.Xpf.Editors.Settings.LookUpEditSettingsBase$ItemTemplate#$[%ItemsSource%�$
Categories�
-$colProductName��$ProductName��$	180��
-$colQuantity��$Quantity��$60��
-	$colPrice��$Price��$60��
-
$
colIsReady��$
IsReady��$60��'& HorizontalHeaderContentAlignment$&Center=�!71DevExpress.Xpf.Editors.Settings.CheckEditSettings'
View'#DevExpress.Xpf.Grid.TableView-(Name$
(view��& DevExpress.Xpf.Grid.DataViewBase)ShowTotalSummary).*ShowAutoFilterRow*.+	AutoWidth+.,RowAnimationKind$
,None=�-WaitIndicatorType-�$IsGeneratingOrderData� .*GeneratingDataToWaitIndicatorTypeConverter.�	Converter#.[/
TotalSummary/)#DevExpress.Xpf.Grid.GridSummaryItem)#DevExpress.Xpf.Grid.SummaryItemBase0	FieldName$0CustomerName��1SummaryType$1Count=�)#DevExpress.Xpf.Core.BackgroundPanel %!WaitIndicatorWithProgressTemplate#�[$�Center=�$�Center=�y��$IsGeneratingOrderData� BoolToVisibilityConverter#.[.(System.Windows.Interactivity.Interaction2Triggers2/)System.Windows.Interactivity.EventTrigger3	EventName$3BeforeModuleDisappear��.(System.Windows.Interactivity.TriggerBase4Actions.460System.Windows.Interactivity.InvokeCommandAction5Command5�$pLinqInstantSource��$DisposeCommand�!
<local:GridDemoModule x:Class="GridDemo.PLinqInstantFeedback"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:sys="clr-namespace:System;assembly=mscorlib"
    xmlns:local="clr-namespace:GridDemo"
    xmlns:dx="http://schemas.devexpress.com/winfx/2008/xaml/core"
    xmlns:dxe="http://schemas.devexpress.com/winfx/2008/xaml/editors"
    xmlns:dxg="http://schemas.devexpress.com/winfx/2008/xaml/grid"
    xmlns:dxdb="http://schemas.devexpress.com/winfx/2008/xaml/demobase"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity"
    mc:Ignorable="d" d:DesignHeight="400" d:DesignWidth="800"
 HorizontalAlignment="Stretch" VerticalAlignment="Stretch">

    <local:GridDemoModule.Resources>
        <ResourceDictionary>
            <ResourceDictionary.MergedDictionaries>
                <ResourceDictionary Source="/GridDemo;component/Themes/generic.xaml" />
                <ResourceDictionary Source="/GridDemo;component/ModuleResources/PLinqInstantFeedbackTemplates.xaml" />
            </ResourceDictionary.MergedDictionaries>
            <local:PLinqInstantFeedbackDemoViewModel x:Key="PLinqInstantFeedbackDemoViewModel">
                <local:PLinqInstantFeedbackDemoViewModel.CountItems>
                    <local:CountItemCollection>
                        <local:CountItem Count="100000" DisplayName="Small" />
                        <local:CountItem Count="1000000" DisplayName="Medium" />
                        <local:CountItem Count="3000000" DisplayName="Large" />
                    </local:CountItemCollection>
                </local:PLinqInstantFeedbackDemoViewModel.CountItems>
            </local:PLinqInstantFeedbackDemoViewModel>
        </ResourceDictionary>
    </local:GridDemoModule.Resources>
    <dxdb:DemoModuleControl>
        <dxdb:DemoModuleControl.OptionsTopText>
            Specify the number or Rows you’d like to view within the DXGrid.
        </dxdb:DemoModuleControl.OptionsTopText>
        <dxdb:DemoModuleControl.OptionsContent>
            <StackPanel>
                <dx:GroupFrame Header="Rows">
                    <dxe:ListBoxEdit SelectedIndex="1" ItemTemplate="{StaticResource CountItemTemplate}" ShowBorder="False" Background="{x:Null}"
                                     ItemsSource="{Binding Path=DataContext.CountItems}" SelectedItem="{Binding Path=DataContext.SelectedCountItem, Mode=TwoWay}">
                        <dxe:ListBoxEdit.StyleSettings>
                            <dxe:RadioListBoxEditStyleSettings />
                        </dxe:ListBoxEdit.StyleSettings>
                    </dxe:ListBoxEdit>
                </dx:GroupFrame>
                <dx:PLinqInstantFeedbackDataSource Name="pLinqInstantSource" ListSource="{Binding Path=DataContext.ListSource}" />
            </StackPanel>
        </dxdb:DemoModuleControl.OptionsContent>
        <Grid DataContext="{StaticResource PLinqInstantFeedbackDemoViewModel}">
            <dxg:GridControl Name="grid" ItemsSource="{Binding ElementName=pLinqInstantSource, Path=Data}" DesignTimeDataObjectType="local:OrderData">
                <dxg:GridControl.Columns>
                    <dxg:GridColumn x:Name="colOrderId" FieldName="OrderId" Header="ID" Width="60" MinWidth="60" FixedWidth="True" AllowResizing="False" AllowGrouping="False" AllowColumnFiltering="False" />
                    <dxg:GridColumn x:Name="colCustomerName" FieldName="CustomerName" Width="180" />
                    <dxg:GridColumn x:Name="colOrderDate" FieldName="OrderDate" Width="80" GroupInterval="DateRange">
                        <dxg:GridColumn.EditSettings>
                            <dxe:DateEditSettings DisplayFormat="d" />
                        </dxg:GridColumn.EditSettings>
                    </dxg:GridColumn>
                    <dxg:GridColumn x:Name="colProductCategory" FieldName="ProductCategory" Width="100" CellTemplate="{StaticResource categoryCellTemplate}">
                        <dxg:GridColumn.EditSettings>
                            <dxe:ComboBoxEditSettings ItemsSource="{Binding Path=Categories}" ItemTemplate="{StaticResource categoryTemplate}" />
                        </dxg:GridColumn.EditSettings>
                    </dxg:GridColumn>
                    <dxg:GridColumn x:Name="colProductName" FieldName="ProductName" Width="180" />
                    <dxg:GridColumn x:Name="colQuantity" FieldName="Quantity" Width="60" />
                    <dxg:GridColumn x:Name="colPrice" FieldName="Price" Width="60" />
                    <dxg:GridColumn x:Name="colIsReady" FieldName="IsReady" Width="60" HorizontalHeaderContentAlignment="Center">
                        <dxg:GridColumn.EditSettings>
                            <dxe:CheckEditSettings />
                        </dxg:GridColumn.EditSettings>
                    </dxg:GridColumn>
                </dxg:GridControl.Columns>
                <dxg:GridControl.View>
                    <dxg:TableView x:Name="view" ShowTotalSummary="True" ShowAutoFilterRow="True" AutoWidth="True" RowAnimationKind="None"
                                   WaitIndicatorType="{Binding Path=IsGeneratingOrderData, Converter={StaticResource GeneratingDataToWaitIndicatorTypeConverter}}" />
                </dxg:GridControl.View>
                <dxg:GridControl.TotalSummary>
                    <dxg:GridSummaryItem FieldName="CustomerName" SummaryType="Count" />
                </dxg:GridControl.TotalSummary>
            </dxg:GridControl>
            <dx:BackgroundPanel Template="{StaticResource WaitIndicatorWithProgressTemplate}"
                    Visibility="{Binding Path=IsGeneratingOrderData, Converter={StaticResource BoolToVisibilityConverter}}"
                    HorizontalAlignment="Center" VerticalAlignment="Center" />
        </Grid>
        <i:Interaction.Triggers>
            <i:EventTrigger EventName="BeforeModuleDisappear">
                <i:InvokeCommandAction Command="{Binding ElementName=pLinqInstantSource, Path=DisposeCommand}" />
            </i:EventTrigger>
        </i:Interaction.Triggers>
    </dxdb:DemoModuleControl>
</local:GridDemoModule>!gusing System;
using System.Collections;
using System.Collections.Generic;
using System.ComponentModel;
using System.Windows;
using DevExpress.Xpf.DemoBase.Helpers;
using DevExpress.Xpf.Utils;
using DevExpress.Xpf.DemoBase;

namespace GridDemo {
    [CodeFile("ModuleResources/PLinqInstantFeedbackViewModel.(cs)")]
    [CodeFile("ModuleResources/PLinqInstantFeedbackClasses.(cs)")]
    [CodeFile("ModuleResources/PLinqInstantFeedbackTemplates(.SL).xaml")]
    [CodeFile("Controls/OrderDataGenerator.(cs)")]
    public partial class PLinqInstantFeedback : GridDemoModule {
        public PLinqInstantFeedback() {
            InitializeComponent();
            PLinqInstantFeedbackDemoViewModel viewModel = (PLinqInstantFeedbackDemoViewModel)Resources["PLinqInstantFeedbackDemoViewModel"];
            viewModel.SetIsDesignTime(false);
        }
    }
}!�MSBAML```����OKmscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089M4clr-namespace:System.Globalization;assembly=mscorlibSystem.GlobalizationD@GridDemo, Version=13.1.4.0, Culture=neutral, PublicKeyToken=null#clr-namespace:GridDemoGridDemoa]DevExpress.Xpf.Grid.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49ajKclr-namespace:DevExpress.Xpf.Grid.Themes;assembly=DevExpress.Xpf.Grid.v13.1DevExpress.Xpf.Grid.Themes#clr-namespace:GridDemoGridDemoI2clr-namespace:System.Collections;assembly=mscorlibSystem.Collections1&clr-namespace:System;assembly=mscorlibSystem GridDemo.PrintMasterDetail\XPresentationFramework, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35RNWindowsBase, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35WSPresentationCore, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35D9http://schemas.microsoft.com/winfx/2006/xaml/presentationRNSystem.Xaml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089:x,http://schemas.microsoft.com/winfx/2006/xamlGglobal4clr-namespace:System.Globalization;assembly=mscorlib)dxdemoclr-namespace:GridDemoa]DevExpress.Xpf.Core.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a;dx2http://schemas.devexpress.com/winfx/2008/xaml/corefbDevExpress.Xpf.Grid.v13.1.Core, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49al	hDevExpress.Xpf.Grid.v13.1.Extensions, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a@dxg2http://schemas.devexpress.com/winfx/2008/xaml/grid	ZdxgtKclr-namespace:DevExpress.Xpf.Grid.Themes;assembly=DevExpress.Xpf.Grid.v13.1	?dxe5http://schemas.devexpress.com/winfx/2008/xaml/editors"localclr-namespace:GridDemoe
aDevExpress.Xpf.DemoBase.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49aAdxdb6http://schemas.devexpress.com/winfx/2008/xaml/demobase
eaDevExpress.Xpf.Printing.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49aBdxp6http://schemas.devexpress.com/winfx/2008/xaml/printingFcollections2clr-namespace:System.Collections;assembly=mscorlib2sys&clr-namespace:System;assembly=mscorlibFmc;http://schemas.openxmlformats.org/markup-compatibility/2006<d2http://schemas.microsoft.com/expression/blend/2008�	Resources
/)GridDemo.PrintMasterDetailModuleViewModel 
	viewModelB<DevExpress.Xpf.Core.DefaultBooleanToNullableBooleanConverter ,(DefaultBooleanToNullableBooleanConverter�%&	&	.�/
)DevExpress.Xpf.DemoBase.DemoModuleControl(!SupressGroupFramePaddingInOptions.OptionsContent��.+����DataContext#[.+�& DevExpress.Xpf.Editors.CheckEdit-Name$ AllowPrintDetailsCheckEdit��$�10,0,0,5q�Content)#DevExpress.Xpf.Core.ObjectConverter$Allow Print Details	IsChecked��Path$AllowPrintDetails��Mode$TwoWay=�	�	Converter#	[-$PrintAllDetailsCheckEdit��$�10,0,0,0q�$Print All Details�$PrintAllDetails�$TwoWay=�#	[$DevExpress.Xpf.Core.GroupFrame$��Employees Print Options��$�0,10,0,0q�$	�Top=�#[.���.+�$
�0,0,0,5q��*PrintEmployeesColumnHeaders+$TwoWay=�.Print Column Headers�*PrintEmployeesSummaries+$TwoWay=�.Print Total Summary$!��Orders Detail Print Options��$�0,10,0,0q�$	�Top=�#[.���.+�$
�0,0,0,5q��*PrintOrdersColumnHeaders+$TwoWay=�.Print Column Headers�*PrintOrdersSummaries+$TwoWay=�.Print Total Summary$#��Invoices Detail Print Options��$�0,10,0,0q�$	�Top=�#[.���.+�$
�0,0,0,5q��*PrintInvoicesColumnHeaders+$TwoWay=�.Print Column Headers�*PrintInvoicesSummaries+$TwoWay=�.Print Total Summary$$��Customers Detail Print Options��$�0,10,0,0q�$	�Top=�#[.���.+�$
�0,0,0,5q��*PrintCustomersColumnHeaders+$TwoWay=�.Print Column Headers�*PrintCustomersSummaries+$TwoWay=�.Print Total Summary�-$�newTabButton��$�0,12,0,0q�$
�Preview���-$�newWindowButton��$�0,12,0,0q�$�Preview in New Window��
Content.
& DevExpress.Xpf.Core.DXTabControl-$�
tabControl��$�
-1,2,-1,-1q�$�1q�.@�#DevExpress.Xpf.Core.DXTabItem$�	12,4,12,4q�
Header��$
��Bold"�$��MasterDetail��.�%	DevExpress.Xpf.Grid.GridControl	-	Name$
grid��#[)
#DevExpress.Xpf.Grid.DataControlBase

ItemsSource
�*	Employees+	DetailDescriptor1+DevExpress.Xpf.Grid.TabViewDetailDescriptor/)DevExpress.Xpf.Grid.MultiDetailDescriptorDetailDescriptors5
/DevExpress.Xpf.Grid.DataControlDetailDescriptor
-
Name$MDOrdersDescriptor��.(DevExpress.Xpf.Grid.DetailDescriptorBase
ShowHeader.
ItemsSourceBinding�*
MDOrders+
DataControl.	
-$MDInvoicesDescriptor��.�*
Invoices+.		Columns$DevExpress.Xpf.Grid.GridColumn$DevExpress.Xpf.Grid.ColumnBase	FieldName$ProductName��$	UnitPrice��$Quantity��$Total��UnboundType]YDevExpress.Data.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a82DevExpress.Utils.Design.UnboundColumnTypeConverter$
DecimalUnboundExpression$[UnitPrice]*[Quantity]��$DevExpress.Xpf.Grid.BaseColumn
Header$Total	View#DevExpress.Xpf.Grid.TableView"VerticalScrollbarVisibility$
Auto=�	AutoWidth.& DevExpress.Xpf.Grid.DataViewBaseNavigationStyle$	Row=�ShowFixedTotalSummary.DetailHeaderContent$Invoices��& DevExpress.Xpf.Grid.GridViewBaseShowGroupPanel. PrintFixedTotalSummary �*PrintInvoicesSummaries+
!�Source#!["PrintColumnHeaders"�*PrintInvoicesColumnHeaders+#![#	TotalSummary#)#DevExpress.Xpf.Grid.GridSummaryItem)#DevExpress.Xpf.Grid.SummaryItemBase$SummaryType$$Count=�%	Alignment$
%Left=�&	FieldName$&Total��$	$Sum=�$%Right=�$	OrderDate��$
Freight��$ShipName��$ShipCountry��$ShipCity��$ShipAddress��$
Auto=�.$	Row=�$Orders��.. �*PrintOrdersSummaries+"�*PrintOrdersColumnHeaders+#$
&Freight��$	$Sum=�$%Right=�
-	'�Name$'MDCustomersDescriptor��.�*
MDCustomers+.	$ContactName��$
Country��$
City��$
Address��$Phone��$
Auto=�.$	Row=�$	Customers��.. �*PrintCustomersSummaries+"�*PrintCustomersColumnHeaders+#$$Count=�$
%Left=�-
(Name$
(view��.$	Row=�$	Employees��)AllowPrintEmptyDetails5/DevExpress.Utils.Design.DefaultBooleanConverter$)False.*AllowPrintDetails*�*AllowPrintDetails++PrintAllDetails+�*PrintAllDetails+ �*PrintEmployeesSummaries+"�*PrintEmployeesColumnHeaders+$FullName��,ReadOnly,.-MinWidth$-60��$Title��$JobTitle$Region��$
Country$-60��$	BirthDate��$-60��.EditSettings.60DevExpress.Xpf.Editors.Settings.DateEditSettings60DevExpress.Xpf.Editors.Settings.BaseEditSettings/
DisplayFormat$/d��$EMail��$Contacts0Width$	0195��#$$Count=�$%Right=�!�4<local:PrintViewGridDemoModule x:Class="GridDemo.PrintMasterDetail"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:global="clr-namespace:System.Globalization;assembly=mscorlib"
    xmlns:dxdemo="clr-namespace:GridDemo"
    xmlns:dx="http://schemas.devexpress.com/winfx/2008/xaml/core"
    xmlns:dxg="http://schemas.devexpress.com/winfx/2008/xaml/grid"
    xmlns:dxgt="clr-namespace:DevExpress.Xpf.Grid.Themes;assembly=DevExpress.Xpf.Grid.v13.1"
 xmlns:dxe="http://schemas.devexpress.com/winfx/2008/xaml/editors"
    xmlns:local="clr-namespace:GridDemo"
 xmlns:dxdb="http://schemas.devexpress.com/winfx/2008/xaml/demobase"
    xmlns:dxp="http://schemas.devexpress.com/winfx/2008/xaml/printing"
    xmlns:collections="clr-namespace:System.Collections;assembly=mscorlib"
    xmlns:sys="clr-namespace:System;assembly=mscorlib"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    mc:Ignorable="d" d:DesignHeight="400" d:DesignWidth="800">

    <local:PrintViewGridDemoModule.Resources>
        <ResourceDictionary>
            <local:PrintMasterDetailModuleViewModel x:Key="viewModel" />
            <dx:DefaultBooleanToNullableBooleanConverter x:Key="DefaultBooleanToNullableBooleanConverter"/>
        </ResourceDictionary>
    </local:PrintViewGridDemoModule.Resources>
    <dxdb:DemoModuleControl SupressGroupFramePaddingInOptions="False">
        <dxdb:DemoModuleControl.OptionsContent>
            <StackPanel>
                <StackPanel DataContext="{StaticResource viewModel}">
                    <dxe:CheckEdit x:Name="AllowPrintDetailsCheckEdit" Margin="10,0,0,5" Content="Allow Print Details" IsChecked="{Binding Path=AllowPrintDetails, Mode=TwoWay, Converter={StaticResource DefaultBooleanToNullableBooleanConverter}}"/>
                    <dxe:CheckEdit x:Name="PrintAllDetailsCheckEdit" Margin="10,0,0,0" Content="Print All Details" IsChecked="{Binding Path=PrintAllDetails, Mode=TwoWay, Converter={StaticResource DefaultBooleanToNullableBooleanConverter}}"/>
                    <dx:GroupFrame Header="Employees Print Options" Margin="0,10,0,0" VerticalAlignment="Top" DataContext="{StaticResource viewModel}">
                        <StackPanel>
                            <dxe:CheckEdit IsChecked="{Binding PrintEmployeesColumnHeaders, Mode=TwoWay}" Margin="0,0,0,5">Print Column Headers</dxe:CheckEdit>
                            <dxe:CheckEdit IsChecked="{Binding PrintEmployeesSummaries, Mode=TwoWay}">Print Total Summary</dxe:CheckEdit>
                        </StackPanel>
                    </dx:GroupFrame>
                    <dx:GroupFrame Header="Orders Detail Print Options" Margin="0,10,0,0" VerticalAlignment="Top" DataContext="{StaticResource viewModel}">
                        <StackPanel>
                            <dxe:CheckEdit IsChecked="{Binding PrintOrdersColumnHeaders, Mode=TwoWay}" Margin="0,0,0,5">Print Column Headers</dxe:CheckEdit>
                            <dxe:CheckEdit IsChecked="{Binding PrintOrdersSummaries, Mode=TwoWay}">Print Total Summary</dxe:CheckEdit>
                        </StackPanel>
                    </dx:GroupFrame>
                    <dx:GroupFrame Header="Invoices Detail Print Options" Margin="0,10,0,0" VerticalAlignment="Top" DataContext="{StaticResource viewModel}">
                        <StackPanel>
                            <dxe:CheckEdit IsChecked="{Binding PrintInvoicesColumnHeaders, Mode=TwoWay}" Margin="0,0,0,5">Print Column Headers</dxe:CheckEdit>
                            <dxe:CheckEdit IsChecked="{Binding PrintInvoicesSummaries, Mode=TwoWay}">Print Total Summary</dxe:CheckEdit>
                        </StackPanel>
                    </dx:GroupFrame>
                    <dx:GroupFrame Header="Customers Detail Print Options" Margin="0,10,0,0" VerticalAlignment="Top" DataContext="{StaticResource viewModel}">
                        <StackPanel>
                            <dxe:CheckEdit IsChecked="{Binding PrintCustomersColumnHeaders, Mode=TwoWay}" Margin="0,0,0,5">Print Column Headers</dxe:CheckEdit>
                            <dxe:CheckEdit IsChecked="{Binding PrintCustomersSummaries, Mode=TwoWay}">Print Total Summary</dxe:CheckEdit>
                        </StackPanel>
                    </dx:GroupFrame>
                    <Button Name="newTabButton" Click="newTabButton_Click" Margin="0,12,0,0" Content="Preview"/>
                    <Button Name="newWindowButton" Click="newWindowButton_Click" Margin="0,12,0,0" Content="Preview in New Window"/>
                </StackPanel>
            </StackPanel>
        </dxdb:DemoModuleControl.OptionsContent>
        <dx:DXTabControl Name="tabControl" Margin="-1,2,-1,-1" Padding="1" TabHidden="tabControl_TabHidden">
            <dx:DXTabItem Padding="12,4,12,4">
                <dx:DXTabItem.Header>
                    <TextBlock FontWeight="Bold" Text="MasterDetail"/>
                </dx:DXTabItem.Header>
                <dxg:GridControl x:Name="grid" ItemsSource="{Binding Employees}" DataContext="{StaticResource viewModel}">
                    <dxg:GridControl.DetailDescriptor>
                        <dxg:TabViewDetailDescriptor>
                            <dxg:TabViewDetailDescriptor.DetailDescriptors>
                                <dxg:DataControlDetailDescriptor x:Name="MDOrdersDescriptor" ItemsSourceBinding="{Binding MDOrders}" ShowHeader="false">
                                    <dxg:GridControl>
                                        <dxg:GridControl.DetailDescriptor>
                                            <dxg:DataControlDetailDescriptor x:Name="MDInvoicesDescriptor"  ShowHeader="False" ItemsSourceBinding="{Binding Invoices}">
                                                <dxg:GridControl>
                                                    <dxg:GridControl.Columns>
                                                        <dxg:GridColumn FieldName="ProductName" />
                                                        <dxg:GridColumn FieldName="UnitPrice" />
                                                        <dxg:GridColumn FieldName="Quantity" />
                                                        <dxg:GridColumn FieldName="Total" UnboundType="Decimal"
                                                                UnboundExpression="[UnitPrice]*[Quantity]" Header="Total" />
                                                    </dxg:GridControl.Columns>
                                                    <dxg:GridControl.View>
                                                        <dxg:TableView VerticalScrollbarVisibility="Auto" AutoWidth="True" NavigationStyle="Row"
                                                               ShowFixedTotalSummary="True" DetailHeaderContent="Invoices" ShowGroupPanel="False"
                                                               PrintFixedTotalSummary="{Binding PrintInvoicesSummaries, Source={StaticResource viewModel}}"
                                                               PrintColumnHeaders="{Binding PrintInvoicesColumnHeaders, Source={StaticResource viewModel}}" />
                                                    </dxg:GridControl.View>
                                                    <dxg:GridControl.TotalSummary>
                                                        <dxg:GridSummaryItem SummaryType="Count" Alignment="Left"/>
                                                        <dxg:GridSummaryItem FieldName="Total" SummaryType="Sum" Alignment="Right" />
                                                    </dxg:GridControl.TotalSummary>
                                                </dxg:GridControl>
                                            </dxg:DataControlDetailDescriptor>
                                        </dxg:GridControl.DetailDescriptor>
                                        <dxg:GridControl.Columns>
                                            <dxg:GridColumn FieldName="OrderDate" />
                                            <dxg:GridColumn FieldName="Freight" />
                                            <dxg:GridColumn FieldName="ShipName" />
                                            <dxg:GridColumn FieldName="ShipCountry"/>
                                            <dxg:GridColumn FieldName="ShipCity" />
                                            <dxg:GridColumn FieldName="ShipAddress" />
                                        </dxg:GridControl.Columns>
                                        <dxg:GridControl.View>
                                            <dxg:TableView VerticalScrollbarVisibility="Auto" AutoWidth="True" NavigationStyle="Row"
                                                   DetailHeaderContent="Orders" ShowGroupPanel="False"
                                                   ShowFixedTotalSummary="True"
                                                   PrintFixedTotalSummary="{Binding PrintOrdersSummaries}"
                                                   PrintColumnHeaders="{Binding PrintOrdersColumnHeaders}"/>
                                        </dxg:GridControl.View>
                                        <dxg:GridControl.TotalSummary>
                                            <dxg:GridSummaryItem FieldName="Freight" SummaryType="Sum" Alignment="Right" />
                                        </dxg:GridControl.TotalSummary>
                                    </dxg:GridControl>
                                </dxg:DataControlDetailDescriptor>
                                <dxg:DataControlDetailDescriptor Name="MDCustomersDescriptor" ItemsSourceBinding="{Binding MDCustomers}" ShowHeader="false">
                                    <dxg:GridControl>
                                        <dxg:GridControl.Columns>
                                            <dxg:GridColumn FieldName="ContactName" />
                                            <dxg:GridColumn FieldName="Country" />
                                            <dxg:GridColumn FieldName="City" />
                                            <dxg:GridColumn FieldName="Address" />
                                            <dxg:GridColumn FieldName="Phone" />
                                        </dxg:GridControl.Columns>
                                        <dxg:GridControl.View>
                                            <dxg:TableView VerticalScrollbarVisibility="Auto" AutoWidth="True" NavigationStyle="Row"
                                                   DetailHeaderContent="Customers" ShowGroupPanel="False" ShowFixedTotalSummary="True"
                                                   PrintFixedTotalSummary="{Binding PrintCustomersSummaries}"
                                                   PrintColumnHeaders="{Binding PrintCustomersColumnHeaders}" />
                                        </dxg:GridControl.View>
                                        <dxg:GridControl.TotalSummary>
                                            <dxg:GridSummaryItem SummaryType="Count" Alignment="Left"  />
                                        </dxg:GridControl.TotalSummary>
                                    </dxg:GridControl>
                                </dxg:DataControlDetailDescriptor>
                            </dxg:TabViewDetailDescriptor.DetailDescriptors>
                        </dxg:TabViewDetailDescriptor>
                    </dxg:GridControl.DetailDescriptor>
                    <dxg:GridControl.View>
                        <dxg:TableView x:Name="view" AutoWidth="True" NavigationStyle="Row" DetailHeaderContent="Employees"
                                       AllowPrintDetails="{Binding AllowPrintDetails}" AllowPrintEmptyDetails="False" ShowFixedTotalSummary="True"
                                       PrintAllDetails="{Binding PrintAllDetails}"
                                       PrintFixedTotalSummary="{Binding PrintEmployeesSummaries}"
                                       PrintColumnHeaders="{Binding PrintEmployeesColumnHeaders}"
                                       />
                    </dxg:GridControl.View>
                    <dxg:GridControl.Columns>
                        <dxg:GridColumn FieldName="FullName" ReadOnly="True" MinWidth="60"/>
                        <dxg:GridColumn FieldName="Title" Header="JobTitle"/>
                        <dxg:GridColumn FieldName="Region" Header="Country" MinWidth="60"/>
                        <dxg:GridColumn FieldName="BirthDate" MinWidth="60">
                            <dxg:GridColumn.EditSettings>
                                <dxe:DateEditSettings DisplayFormat="d" />
                            </dxg:GridColumn.EditSettings>
                        </dxg:GridColumn>
                        <dxg:GridColumn FieldName="EMail" Header="Contacts" Width="195"/>
                    </dxg:GridControl.Columns>
                    <dxg:GridControl.TotalSummary>
                        <dxg:GridSummaryItem SummaryType="Count" Alignment="Right"/>
                    </dxg:GridControl.TotalSummary>
                </dxg:GridControl>
            </dx:DXTabItem>
        </dx:DXTabControl>
    </dxdb:DemoModuleControl>
</local:PrintViewGridDemoModule>!�using System;
using System.Windows;
using GridDemo;
using DevExpress.Xpf.Core;
using DevExpress.Xpf.DemoBase.Helpers;
using DevExpress.Utils;
using DevExpress.Xpf.Grid;
using DevExpress.Xpf.Grid.Native;
using DevExpress.Xpf.DemoBase;

namespace GridDemo {
    [CodeFile("ModuleResources/PrintMasterDetailViewModel.(cs)")]
    [CodeFile("Controls/DemoModuleControl.(cs)")]
    [CodeFile("Controls/Converters.(cs)")]
    public partial class PrintMasterDetail : PrintViewGridDemoModule {
        protected override DXTabControl DXTabControl { get { return tabControl; } }

        public PrintMasterDetail() {
            InitializeComponent();
        }
        protected override void RaiseActualLoaded() {
            base.RaiseActualLoaded();
            grid.ExpandMasterRow(2);
            ((GridControl)grid.GetVisibleDetail(2)).ExpandMasterRow(0);
            grid.ExpandMasterRow(4, MDCustomersDescriptor);
            grid.ExpandMasterRow(6);
            ShowPreviewInNewTab();
        }

        protected override void ShowPreviewInNewTab() {
            ShowPrintPreviewInNewTab(grid, tabControl, "Preview");
        }
        protected void newTabButton_Click(object sender, RoutedEventArgs e) {
            ShowPreviewInNewTab();
        }
        protected void tabControl_TabHidden(object sender, TabControlTabHiddenEventArgs e) {
            DisposePrintPreviewTabContent((DXTabItem)DXTabControl.Items[e.TabIndex]);
        }
    }
}!bMSBAML```����OKmscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089M4clr-namespace:System.Globalization;assembly=mscorlibSystem.GlobalizationD@GridDemo, Version=13.1.4.0, Culture=neutral, PublicKeyToken=null#clr-namespace:GridDemoGridDemoa]DevExpress.Xpf.Grid.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49ajKclr-namespace:DevExpress.Xpf.Grid.Themes;assembly=DevExpress.Xpf.Grid.v13.1DevExpress.Xpf.Grid.Themes#clr-namespace:GridDemoGridDemoI2clr-namespace:System.Collections;assembly=mscorlibSystem.Collections1&clr-namespace:System;assembly=mscorlibSystemGridDemo.PrintOptions\XPresentationFramework, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35RNWindowsBase, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35WSPresentationCore, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35D9http://schemas.microsoft.com/winfx/2006/xaml/presentationRNSystem.Xaml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089:x,http://schemas.microsoft.com/winfx/2006/xamlGglobal4clr-namespace:System.Globalization;assembly=mscorlib)dxdemoclr-namespace:GridDemoa]DevExpress.Xpf.Core.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a;dx2http://schemas.devexpress.com/winfx/2008/xaml/corefbDevExpress.Xpf.Grid.v13.1.Core, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49al	hDevExpress.Xpf.Grid.v13.1.Extensions, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a@dxg2http://schemas.devexpress.com/winfx/2008/xaml/grid	ZdxgtKclr-namespace:DevExpress.Xpf.Grid.Themes;assembly=DevExpress.Xpf.Grid.v13.1	?dxe5http://schemas.devexpress.com/winfx/2008/xaml/editors"localclr-namespace:GridDemoe
aDevExpress.Xpf.DemoBase.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49aAdxdb6http://schemas.devexpress.com/winfx/2008/xaml/demobase
eaDevExpress.Xpf.Printing.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49aBdxp6http://schemas.devexpress.com/winfx/2008/xaml/printingFcollections2clr-namespace:System.Collections;assembly=mscorlib2sys&clr-namespace:System;assembly=mscorlibFmc;http://schemas.openxmlformats.org/markup-compatibility/2006<d2http://schemas.microsoft.com/expression/blend/2008�	Resources
�MergedDictionaries
�Source-
'DevExpress.Xpf.DemoBase.NWindDataLoader NWindDataLoader��$D>/GridDemo;component/ModuleResources/PrintOptionsTemplates.xaml?�%&	.�/
)DevExpress.Xpf.DemoBase.DemoModuleControlOptionsTopText$`ZSwitch to the Grid Control tab, customize its display then preview and print its contents.��OptionsContent����Orientation$Vertical=�.+�$DevExpress.Xpf.Core.GroupFrame$��
Print Options��$�0,0,0,12q�.���$Vertical=�.+�& DevExpress.Xpf.Editors.CheckEditContent)#DevExpress.Xpf.Core.ObjectConverter$Print Selected Rows Only$
�0,0,6,4q�	IsChecked��Path$ View.PrintSelectedRowsOnly�	�Mode$	TwoWay=�$Print Column Headers$
�0,0,6,4q��$View.PrintColumnHeaders�$	TwoWay=�$Print Total Summary$
�0,0,6,4q��$View.PrintTotalSummary�$	TwoWay=�$Print Fixed Total Summary$
�0,0,6,4q��$!View.PrintFixedTotalSummary�$	TwoWay=�$Expand All Groups$
�0,0,6,4q��$View.PrintAllGroups�$	TwoWay=�$
Auto Width$
�0,0,6,0q��$View.PrintAutoWidth�$	TwoWay=�$��Print Styles��$�0,0,0,12q�.�("DevExpress.Xpf.Editors.ListBoxEdit-
Name$
printStyleChooser��%DevExpress.Xpf.Editors.BaseEdit
ShowBorder.
SelectedIndex$0��Z�

StyleSettings
:4DevExpress.Xpf.Editors.RadioListBoxEditStyleSettingsItems 	GridDemo.ColumnChooserType	Default=�	
Custom=��-$�newTabButton��$�0,0,0,12q�.�Preview in New Tab�-$�newWindowButton��.�Preview in New WindowContent.&
 DevExpress.Xpf.Core.DXTabControl
-$�
tabControl��$�
-1,2,-1,-1q�$�1q�.@�#DevExpress.Xpf.Core.DXTabItem$�	12,4,12,4q�
Header��$
��Bold"�Grid Control.�%DevExpress.Xpf.Grid.GridControl-$
�grid��$��1�$�0�)
#DevExpress.Xpf.Grid.DataControlBase
FilterString$[Quantity] > 30��

SelectionMode$	Row=�
ItemsSource�$Invoices�
�Source#[Columns$DevExpress.Xpf.Grid.GridColumn-Name$
countryColumn��$DevExpress.Xpf.Grid.ColumnBase	FieldName$
Country��$DevExpress.Xpf.Grid.BaseColumnMinWidth$60��Width$60��-$
cityColumn��$
City��$80��$80��
GroupIndex$0�-$unitPriceColumn��$	UnitPrice��$	120��$	120��EditSettings60DevExpress.Xpf.Editors.Settings.TextEditSettings60DevExpress.Xpf.Editors.Settings.BaseEditSettings
DisplayFormat$$0.00��$	OrderDate��$30��$40��60DevExpress.Xpf.Editors.Settings.DateEditSettings!HorizontalContentAlignment$Right=�$d��$Discount��$	100��$	100��$0%��$Quantity��$90��$90��TotalSummary)#DevExpress.Xpf.Grid.GridSummaryItem)#DevExpress.Xpf.Grid.SummaryItemBase	FieldName$	UnitPrice�� SummaryType$ Count=�!	Alignment$!Right=�$Discount��$	 Max=�"ShowInColumn$"Discount��#GroupSummary#$	UnitPrice��$	 Sum=�$
DisplayFormat$!$Unit Price: Sum = {0:$0.00}��%View%#DevExpress.Xpf.Grid.TableView-	$
�view��& DevExpress.Xpf.Grid.DataViewBase&NavigationStyle$	&Row=�'ShowTotalSummary'.(ShowFixedTotalSummary(.)	AutoWidth).!�<local:PrintViewGridDemoModule x:Class="GridDemo.PrintOptions"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:global="clr-namespace:System.Globalization;assembly=mscorlib"
    xmlns:dxdemo="clr-namespace:GridDemo"
    xmlns:dx="http://schemas.devexpress.com/winfx/2008/xaml/core"
    xmlns:dxg="http://schemas.devexpress.com/winfx/2008/xaml/grid"
    xmlns:dxgt="clr-namespace:DevExpress.Xpf.Grid.Themes;assembly=DevExpress.Xpf.Grid.v13.1"
 xmlns:dxe="http://schemas.devexpress.com/winfx/2008/xaml/editors"
    xmlns:local="clr-namespace:GridDemo"
 xmlns:dxdb="http://schemas.devexpress.com/winfx/2008/xaml/demobase"
    xmlns:dxp="http://schemas.devexpress.com/winfx/2008/xaml/printing"
    xmlns:collections="clr-namespace:System.Collections;assembly=mscorlib"
    xmlns:sys="clr-namespace:System;assembly=mscorlib"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    mc:Ignorable="d" d:DesignHeight="400" d:DesignWidth="800">
    <local:PrintViewGridDemoModule.Resources>
        <ResourceDictionary>
            <ResourceDictionary.MergedDictionaries>
                <ResourceDictionary Source="/GridDemo;component/ModuleResources/PrintOptionsTemplates.xaml" />
            </ResourceDictionary.MergedDictionaries>
            <dxdb:NWindDataLoader x:Key="NWindDataLoader" />
        </ResourceDictionary>
    </local:PrintViewGridDemoModule.Resources>
    <dxdb:DemoModuleControl>
        <dxdb:DemoModuleControl.OptionsTopText>
            Switch to the Grid Control tab, customize its display then preview and print its contents.
        </dxdb:DemoModuleControl.OptionsTopText>
        <dxdb:DemoModuleControl.OptionsContent>
            <StackPanel Orientation="Vertical">
                <dx:GroupFrame Header="Print Options" Margin="0,0,0,12">
                    <StackPanel Orientation="Vertical">
                        <dxe:CheckEdit IsChecked="{Binding Path=View.PrintSelectedRowsOnly, Mode=TwoWay}" Content="Print Selected Rows Only" Margin="0,0,6,4" />
                        <dxe:CheckEdit IsChecked="{Binding Path=View.PrintColumnHeaders, Mode=TwoWay}" Content="Print Column Headers" Margin="0,0,6,4" />
                        <dxe:CheckEdit IsChecked="{Binding Path=View.PrintTotalSummary, Mode=TwoWay}" Content="Print Total Summary" Margin="0,0,6,4" />
                        <dxe:CheckEdit IsChecked="{Binding Path=View.PrintFixedTotalSummary, Mode=TwoWay}" Content="Print Fixed Total Summary" Margin="0,0,6,4" />
                        <dxe:CheckEdit IsChecked="{Binding Path=View.PrintAllGroups, Mode=TwoWay}" Content="Expand All Groups" Margin="0,0,6,4" />
                        <dxe:CheckEdit IsChecked="{Binding Path=View.PrintAutoWidth, Mode=TwoWay}" Content="Auto Width" Margin="0,0,6,0" />
                    </StackPanel>
                </dx:GroupFrame>
                <dx:GroupFrame Header="Print Styles" Margin="0,0,0,12">
                    <dxe:ListBoxEdit x:Name="printStyleChooser" ShowBorder="False" SelectedIndex="0" EditValueChanged="printStyleChooser_SelectionChanged" Background="{x:Null}">
                        <dxe:ListBoxEdit.StyleSettings>
                            <dxe:RadioListBoxEditStyleSettings />
                        </dxe:ListBoxEdit.StyleSettings>
                        <dxe:ListBoxEdit.Items>
                            <local:ColumnChooserType>Default</local:ColumnChooserType>
                            <local:ColumnChooserType>Custom</local:ColumnChooserType>
                        </dxe:ListBoxEdit.Items>
                    </dxe:ListBoxEdit>
                </dx:GroupFrame>
                <Button Name="newTabButton" Click="newTabButton_Click" Margin="0,0,0,12">
                    Preview in New Tab
                </Button>
                <Button Name="newWindowButton" Click="newWindowButton_Click">
                    Preview in New Window
                </Button>
            </StackPanel>
        </dxdb:DemoModuleControl.OptionsContent>
        <dx:DXTabControl Name="tabControl" Margin="-1,2,-1,-1" Padding="1" TabHidden="tabControl_TabHidden">
            <dx:DXTabItem Padding="12,4,12,4">
                <dx:DXTabItem.Header>
                    <TextBlock FontWeight="Bold">Grid Control</TextBlock>
                </dx:DXTabItem.Header>
                <dxg:GridControl Name="grid" Grid.Row="1" Grid.Column="0" ItemsSource="{Binding Path=Invoices, Source={StaticResource NWindDataLoader}}" FilterString="[Quantity] &gt; 30" SelectionMode="Row">
                    <dxg:GridControl.Columns>
                        <dxg:GridColumn x:Name="countryColumn" FieldName="Country" MinWidth="60" Width="60" />
                        <dxg:GridColumn x:Name="cityColumn" FieldName="City" MinWidth="80" Width="80" GroupIndex="0" />
                        <dxg:GridColumn x:Name="unitPriceColumn" FieldName="UnitPrice" MinWidth="120" Width="120">
                            <dxg:GridColumn.EditSettings>
                                <dxe:TextEditSettings DisplayFormat="$0.00" />
                            </dxg:GridColumn.EditSettings>
                        </dxg:GridColumn>
                        <dxg:GridColumn FieldName="OrderDate" MinWidth="30" Width="40">
                            <dxg:GridColumn.EditSettings>
                                <dxe:DateEditSettings HorizontalContentAlignment="Right" DisplayFormat="d" />
                            </dxg:GridColumn.EditSettings>
                        </dxg:GridColumn>
                        <dxg:GridColumn FieldName="Discount" MinWidth="100" Width="100">
                            <dxg:GridColumn.EditSettings>
                                <dxe:TextEditSettings DisplayFormat="0%" />
                            </dxg:GridColumn.EditSettings>
                        </dxg:GridColumn>
                        <dxg:GridColumn FieldName="Quantity" MinWidth="90" Width="90" />
                    </dxg:GridControl.Columns>
                    <dxg:GridControl.TotalSummary>
                        <dxg:GridSummaryItem FieldName="UnitPrice" SummaryType="Count" Alignment="Right" />
                        <dxg:GridSummaryItem FieldName="Discount" SummaryType="Max" ShowInColumn="Discount" />
                    </dxg:GridControl.TotalSummary>
                    <dxg:GridControl.GroupSummary>
                        <dxg:GridSummaryItem FieldName="UnitPrice" SummaryType="Sum" DisplayFormat="Unit Price: Sum = {0:$0.00}" />
                    </dxg:GridControl.GroupSummary>
                    <dxg:GridControl.View>
                        <dxg:TableView Name="view" NavigationStyle="Row" ShowTotalSummary="True" ShowFixedTotalSummary="True" AutoWidth="True" />
                    </dxg:GridControl.View>
                </dxg:GridControl>
            </dx:DXTabItem>
        </dx:DXTabControl>

    </dxdb:DemoModuleControl>
</local:PrintViewGridDemoModule>!�	using System;
using System.Windows;
using GridDemo;
using DevExpress.Xpf.Core;
using DevExpress.Xpf.DemoBase;

namespace GridDemo {
    [CodeFile("Controls/DemoModuleControl.(cs)")]
    [CodeFile("ModuleResources/PrintOptionsTemplates(.SL).xaml")]
    public partial class PrintOptions : PrintViewGridDemoModule {
        protected override DXTabControl DXTabControl { get { return tabControl; } }
        public PrintOptions() {
            InitializeComponent();
            printStyleChooser.SelectedIndex = 1;
            ShowPreviewInNewTab();
            printStyleChooser.SelectedIndex = 0;
            ShowPreviewInNewTab();
        }
        private void printStyleChooser_SelectionChanged(object sender, DevExpress.Xpf.Editors.EditValueChangedEventArgs e) {
            if(view == null) return;
            if(printStyleChooser.SelectedIndex == 0) {
                view.ClearValue(DevExpress.Xpf.Grid.TableView.PrintColumnHeaderStyleProperty);
                view.ClearValue(DevExpress.Xpf.Grid.TableView.PrintCellStyleProperty);
                view.ClearValue(DevExpress.Xpf.Grid.TableView.PrintGroupRowStyleProperty);
                view.ClearValue(DevExpress.Xpf.Grid.TableView.PrintTotalSummaryStyleProperty);
                view.ClearValue(DevExpress.Xpf.Grid.TableView.PrintFixedTotalSummaryStyleProperty);
            }
            if(printStyleChooser.SelectedIndex == 1) {
                view.PrintColumnHeaderStyle = (Style)Resources["customPrintColumnHeaderStyle"];
                view.PrintCellStyle = (Style)Resources["customPrintCellStyle"];
                view.PrintGroupRowStyle = (Style)Resources["customGroupRowStyle"];
                view.PrintTotalSummaryStyle = (Style)Resources["customPrintTotalSummaryStyle"];
                view.PrintFixedTotalSummaryStyle = (Style)Resources["customPrintFixedTotalSummaryStyle"];
            }
        }
        protected override void ShowPreviewInNewTab() {
            ShowPrintPreviewInNewTab(grid, tabControl, string.Format("{0} Style Preview", printStyleChooser.SelectedItem));
        }
        protected void newTabButton_Click(object sender, RoutedEventArgs e) {
            ShowPreviewInNewTab();
        }
        protected void tabControl_TabHidden(object sender, TabControlTabHiddenEventArgs e) {
            DisposePrintPreviewTabContent((DXTabItem)DXTabControl.Items[e.TabIndex]);
        }
    }
}!�MSBAML```����OKmscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089M4clr-namespace:System.Globalization;assembly=mscorlibSystem.GlobalizationD@GridDemo, Version=13.1.4.0, Culture=neutral, PublicKeyToken=null#clr-namespace:GridDemoGridDemoa]DevExpress.Xpf.Grid.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49ajKclr-namespace:DevExpress.Xpf.Grid.Themes;assembly=DevExpress.Xpf.Grid.v13.1DevExpress.Xpf.Grid.Themes#clr-namespace:GridDemoGridDemoI2clr-namespace:System.Collections;assembly=mscorlibSystem.Collections1&clr-namespace:System;assembly=mscorlibSystemGridDemo.PrintTemplates\XPresentationFramework, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35RNWindowsBase, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35WSPresentationCore, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35D9http://schemas.microsoft.com/winfx/2006/xaml/presentationRNSystem.Xaml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089:x,http://schemas.microsoft.com/winfx/2006/xamlGglobal4clr-namespace:System.Globalization;assembly=mscorlib)dxdemoclr-namespace:GridDemoa]DevExpress.Xpf.Core.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a;dx2http://schemas.devexpress.com/winfx/2008/xaml/corefbDevExpress.Xpf.Grid.v13.1.Core, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49al	hDevExpress.Xpf.Grid.v13.1.Extensions, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a@dxg2http://schemas.devexpress.com/winfx/2008/xaml/grid	ZdxgtKclr-namespace:DevExpress.Xpf.Grid.Themes;assembly=DevExpress.Xpf.Grid.v13.1	?dxe5http://schemas.devexpress.com/winfx/2008/xaml/editors"localclr-namespace:GridDemoe
aDevExpress.Xpf.DemoBase.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49aAdxdb6http://schemas.devexpress.com/winfx/2008/xaml/demobase
eaDevExpress.Xpf.Printing.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49aBdxp6http://schemas.devexpress.com/winfx/2008/xaml/printingFcollections2clr-namespace:System.Collections;assembly=mscorlib2sys&clr-namespace:System;assembly=mscorlibFmc;http://schemas.openxmlformats.org/markup-compatibility/2006<d2http://schemas.microsoft.com/expression/blend/2008�	Resources
�MergedDictionaries
�Source-
'DevExpress.Xpf.DemoBase.NWindDataLoader NWindDataLoader��$F@/GridDemo;component/ModuleResources/PrintTemplatesResources.xaml?�%&	.�/
)DevExpress.Xpf.DemoBase.DemoModuleControlOptionsContent����Orientation$Vertical=�.+�$DevExpress.Xpf.Core.GroupFrame$��	Templates��$�0,0,0,12q�$	�Top=�.�("DevExpress.Xpf.Editors.ListBoxEdit-Name$templateNamesListBox��%DevExpress.Xpf.Editors.BaseEdit
ShowBorder.�Z�
StyleSettings:4DevExpress.Xpf.Editors.RadioListBoxEditStyleSettingsItems��
Detail����
Mail Merge����Default���-$�newTabButton��$�0,0,0,12q�.�Preview in New Tab�-$�newWindowButton��.�Preview in New Window	Content.	& DevExpress.Xpf.Core.DXTabControl-$�
tabControl��$�
-1,2,-1,-1q�$�1q�.@�#DevExpress.Xpf.Core.DXTabItem$�	12,4,12,4q�
Header
��$
��Bold"�Grid Control.�%	DevExpress.Xpf.Grid.GridControl	-$
�grid��$�0�)
#DevExpress.Xpf.Grid.DataControlBase
ItemsSource��Path$EmployeesNew�

�Source#
[	Columns$DevExpress.Xpf.Grid.GridColumn$DevExpress.Xpf.Grid.ColumnBase	FieldName$	FirstName��$
DevExpress.Xpf.Grid.BaseColumn
MinWidth$50��$LastName��$50��$	BirthDate��$50��EditSettings60DevExpress.Xpf.Editors.Settings.DateEditSettings60DevExpress.Xpf.Editors.Settings.BaseEditSettings
DisplayFormat$d��$Title��$50��

Header)#DevExpress.Xpf.Core.ObjectConverter$Position$FullName��
Visible.ShowInColumnChooser.UnboundType]YDevExpress.Data.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a82DevExpress.Utils.Design.UnboundColumnTypeConverter$StringUnboundExpression$$[FirstName] + ' ' + [LastName]��$Photo��$60�� photoColumnStylePrintCellStyle#[<6DevExpress.Xpf.Editors.Settings.PopupImageEditSettingsShowMenu. ShowLoadDialogOnClickMode$Never=�	View#DevExpress.Xpf.Grid.TableView-$
�view��& DevExpress.Xpf.Grid.GridViewBaseShowGroupedColumns.	AutoWidth.
AllowGrouping.PrintHeaderTemplate��!:<local:PrintViewGridDemoModule x:Class="GridDemo.PrintTemplates"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:global="clr-namespace:System.Globalization;assembly=mscorlib"
    xmlns:dxdemo="clr-namespace:GridDemo"
    xmlns:dx="http://schemas.devexpress.com/winfx/2008/xaml/core"
    xmlns:dxg="http://schemas.devexpress.com/winfx/2008/xaml/grid"
    xmlns:dxgt="clr-namespace:DevExpress.Xpf.Grid.Themes;assembly=DevExpress.Xpf.Grid.v13.1"
 xmlns:dxe="http://schemas.devexpress.com/winfx/2008/xaml/editors"
    xmlns:local="clr-namespace:GridDemo"
 xmlns:dxdb="http://schemas.devexpress.com/winfx/2008/xaml/demobase"
    xmlns:dxp="http://schemas.devexpress.com/winfx/2008/xaml/printing"
    xmlns:collections="clr-namespace:System.Collections;assembly=mscorlib"
    xmlns:sys="clr-namespace:System;assembly=mscorlib"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    mc:Ignorable="d" d:DesignHeight="400" d:DesignWidth="800">
    <local:PrintViewGridDemoModule.Resources>
        <ResourceDictionary>
            <ResourceDictionary.MergedDictionaries>
                <ResourceDictionary Source="/GridDemo;component/ModuleResources/PrintTemplatesResources.xaml" />
            </ResourceDictionary.MergedDictionaries>
            <dxdb:NWindDataLoader x:Key="NWindDataLoader" />
        </ResourceDictionary>
    </local:PrintViewGridDemoModule.Resources>
    <dxdb:DemoModuleControl>
        <dxdb:DemoModuleControl.OptionsContent>
            <StackPanel Orientation="Vertical">
                <dx:GroupFrame Header="Templates" Margin="0,0,0,12" VerticalAlignment="Top">
                    <dxe:ListBoxEdit Background="{x:Null}" ShowBorder="False" x:Name="templateNamesListBox" EditValueChanged="templateNamesListBox_SelectionChanged">
                        <dxe:ListBoxEdit.StyleSettings>
                            <dxe:RadioListBoxEditStyleSettings />
                        </dxe:ListBoxEdit.StyleSettings>
                        <dxe:ListBoxEdit.Items>
                            <sys:String>Detail</sys:String>
                            <sys:String>Mail Merge</sys:String>
                            <sys:String>Default</sys:String>
                        </dxe:ListBoxEdit.Items>
                    </dxe:ListBoxEdit>
                </dx:GroupFrame>
                <Button Name="newTabButton" Click="newTabButton_Click" Margin="0,0,0,12">
                    Preview in New Tab
                </Button>
                <Button Name="newWindowButton" Click="newWindowButton_Click">
                    Preview in New Window
                </Button>
            </StackPanel>
        </dxdb:DemoModuleControl.OptionsContent>
        <dx:DXTabControl Name="tabControl" Margin="-1,2,-1,-1" Padding="1" TabHidden="tabControl_TabHidden">
            <dx:DXTabItem Padding="12,4,12,4">
                <dx:DXTabItem.Header>
                    <TextBlock FontWeight="Bold">Grid Control</TextBlock>
                </dx:DXTabItem.Header>
                <dxg:GridControl Name="grid" Grid.Column="0" ItemsSource="{Binding Path=EmployeesNew, Source={StaticResource NWindDataLoader}}">
                    <dxg:GridControl.Columns>
                        <dxg:GridColumn FieldName="FirstName" MinWidth="50" />
                        <dxg:GridColumn FieldName="LastName" MinWidth="50" />
                        <dxg:GridColumn FieldName="BirthDate" MinWidth="50">
                            <dxg:GridColumn.EditSettings>
                                <dxe:DateEditSettings DisplayFormat="d" />
                            </dxg:GridColumn.EditSettings>
                        </dxg:GridColumn>
                        <dxg:GridColumn FieldName="Title" MinWidth="50" Header="Position" />
                        <dxg:GridColumn FieldName="FullName" Visible="False" ShowInColumnChooser="False" UnboundType="String" UnboundExpression="[FirstName] + ' ' + [LastName]" />
                        <dxg:GridColumn FieldName="Photo" MinWidth="60" PrintCellStyle="{StaticResource photoColumnStyle}">
                            <dxg:GridColumn.EditSettings>
                                <dxe:PopupImageEditSettings ShowMenu="False" ShowLoadDialogOnClickMode="Never" />
                            </dxg:GridColumn.EditSettings>
                        </dxg:GridColumn>
                    </dxg:GridControl.Columns>
                    <dxg:GridControl.View>
                        <dxg:TableView Name="view" ShowGroupedColumns="True" AutoWidth="True" AllowGrouping="False">
                            <dxg:TableView.PrintHeaderTemplate>
                                <DataTemplate />
                            </dxg:TableView.PrintHeaderTemplate>
                        </dxg:TableView>
                    </dxg:GridControl.View>
                </dxg:GridControl>
            </dx:DXTabItem>
        </dx:DXTabControl>
    </dxdb:DemoModuleControl>
</local:PrintViewGridDemoModule>!�	using System;
using System.Windows;
using GridDemo;
using DevExpress.Xpf.Core;
using DevExpress.Xpf.DemoBase;

namespace GridDemo {
    [CodeFile("ModuleResources/PrintTemplatesResources(.SL).xaml")]
    [CodeFile("Controls/DemoModuleControl.(cs)")]
    public partial class PrintTemplates : PrintViewGridDemoModule {
        protected override DXTabControl DXTabControl { get { return tabControl; } }
        public PrintTemplates() {
            InitializeComponent();
            templateNamesListBox.SelectedIndex = 2;
            ShowPreviewInNewTab();
            templateNamesListBox.SelectedIndex = 1;
            ShowPreviewInNewTab();
            templateNamesListBox.SelectedIndex = 0;
            ShowPreviewInNewTab();
        }
        private void templateNamesListBox_SelectionChanged(object sender, DevExpress.Xpf.Editors.EditValueChangedEventArgs e) {
            if(view == null) return;
            if(templateNamesListBox.SelectedIndex == 0) {
                view.PrintHeaderTemplate = (DataTemplate)Resources["detailPrintHeaderTemplate"];
                view.PrintRowTemplate = (DataTemplate)Resources["detailPrintRowTemplate"];
                view.PrintColumnHeaderStyle = (Style)Resources["mailMergePrintHeaderStyle"];
            }
            if(templateNamesListBox.SelectedIndex == 1) {
                view.PrintHeaderTemplate = null;
                view.PrintRowTemplate = (DataTemplate)Resources["mailMergePrintRowTemplate"];
                view.PrintColumnHeaderStyle = (Style)Resources["mailMergePrintHeaderStyle"];
            }
            if(templateNamesListBox.SelectedIndex == 2) {
                view.ClearValue(DevExpress.Xpf.Grid.TableView.PrintHeaderTemplateProperty);
                view.ClearValue(DevExpress.Xpf.Grid.TableView.PrintRowTemplateProperty);
                view.ClearValue(DevExpress.Xpf.Grid.TableView.PrintColumnHeaderStyleProperty);
            }
        }
        protected override void ShowPreviewInNewTab() {
            ShowPrintPreviewInNewTab(grid, tabControl, string.Format("{0} Preview", templateNamesListBox.SelectedItem));
        }
        protected void newTabButton_Click(object sender, RoutedEventArgs e) {
            ShowPreviewInNewTab();
        }
        protected void tabControl_TabHidden(object sender, TabControlTabHiddenEventArgs e) {
            DisposePrintPreviewTabContent((DXTabItem)DXTabControl.Items[e.TabIndex]);
        }
    }
}!MSBAML```����D@GridDemo, Version=13.1.4.0, Culture=neutral, PublicKeyToken=null#clr-namespace:GridDemoGridDemo!GridDemo.RealtimeDataSource\XPresentationFramework, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35RNWindowsBase, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35WSPresentationCore, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35D9http://schemas.microsoft.com/winfx/2006/xaml/presentationRNSystem.Xaml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089:x,http://schemas.microsoft.com/winfx/2006/xamlJmc;http://schemas.openxmlformats.org/markup-compatibility/2006@d2http://schemas.microsoft.com/expression/blend/2008(localclr-namespace:GridDemoeaDevExpress.Xpf.DemoBase.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49aAdxdb6http://schemas.devexpress.com/winfx/2008/xaml/demobasefbDevExpress.Xpf.Grid.v13.1.Core, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49aa]DevExpress.Xpf.Grid.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49alhDevExpress.Xpf.Grid.v13.1.Extensions, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a@dxg2http://schemas.devexpress.com/winfx/2008/xaml/grida	]DevExpress.Xpf.Core.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a?dxe5http://schemas.devexpress.com/winfx/2008/xaml/editors	c
_DevExpress.Xpf.Charts.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a>dxc4http://schemas.devexpress.com/winfx/2008/xaml/charts
�	Resources
 NumericGridColumnStyle��
TargetType$DevExpress.Xpf.Grid.GridColumn$DevExpress.Xpf.Grid.ColumnBase�Property�Value6	0DevExpress.Xpf.Editors.Settings.TextEditSettingsMaskTypeMaskMaskUseAsDisplayFormat$DevExpress.Xpf.Grid.BaseColumn�%s&	��".���@EditSettings$
Numeric=�$f��.�
�@Width$80��.�/)DevExpress.Xpf.DemoBase.DemoModuleControl(!SupressGroupFramePaddingInOptions.OptionsContent��.+���-$�	groupBox1��$��Speed of change��$�50��$
�Stretch=�$	�Top=�$�14(�.���-$�slider��$�30��$
�Stretch=�$�Center=�	�Maximum$	34Q�
�Value$
34Q���
TickPlacement$BottomRight=���-$�0,10,0,0q�$�14(�$�Use RealTimeSource��d�	IsChecked$
TrueY�
Content.
��ColumnDefinitions��$
�0.3*���$
�0.7*�.+�(
"DevExpress.Xpf.Charts.ChartControlCrosshairEnabled$FalseX�$
�0,0,0,0q�Diagram'
!DevExpress.Xpf.Charts.XYDiagram2D#
DevExpress.Xpf.Charts.Diagram
Series/	
)DevExpress.Xpf.Charts.LineScatterSeries2D	-	Name$
UPSDiagram��"

DevExpress.Xpf.Charts.Series
ArgumentScaleType$	Numerical=�(
"DevExpress.Xpf.Charts.LineSeries2D
MarkerSize$2�
Label'
!DevExpress.Xpf.Charts.SeriesLabelVisible.ResolveOverlappingMode$HideOverlapped=�
PointOptions(

"DevExpress.Xpf.Charts.PointOptions

ValueNumericOptions*
$DevExpress.Xpf.Charts.NumericOptions
Format$
FixedPoint=�AxisX#
DevExpress.Xpf.Charts.AxisX2D$
DevExpress.Xpf.Charts.AxisBaseGridLinesVisible."
DevExpress.Xpf.Charts.Axis2DTickmarksVisible.TickmarksMinorVisible.Visible. Label %
DevExpress.Xpf.Charts.AxisLabel!AxisY!#
DevExpress.Xpf.Charts.AxisY2D.. 
DevExpress.Xpf.Charts.Axis"Logarithmic".
#Titles#!
DevExpress.Xpf.Charts.Title$Dock$	$Top=�%
DevExpress.Xpf.Charts.TitleBase%HorizontalAlignment$%Center=�&Content$&Update per second��$�16(�%DevExpress.Xpf.Grid.GridControl-$
�grid��$
�0,0,0,0q�$�1�'View'#DevExpress.Xpf.Grid.TableView(	AutoWidth(.& DevExpress.Xpf.Grid.DataViewBase)AllowEditing).*Columns*+	FieldName$
+Date��,Width$,80��$+Ticker��$
+Last��#�[$+
ChgPercent��
-Header)	#DevExpress.Xpf.Core.ObjectConverter$
-Chg%.EditSettings.$
Numeric=�$p��.$
+Open��#�[$
+High��#�[$	+Low��#�[$+DayVal��$,80��.=	7DevExpress.Xpf.Editors.Settings.ProgressBarEditSettings;	5DevExpress.Xpf.Editors.Settings.RangeBaseEditSettings/Minimum$	/300Q�0Maximum$
01000Q�!�<local:GridDemoModule x:Class="GridDemo.RealtimeDataSource"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
             xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
             mc:Ignorable="d"
             xmlns:local="clr-namespace:GridDemo"
             xmlns:dxdb="http://schemas.devexpress.com/winfx/2008/xaml/demobase"
             xmlns:dxg="http://schemas.devexpress.com/winfx/2008/xaml/grid"
             xmlns:dxe="http://schemas.devexpress.com/winfx/2008/xaml/editors"
             xmlns:dxc="http://schemas.devexpress.com/winfx/2008/xaml/charts"
             d:DesignHeight="400" d:DesignWidth="800" >
    <local:GridDemoModule.Resources>
        <Style x:Key="NumericGridColumnStyle" TargetType="dxg:GridColumn">
            <Setter Property="EditSettings">
                <Setter.Value>
                    <dxe:TextEditSettings MaskType="Numeric" Mask="f" MaskUseAsDisplayFormat="True"/>
                </Setter.Value>
            </Setter>
            <Setter Property="Width" Value="80"/>
        </Style>
    </local:GridDemoModule.Resources>

    <dxdb:DemoModuleControl SupressGroupFramePaddingInOptions="False">
        <dxdb:DemoModuleControl.OptionsContent>
            <StackPanel>
                <GroupBox Header="Speed of change" Height="50" HorizontalAlignment="Stretch" Name="groupBox1" VerticalAlignment="Top" FontSize="14">
                    <Slider Height="30" HorizontalAlignment="Stretch" Name="slider" VerticalAlignment="Center" ValueChanged="slider_ValueChanged" Maximum="34" Value="34" TickPlacement="BottomRight" />
                </GroupBox>
                <CheckBox Margin="0,10,0,0" FontSize="14" Content="Use RealTimeSource" Checked="CheckBox_Checked" Unchecked="CheckBox_Unchecked" IsChecked="True"/>
            </StackPanel>
        </dxdb:DemoModuleControl.OptionsContent>
        <Grid>
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="0.3*"/>
                <ColumnDefinition Width="0.7*"/>
            </Grid.ColumnDefinitions>
            <dxc:ChartControl CrosshairEnabled="False" Margin="0,0,0,0">
                <dxc:ChartControl.Diagram>
                    <dxc:XYDiagram2D>
                        <dxc:XYDiagram2D.Series>
                            <dxc:LineScatterSeries2D x:Name="UPSDiagram" ArgumentScaleType="Numerical" MarkerSize="2">
                                <dxc:LineScatterSeries2D.Label>
                                    <dxc:SeriesLabel Visible="True" ResolveOverlappingMode="HideOverlapped"/>
                                </dxc:LineScatterSeries2D.Label>
                                <dxc:LineScatterSeries2D.PointOptions>
                                    <dxc:PointOptions>
                                        <dxc:PointOptions.ValueNumericOptions>
                                            <dxc:NumericOptions Format="FixedPoint" />
                                        </dxc:PointOptions.ValueNumericOptions>
                                    </dxc:PointOptions>
                                </dxc:LineScatterSeries2D.PointOptions>
                            </dxc:LineScatterSeries2D>
                        </dxc:XYDiagram2D.Series>
                        <dxc:XYDiagram2D.AxisX>
                            <dxc:AxisX2D GridLinesVisible="False" TickmarksVisible="False" TickmarksMinorVisible="False" Visible="False">
                                <dxc:AxisX2D.Label>
                                    <dxc:AxisLabel />
                                </dxc:AxisX2D.Label>
                            </dxc:AxisX2D>
                        </dxc:XYDiagram2D.AxisX>
                        <dxc:XYDiagram2D.AxisY>
                            <dxc:AxisY2D TickmarksMinorVisible="True" TickmarksVisible="True" Logarithmic="True" />
                        </dxc:XYDiagram2D.AxisY>
                    </dxc:XYDiagram2D>
                </dxc:ChartControl.Diagram>
                <dxc:ChartControl.Titles>
                    <dxc:Title Dock="Top" HorizontalAlignment="Center" Content="Update per second" FontSize="16" />
                </dxc:ChartControl.Titles>
            </dxc:ChartControl>
            <dxg:GridControl Name="grid" Margin="0,0,0,0" Grid.Column="1">
                <dxg:GridControl.View>
                    <dxg:TableView AutoWidth="True" AllowEditing="False"/>
                </dxg:GridControl.View>
                <dxg:GridControl.Columns>
                    <dxg:GridColumn FieldName="Date"  Width="80"/>
                    <dxg:GridColumn FieldName="Ticker" />
                    <dxg:GridColumn FieldName="Last" Style="{StaticResource NumericGridColumnStyle}"/>
                    <dxg:GridColumn FieldName="ChgPercent" Header="Chg%">
                        <dxg:GridColumn.EditSettings>
                            <dxe:TextEditSettings MaskType="Numeric" Mask="p" MaskUseAsDisplayFormat="True"/>
                        </dxg:GridColumn.EditSettings>
                    </dxg:GridColumn>
                    <dxg:GridColumn FieldName="Open" Style="{StaticResource NumericGridColumnStyle}"/>
                    <dxg:GridColumn FieldName="High" Style="{StaticResource NumericGridColumnStyle}"/>
                    <dxg:GridColumn FieldName="Low" Style="{StaticResource NumericGridColumnStyle}"/>
                    <dxg:GridColumn FieldName="DayVal"  Width="80">
                        <dxg:GridColumn.EditSettings>
                            <dxe:ProgressBarEditSettings Minimum="300" Maximum="1000" />
                        </dxg:GridColumn.EditSettings>
                    </dxg:GridColumn>
                </dxg:GridControl.Columns>
            </dxg:GridControl>
        </Grid>
    </dxdb:DemoModuleControl>
</local:GridDemoModule>!�using System;
using System.Collections.Generic;
using System.Linq;
using System.Windows;
using System.Windows.Data;
using System.Threading;
using System.Windows.Threading;
using DevExpress.Data;
using System.Collections.ObjectModel;
using System.Diagnostics;
using System.Collections;
using System.ComponentModel;
using DevExpress.Xpf.Charts;
using DevExpress.Xpf.DemoBase.Helpers;
using DevExpress.Xpf.DemoBase;

namespace GridDemo {
    [CodeFile("ModuleResources/RealtimeDataSourceViewModel.(cs)")]
    [CodeFile("ModuleResources/RealtimeDataSourceClasses.(cs)")]
    public partial class RealtimeDataSource : GridDemoModule {
        readonly RealtimeDataSourceViewModel viewModel;
        RealTimeSource realTimeSource;
        DispatcherOperation updateGraphOperation;
        public RealtimeDataSource() {
            viewModel = new RealtimeDataSourceViewModel();
            DataContext = viewModel;
            InitializeComponent();
            viewModel.TimerShowTick += model_TimerShowTick;
            PatchInterval();
            realTimeSource = CreateRealTimeSource(viewModel.List);
            grid.ItemsSource = realTimeSource;
            viewModel.WithRealTimeSource = true;
            Unloaded += RealtimeDataSource_Unloaded;
        }

        void RealtimeDataSource_Unloaded(object sender, RoutedEventArgs e) {
            viewModel.Dispose();
        }
        protected override bool IsGridBorderVisible { get { return true; } }

        delegate void UpdateGraphDelegate(SeriesPointCollection points, double value);
        UpdateGraphDelegate updateGraph = (UpdateGraphDelegate)Delegate.CreateDelegate(typeof(UpdateGraphDelegate), typeof(RealtimeDataSource), "UpdateGraph");
        void model_TimerShowTick(object sender, EventArgs e) {
            if(updateGraphOperation != null && updateGraphOperation.Status != DispatcherOperationStatus.Completed) return;
            double changePerSecond = viewModel.ChangePerSecond;
            updateGraphOperation = Dispatcher.BeginInvoke(DispatcherPriority.Send, updateGraph, UPSDiagram.Points, changePerSecond);
        }
        static void UpdateGraph(SeriesPointCollection points, double value) {
            while(points.Count > 20) {
                points.RemoveAt(0);
            }
            points.Add(new SeriesPoint(DateTime.Now.TimeOfDay.TotalSeconds, value));
        }
        static RealTimeSource CreateRealTimeSource(IList dataSource) {
            RealTimeSource rts = new RealTimeSource { DataSource = dataSource };
            return rts;
        }
        void DisposeRealTimeSource() {
            if(realTimeSource != null) {
                realTimeSource.DataSource = null;
                realTimeSource.Dispose();
            }
            realTimeSource = null;
        }
        void slider_ValueChanged(object sender, RoutedPropertyChangedEventArgs<double> e) {
            PatchInterval();
        }
        void PatchInterval() {
            double pow = (this.slider.Maximum - this.slider.Value + 3) / 2.0;
            viewModel.InterEventDelay = (int)Math.Pow(2.0, pow);
        }

        void CheckBox_Unchecked(object sender, RoutedEventArgs e) {
            viewModel.Update();
            DisposeRealTimeSource();
            grid.ItemsSource = null;
            grid.ItemsSource = viewModel.List;
            PatchInterval();
        }
        void CheckBox_Checked(object sender, RoutedEventArgs e) {
            if(grid == null)
                return;
            grid.ItemsSource = null;
            realTimeSource = CreateRealTimeSource(viewModel.List);
            grid.ItemsSource = realTimeSource;
            viewModel.Update();
            PatchInterval();
        }
    }
}!5MSBAML```����OKmscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089M4clr-namespace:System.Globalization;assembly=mscorlibSystem.GlobalizationD@GridDemo, Version=13.1.4.0, Culture=neutral, PublicKeyToken=null#clr-namespace:GridDemoGridDemoI2clr-namespace:System.Collections;assembly=mscorlibSystem.Collections1&clr-namespace:System;assembly=mscorlibSystemGridDemo.RowTemplate\XPresentationFramework, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35RNWindowsBase, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35WSPresentationCore, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35D9http://schemas.microsoft.com/winfx/2006/xaml/presentationRNSystem.Xaml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089:x,http://schemas.microsoft.com/winfx/2006/xamlGglobal4clr-namespace:System.Globalization;assembly=mscorliba]DevExpress.Xpf.Core.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a;dx2http://schemas.devexpress.com/winfx/2008/xaml/corefbDevExpress.Xpf.Grid.v13.1.Core, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49aa]DevExpress.Xpf.Grid.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49al	hDevExpress.Xpf.Grid.v13.1.Extensions, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a@dxg2http://schemas.devexpress.com/winfx/2008/xaml/grid	Gdxgt<http://schemas.devexpress.com/winfx/2008/xaml/grid/themekeys?dxe5http://schemas.devexpress.com/winfx/2008/xaml/editorse
aDevExpress.Xpf.DemoBase.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49aAdxdb6http://schemas.devexpress.com/winfx/2008/xaml/demobase
"localclr-namespace:GridDemo
Dcollections2clr-namespace:System.Collections;assembly=mscorlib
0sys&clr-namespace:System;assembly=mscorlib
Dmc;http://schemas.openxmlformats.org/markup-compatibility/2006
:d2http://schemas.microsoft.com/expression/blend/2008
�	Resources
�MergedDictionaries
�Source-
'DevExpress.Xpf.DemoBase.NWindDataLoader NWindDataLoader��$-'/GridDemo;component/Themes/generic.xaml?��$C=/GridDemo;component/ModuleResources/RowTemplateTemplates.xaml?�%&	.�/
)DevExpress.Xpf.DemoBase.DemoModuleControl(!SupressGroupFramePaddingInOptions.OptionsContent����Orientation$Vertical=�.+�& DevExpress.Xpf.Editors.CheckEdit-$�CheckBox��$�0,0,0,12q�Content)#DevExpress.Xpf.Core.ObjectConverter$Use Email Template	IsChecked$FalseY�$DevExpress.Xpf.Core.GroupFrame$��Row Template��.�("DevExpress.Xpf.Editors.ListBoxEdit-$�rowTemplateComboBox��$
�0,0,0,0q�%DevExpress.Xpf.Editors.BaseEdit
ShowBorder.	
SelectedIndex$	0��Z�

StyleSettings
:4DevExpress.Xpf.Editors.RadioListBoxEditStyleSettingsItems��Animated Details����Details����Tooltip����Default��Content.%	DevExpress.Xpf.Grid.GridControl	-$
�grid��$�0�)
#DevExpress.Xpf.Grid.DataControlBase

ItemsSource
��Path$	Employees�
�Source#[	Columns$DevExpress.Xpf.Grid.GridColumn$DevExpress.Xpf.Grid.ColumnBase	FieldName$	FirstName��$
DevExpress.Xpf.Grid.BaseColumn
MinWidth$60��
Width$60��$LastName��$60��$60��$	BirthDate��$60��$60��EditSettings60DevExpress.Xpf.Editors.Settings.DateEditSettings60DevExpress.Xpf.Editors.Settings.BaseEditSettings
DisplayFormat$d��-Name$colEMail��$EMail��

Header$E-mail$	195��

FixedWidth.UnboundType]YDevExpress.Data.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a82DevExpress.Utils.Design.UnboundColumnTypeConverter$String 
eMailTemplateCellTemplate#�UnboundExpression$)#Lower([LastName])+'@devexpress.com'��$Title��$60��$60��$Position	View#DevExpress.Xpf.Grid.TableView-$
�view��AllowPerPixelScrolling.& DevExpress.Xpf.Grid.GridViewBaseShowGroupedColumns.& DevExpress.Xpf.Grid.DataViewBaseNavigationStyle$	Row=� expandableRowDetailTemplate DataRowTemplate# �!	AutoWidth!.!X<local:GridDemoModule x:Class="GridDemo.RowTemplate"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:global="clr-namespace:System.Globalization;assembly=mscorlib"
    xmlns:dx="http://schemas.devexpress.com/winfx/2008/xaml/core"
    xmlns:dxg="http://schemas.devexpress.com/winfx/2008/xaml/grid"
    xmlns:dxgt="http://schemas.devexpress.com/winfx/2008/xaml/grid/themekeys"
 xmlns:dxe="http://schemas.devexpress.com/winfx/2008/xaml/editors"
    xmlns:dxdb="http://schemas.devexpress.com/winfx/2008/xaml/demobase"
    xmlns:local="clr-namespace:GridDemo"
    xmlns:collections="clr-namespace:System.Collections;assembly=mscorlib"
    xmlns:sys="clr-namespace:System;assembly=mscorlib"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    mc:Ignorable="d" d:DesignHeight="400" d:DesignWidth="800">
    <local:GridDemoModule.Resources>
        <ResourceDictionary>
            <ResourceDictionary.MergedDictionaries>
                <ResourceDictionary Source="/GridDemo;component/Themes/generic.xaml" />
                <ResourceDictionary Source="/GridDemo;component/ModuleResources/RowTemplateTemplates.xaml" />
            </ResourceDictionary.MergedDictionaries>
            <dxdb:NWindDataLoader x:Key="NWindDataLoader" />
        </ResourceDictionary>
    </local:GridDemoModule.Resources>
    <dxdb:DemoModuleControl SupressGroupFramePaddingInOptions="False">
        <dxdb:DemoModuleControl.OptionsContent>
            <StackPanel Orientation="Vertical">
                <dxe:CheckEdit Margin="0,0,0,12" Name="CheckBox" Content="Use Email Template" IsChecked="False" Checked="CheckBox_Checked" Unchecked="CheckBox_Unchecked" />
                <dx:GroupFrame Header="Row Template">
                    <dxe:ListBoxEdit Background="{x:Null}" Margin="0,0,0,0" ShowBorder="False" SelectedIndex="0" Name="rowTemplateComboBox" EditValueChanged="RowTemplateComboBox_SelectionChanged">
                        <dxe:ListBoxEdit.StyleSettings>
                            <dxe:RadioListBoxEditStyleSettings />
                        </dxe:ListBoxEdit.StyleSettings>
                        <dxe:ListBoxEdit.Items>
                            <sys:String>Animated Details</sys:String>
                            <sys:String>Details</sys:String>
                            <sys:String>Tooltip</sys:String>
                            <sys:String>Default</sys:String>
                        </dxe:ListBoxEdit.Items>
                    </dxe:ListBoxEdit>
                </dx:GroupFrame>
            </StackPanel>
        </dxdb:DemoModuleControl.OptionsContent>
        <dxg:GridControl Name="grid" Grid.Column="0" ItemsSource="{Binding Path=Employees, Source={StaticResource NWindDataLoader}}">
            <dxg:GridControl.Columns>
                <dxg:GridColumn FieldName="FirstName" MinWidth="60" Width="60" />
                <dxg:GridColumn FieldName="LastName" MinWidth="60" Width="60" />
                <dxg:GridColumn FieldName="BirthDate" MinWidth="60" Width="60">
                    <dxg:GridColumn.EditSettings>
                        <dxe:DateEditSettings DisplayFormat="d" />
                    </dxg:GridColumn.EditSettings>
                </dxg:GridColumn>
                <dxg:GridColumn x:Name="colEMail" FieldName="EMail" Header="E-mail" Width="195" FixedWidth="true" UnboundType="String" CellTemplate="{DynamicResource eMailTemplate}" UnboundExpression="Lower([LastName])+'@devexpress.com'" />
                <dxg:GridColumn FieldName="Title" MinWidth="60" Width="60" Header="Position" />
            </dxg:GridControl.Columns>
            <dxg:GridControl.View>
                <dxg:TableView Name="view" AllowPerPixelScrolling="True" ShowGroupedColumns="True" NavigationStyle="Row" DataRowTemplate="{DynamicResource expandableRowDetailTemplate}" AutoWidth="True">
                </dxg:TableView>
            </dxg:GridControl.View>
        </dxg:GridControl>
    </dxdb:DemoModuleControl>
</local:GridDemoModule>!Ausing System;
using System.Windows;
using System.Windows.Controls;
using DevExpress.Xpf.Core;
using System.Diagnostics;
using DevExpress.Xpf.Core.Commands;
using DevExpress.Xpf.DemoBase;
using DevExpress.Utils;


namespace GridDemo {
    [CodeFile("ModuleResources/RowTemplateClasses.(cs)")]
    [CodeFile("ModuleResources/RowTemplateTemplates(.SL).xaml")]
    public partial class RowTemplate : GridDemoModule {
        public RowTemplate() {
            InitializeComponent();
            CheckBox.IsChecked = true;
            view.Tag = new DelegateCommand<object>(OnSendMail);
        }
        void OnSendMail(object parameter) {
            string emailUri = "mailto:" + parameter.ToString();
            try {
                Process.Start(emailUri);
            } catch { }
        }
        private void CheckBox_Checked(object sender, RoutedEventArgs e) {
            if(grid != null) {
                colEMail.CellTemplate = (DataTemplate)Resources["eMailTemplate"];
            }
        }

        private void CheckBox_Unchecked(object sender, RoutedEventArgs e) {
            if(grid != null) {
                colEMail.CellTemplate = null;
            }
        }

        private void RowTemplateComboBox_SelectionChanged(object sender, DevExpress.Xpf.Editors.EditValueChangedEventArgs e) {
            if(grid == null)
                return;
            if(rowTemplateComboBox.SelectedIndex == 0)
                view.DataRowTemplate = (DataTemplate)Resources["expandableRowDetailTemplate"];
            if(rowTemplateComboBox.SelectedIndex == 1)
                view.DataRowTemplate = (DataTemplate)Resources["rowDetailTemplate"];
            if(rowTemplateComboBox.SelectedIndex == 2)
                view.DataRowTemplate = (DataTemplate)Resources["rowToolTipTemplate"];
            if(rowTemplateComboBox.SelectedIndex == 3)
                view.ClearValue(DevExpress.Xpf.Grid.TableView.DataRowTemplateProperty);
        }

  protected bool ShouldUseModifiedTheme {
   get { return rowTemplateComboBox.SelectedIndex <= 2; }
  }
    }
}!�MSBAML```����D@GridDemo, Version=13.1.4.0, Culture=neutral, PublicKeyToken=null#clr-namespace:GridDemoGridDemoGridDemo.Serialization\XPresentationFramework, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35RNWindowsBase, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35WSPresentationCore, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35D9http://schemas.microsoft.com/winfx/2006/xaml/presentationRNSystem.Xaml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089:x,http://schemas.microsoft.com/winfx/2006/xamla]DevExpress.Xpf.Core.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a;dx2http://schemas.devexpress.com/winfx/2008/xaml/corefbDevExpress.Xpf.Grid.v13.1.Core, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49aa]DevExpress.Xpf.Grid.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49alhDevExpress.Xpf.Grid.v13.1.Extensions, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a@dxg2http://schemas.devexpress.com/winfx/2008/xaml/grid?dxe5http://schemas.devexpress.com/winfx/2008/xaml/editors<dxb2http://schemas.devexpress.com/winfx/2008/xaml/bars"localclr-namespace:GridDemoe	aDevExpress.Xpf.DemoBase.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49aAdxdb6http://schemas.devexpress.com/winfx/2008/xaml/demobase	Dmc;http://schemas.openxmlformats.org/markup-compatibility/2006	:d2http://schemas.microsoft.com/expression/blend/2008	GridDemo.GridDemoModule)"UseGridControlWrapperAsDataContext.�	Resources
�MergedDictionaries
�Source-	'DevExpress.Xpf.DemoBase.NWindDataLoader NWindDataLoader��$-'/GridDemo;component/Themes/generic.xaml?�%&	.�/	)DevExpress.Xpf.DemoBase.DemoModuleControlOptionsContent��.+�$DevExpress.Xpf.Core.GroupFrame$��Layout��.���.+��-$�saveLayoutButton��$�22��.�
Save Layout�-$�restoreLayoutButton��{�.$
�0,4,0,0q�$�22��.�Restore Layout$��Layout Samples��$�0,12,0,0q�.���.+���ColumnDefinitions��$
�Auto���$	�100�.+���$
��Select:��$�Center=�$�0,0,12,0q�)#DevExpress.Xpf.Editors.ComboBoxEdit-Name$layoutSamplesComboBox��$�1�'!DevExpress.Xpf.Editors.ButtonEditIsTextEditable.+%DevExpress.Xpf.Editors.LookUpEditBase
SelectedIndex$0��-	�Name$	loadSampleLayoutButton��$�0,12,0,0q�$
�Load��$�22��
Content.
%DevExpress.Xpf.Grid.GridControl-$
�grid��4	.DevExpress.Xpf.Core.Serialization.DXSerializer	SerializationID$
grid��	StoreLayoutMode$	All=�9
3DevExpress.Xpf.Grid.DataControlSerializationOptions


AddNewColumns
.
RemoveOldColumns.)#DevExpress.Xpf.Grid.DataControlBaseItemsSource��Path$	Customers�
�Source#[Columns$DevExpress.Xpf.Grid.GridColumn-$
DevExpress.Xpf.Grid.ColumnBase
Name$colCompanyName��
	FieldName$CompanyName��$DevExpress.Xpf.Grid.BaseColumnWidth$	230��-$colContactName��$ContactName��$	150��-$colContactTitle��$ContactTitle��$	150��-	$
colCountry��$
Country��$90��-
$
colCity��$
City��$	100��-$
colAddress��$
Address��$	260��TotalSummary)#DevExpress.Xpf.Grid.GridSummaryItem)#DevExpress.Xpf.Grid.SummaryItemBase	FieldName$CompanyName��SummaryType$Count=�View#DevExpress.Xpf.Grid.TableView-Name$gridView��& DevExpress.Xpf.Grid.DataViewBaseAllowEditing.ShowTotalSummary.!S<local:GridDemoModule x:Class="GridDemo.Serialization"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:dx="http://schemas.devexpress.com/winfx/2008/xaml/core"
    xmlns:dxg="http://schemas.devexpress.com/winfx/2008/xaml/grid"
 xmlns:dxe="http://schemas.devexpress.com/winfx/2008/xaml/editors"
    xmlns:dxb="http://schemas.devexpress.com/winfx/2008/xaml/bars"
    xmlns:local="clr-namespace:GridDemo"
    xmlns:dxdb="http://schemas.devexpress.com/winfx/2008/xaml/demobase"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    mc:Ignorable="d" d:DesignHeight="400" d:DesignWidth="800" UseGridControlWrapperAsDataContext="True">
    <local:GridDemoModule.Resources>
        <ResourceDictionary>
            <ResourceDictionary.MergedDictionaries>
                <ResourceDictionary Source="/GridDemo;component/Themes/generic.xaml" />
            </ResourceDictionary.MergedDictionaries>
            <dxdb:NWindDataLoader x:Key="NWindDataLoader" />
        </ResourceDictionary>
    </local:GridDemoModule.Resources>
    <dxdb:DemoModuleControl><dxdb:DemoModuleControl.OptionsContent>
        <StackPanel>
            <dx:GroupFrame Header="Layout">
                <StackPanel>
                    <Button Name="saveLayoutButton" Click="saveLayoutButton_Click" Height="22">Save Layout</Button>
                    <Button Name="restoreLayoutButton" Click="restoreLayoutButton_Click" IsEnabled="False" Margin="0,4,0,0" Height="22">Restore Layout</Button>
                </StackPanel>
            </dx:GroupFrame>
            <dx:GroupFrame Header="Layout Samples" Margin="0,12,0,0">
                <StackPanel>
                    <Grid>
                        <Grid.ColumnDefinitions>
                            <ColumnDefinition Width="Auto" />
                            <ColumnDefinition Width="100" />
                        </Grid.ColumnDefinitions>
                        <TextBlock Text="Select:" VerticalAlignment="Center" Margin="0,0,12,0" />
                        <dxe:ComboBoxEdit Grid.Column="1" x:Name="layoutSamplesComboBox" IsTextEditable="False" SelectedIndex="0" />
                    </Grid>
                    <Button x:Name="loadSampleLayoutButton" Margin="0,12,0,0" Content="Load" Click="loadSampleLayoutButton_Click" Height="22" />
                </StackPanel>
            </dx:GroupFrame>
        </StackPanel>
    </dxdb:DemoModuleControl.OptionsContent>
    <dxg:GridControl dx:DXSerializer.SerializationID="grid"
        dx:DXSerializer.StoreLayoutMode="All"
        dxg:GridSerializationOptions.AddNewColumns="False"
        dxg:GridSerializationOptions.RemoveOldColumns="False"
        Name="grid" ItemsSource="{Binding Path=Customers, Source={StaticResource NWindDataLoader}}">
        <dxg:GridControl.Columns>
            <dxg:GridColumn Name="colCompanyName" FieldName="CompanyName" Width="230" />
            <dxg:GridColumn Name="colContactName" FieldName="ContactName" Width="150" />
            <dxg:GridColumn Name="colContactTitle" FieldName="ContactTitle" Width="150" />
            <dxg:GridColumn Name="colCountry" FieldName="Country" Width="90" />
            <dxg:GridColumn Name="colCity" FieldName="City" Width="100" />
            <dxg:GridColumn Name="colAddress" FieldName="Address" Width="260" />
        </dxg:GridControl.Columns>
        <dxg:GridControl.TotalSummary>
            <dxg:GridSummaryItem FieldName="CompanyName" SummaryType="Count" />
        </dxg:GridControl.TotalSummary>
        <dxg:GridControl.View>
            <dxg:TableView AllowEditing="False" x:Name="gridView" ShowTotalSummary="True" />
        </dxg:GridControl.View>
    </dxg:GridControl>
</dxdb:DemoModuleControl></local:GridDemoModule>!�using System;
using System.Collections.Generic;
using System.Windows;
using System.IO;
using System.Reflection;
using DevExpress.Xpf.DemoBase;
using DevExpress.Xpf.DemoBase.Helpers;

namespace GridDemo {
    [CodeFile("ModuleResources/SerializationClasses.(cs)")]
    public partial class Serialization : GridDemoModule {
        MemoryStream currentLayoutStream;
        public Serialization() {
            InitializeComponent();
            Loaded += new RoutedEventHandler(Serialization_Loaded);
        }
        void Serialization_Loaded(object sender, RoutedEventArgs e) {
            List<LayoutSampleBase> layoutSamples = new List<LayoutSampleBase>();
            layoutSamples.Add(new MemoryStreamLayoutSample("Original", SaveLayout()));
            Assembly assembly = typeof(Serialization).Assembly;
            layoutSamples.Add(new ResourceLayoutSample("Brief view", DemoHelper.GetPath("GridDemo.Data.LayoutSamples.", assembly) + "BriefView.xml"));
            layoutSamples.Add(new ResourceLayoutSample("Full view", DemoHelper.GetPath("GridDemo.Data.LayoutSamples.", assembly) + "FullView.xml"));
            layoutSamplesComboBox.ItemsSource = layoutSamples;
            layoutSamplesComboBox.SelectedIndex = 0;
        }

        MemoryStream SaveLayout() {
            MemoryStream stream = new MemoryStream();
            grid.SaveLayoutToStream(stream);
            return stream;
        }
        void RestoreLayout(Stream stream) {
            if(stream == null)
                return;
            stream.Position = 0;
            grid.RestoreLayoutFromStream(stream);
        }
        private void saveLayoutButton_Click(object sender, RoutedEventArgs e) {
            currentLayoutStream = SaveLayout();
            restoreLayoutButton.IsEnabled = true;
        }

        private void restoreLayoutButton_Click(object sender, RoutedEventArgs e) {
            RestoreLayout(currentLayoutStream);
        }
        private void loadSampleLayoutButton_Click(object sender, RoutedEventArgs e) {
            RestoreLayout(((LayoutSampleBase)layoutSamplesComboBox.SelectedItem).GetStream());
        }
    }
}!wMSBAML```����OKmscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e0891&clr-namespace:System;assembly=mscorlibSystemD@GridDemo, Version=13.1.4.0, Culture=neutral, PublicKeyToken=null#clr-namespace:GridDemoGridDemoGridDemo.SortBySummary\XPresentationFramework, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35RNWindowsBase, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35WSPresentationCore, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35D9http://schemas.microsoft.com/winfx/2006/xaml/presentationRNSystem.Xaml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089:x,http://schemas.microsoft.com/winfx/2006/xamla]DevExpress.Xpf.Core.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a;dx2http://schemas.devexpress.com/winfx/2008/xaml/corefbDevExpress.Xpf.Grid.v13.1.Core, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49aa]DevExpress.Xpf.Grid.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49al	hDevExpress.Xpf.Grid.v13.1.Extensions, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a@dxg2http://schemas.devexpress.com/winfx/2008/xaml/grid	Gdxgt<http://schemas.devexpress.com/winfx/2008/xaml/grid/themekeys?dxe5http://schemas.devexpress.com/winfx/2008/xaml/editorse
aDevExpress.Xpf.DemoBase.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49aAdxdb6http://schemas.devexpress.com/winfx/2008/xaml/demobase
0sys&clr-namespace:System;assembly=mscorlib
"localclr-namespace:GridDemo
Dmc;http://schemas.openxmlformats.org/markup-compatibility/2006
:d2http://schemas.microsoft.com/expression/blend/2008
�	Resources
�MergedDictionaries
�Source GridDemo.GroupIntervalData groupIntervalData��$-'/GridDemo;component/Themes/generic.xaml?�%&	.�/
)DevExpress.Xpf.DemoBase.DemoModuleControlOptionsContent����Orientation$Vertical=�.+�$DevExpress.Xpf.Core.GroupFrame$
��Sort By��$
�0,0,0,0q�.�("DevExpress.Xpf.Editors.ListBoxEdit-Name$sortModeList��$�0,0,30,0q�%DevExpress.Xpf.Editors.BaseEdit
ShowBorder.�Z�
StyleSettings:4DevExpress.Xpf.Editors.RadioListBoxEditStyleSettingsItems��Price: Avg Ascending����Price: Avg Descending����Orders: Sum Ascending����Orders: Sum Descending��	Content.	%DevExpress.Xpf.Grid.GridControl-$
�grid��)#DevExpress.Xpf.Grid.DataControlBase
ItemsSource
��Path$Products�
�Source#[
 summaryTemplate
��Triggers��Value��Binding�
TargetName�Property�Value�%�&	��.R���$
�element������*&$View.DefaultGroupSummaryItemTemplate+
��$
true���$2,SummaryItem.(local:SortBySummary.IsSelected)�.a��$
element�����	#FF238F06Columns$	DevExpress.Xpf.Grid.GridColumn	$
DevExpress.Xpf.Grid.ColumnBase
	FieldName$ProductName��$DevExpress.Xpf.Grid.BaseColumnMinWidth$30��	-	Name$colOrderDate��$	OrderDate��$30��	
GroupInterval$	DateMonth=�
EditSettings60DevExpress.Xpf.Editors.Settings.DateEditSettings6
0DevExpress.Xpf.Editors.Settings.BaseEditSettings

DisplayFormat$d��	-$colUnitPrice��$	UnitPrice��$30��60DevExpress.Xpf.Editors.Settings.TextEditSettings$$0.00��	-$colCount��$Count��$30��	-$colOrderSum��$OrderSum��$30��$$0.00��GroupSummary)#DevExpress.Xpf.Grid.GridSummaryItem)#DevExpress.Xpf.Grid.SummaryItemBase
DisplayFormat$Price: Avg = {0:$0.00}��	FieldName$	UnitPrice��SummaryType$
Average=�$Orders: Sum = {0:$0.00}��$OrderSum��$	Sum=�View#DevExpress.Xpf.Grid.TableView-$
�view��& DevExpress.Xpf.Grid.GridViewBase
AllowGrouping.& DevExpress.Xpf.Grid.DataViewBase AllowSorting .!	AutoWidth!."GroupSummaryItemTemplate#"[#NavigationStyle$
#None=�!s<local:GridDemoModule x:Class="GridDemo.SortBySummary"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:dx="http://schemas.devexpress.com/winfx/2008/xaml/core"
    xmlns:dxg="http://schemas.devexpress.com/winfx/2008/xaml/grid"
    xmlns:dxgt="http://schemas.devexpress.com/winfx/2008/xaml/grid/themekeys"
    xmlns:dxe="http://schemas.devexpress.com/winfx/2008/xaml/editors"
    xmlns:dxdb="http://schemas.devexpress.com/winfx/2008/xaml/demobase"
    xmlns:sys="clr-namespace:System;assembly=mscorlib"
    xmlns:local="clr-namespace:GridDemo"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    mc:Ignorable="d" d:DesignHeight="400" d:DesignWidth="800">
    <local:GridDemoModule.Resources>
        <ResourceDictionary>
            <ResourceDictionary.MergedDictionaries>
                <ResourceDictionary Source="/GridDemo;component/Themes/generic.xaml" />
            </ResourceDictionary.MergedDictionaries>
            <local:GroupIntervalData x:Key="groupIntervalData" />
        </ResourceDictionary>
    </local:GridDemoModule.Resources>
    <dxdb:DemoModuleControl>
        <dxdb:DemoModuleControl.OptionsContent>
            <StackPanel Orientation="Vertical">
                <dx:GroupFrame Header="Sort By" Margin="0,0,0,0">
                    <dxe:ListBoxEdit Background="{x:Null}" Margin="0,0,30,0" ShowBorder="False" x:Name="sortModeList" EditValueChanged="sortModeList_SelectionChanged">
                        <dxe:ListBoxEdit.StyleSettings>
                            <dxe:RadioListBoxEditStyleSettings />
                        </dxe:ListBoxEdit.StyleSettings>
                        <dxe:ListBoxEdit.Items>
                            <sys:String>Price: Avg Ascending</sys:String>
                            <sys:String>Price: Avg Descending</sys:String>
                            <sys:String>Orders: Sum Ascending</sys:String>
                            <sys:String>Orders: Sum Descending</sys:String>
                        </dxe:ListBoxEdit.Items>
                    </dxe:ListBoxEdit>
                </dx:GroupFrame>
            </StackPanel>
        </dxdb:DemoModuleControl.OptionsContent>
        <dxg:GridControl Name="grid" ItemsSource="{Binding Path=Products, Source={StaticResource groupIntervalData}}">
            <dxg:GridControl.Resources>
                <DataTemplate x:Key="summaryTemplate">
                    <ContentControl Content="{Binding}" Name="element" ContentTemplate="{Binding View.DefaultGroupSummaryItemTemplate}" />
                    <DataTemplate.Triggers>
                        <DataTrigger Binding="{Binding Path=SummaryItem.(local:SortBySummary.IsSelected)}" Value="true">
                            <Setter TargetName="element" Property="Foreground" Value="#FF238F06" />
                        </DataTrigger>
                    </DataTemplate.Triggers>
                </DataTemplate>
            </dxg:GridControl.Resources>
            <dxg:GridControl.Columns>
                <dxg:GridColumn FieldName="ProductName" MinWidth="30" />
                <dxg:GridColumn x:Name="colOrderDate" FieldName="OrderDate" MinWidth="30" GroupInterval="DateMonth">
                    <dxg:GridColumn.EditSettings>
                        <dxe:DateEditSettings DisplayFormat="d" />
                    </dxg:GridColumn.EditSettings>
                </dxg:GridColumn>
                <dxg:GridColumn x:Name="colUnitPrice" FieldName="UnitPrice" MinWidth="30">
                    <dxg:GridColumn.EditSettings>
                        <dxe:TextEditSettings DisplayFormat="$0.00" />
                    </dxg:GridColumn.EditSettings>
                </dxg:GridColumn>
                <dxg:GridColumn x:Name="colCount" FieldName="Count" MinWidth="30" />
                <dxg:GridColumn x:Name="colOrderSum" FieldName="OrderSum" MinWidth="30">
                    <dxg:GridColumn.EditSettings>
                        <dxe:TextEditSettings DisplayFormat="$0.00" />
                    </dxg:GridColumn.EditSettings>
                </dxg:GridColumn>
            </dxg:GridControl.Columns>
            <dxg:GridControl.GroupSummary>
                <dxg:GridSummaryItem DisplayFormat="Price: Avg = {0:$0.00}" FieldName="UnitPrice" SummaryType="Average" />
                <dxg:GridSummaryItem DisplayFormat="Orders: Sum = {0:$0.00}" FieldName="OrderSum" SummaryType="Sum" />
            </dxg:GridControl.GroupSummary>
            <dxg:GridControl.View>
                <dxg:TableView AllowGrouping="False" AllowSorting="False" AutoWidth="True" Name="view" GroupSummaryItemTemplate="{StaticResource summaryTemplate}" NavigationStyle="None" />
            </dxg:GridControl.View>
        </dxg:GridControl>
    </dxdb:DemoModuleControl>
</local:GridDemoModule>!�using System.Windows;
using DevExpress.Xpf.Grid;
using System.ComponentModel;
using DevExpress.Xpf.DemoBase;

namespace GridDemo {
    [CodeFile("ModuleResources/GroupIntervalsClasses.(cs)")]
    public partial class SortBySummary : GridDemoModule {
        #region static
        public static readonly DependencyProperty IsSelectedProperty;
        static SortBySummary() {
            IsSelectedProperty = DependencyProperty.RegisterAttached("IsSelected", typeof(bool), typeof(SortBySummary), new PropertyMetadata(false));
        }
        public static void SetIsSelected(DependencyObject element, bool value) {
            element.SetValue(IsSelectedProperty, value);
        }
        public static int GetIsSelected(DependencyObject element) {
            return (int)element.GetValue(IsSelectedProperty);
        }
        #endregion 
        public SortBySummary() {
            InitializeComponent();
            grid.GroupBy("OrderDate");
            sortModeList.SelectedIndex = 0;
        }
        ListSortDirection CurrentSortOrder { get { return sortModeList.SelectedIndex % 2 == 0 ? ListSortDirection.Ascending : ListSortDirection.Descending; } }
        int CurrentSummaryItemIndex { get { return (int)(sortModeList.SelectedIndex / 2); } }
        private void sortModeList_SelectionChanged(object sender, DevExpress.Xpf.Editors.EditValueChangedEventArgs e) {
            grid.GroupSummarySortInfo.Clear();
            for(int i = 0; i < grid.GroupSummary.Count; i++) {
                DevExpress.Xpf.Grid.GridSummaryItem item = grid.GroupSummary[i];
                if(i == CurrentSummaryItemIndex) {
                    SortBySummary.SetIsSelected(item, true);
                    grid.GroupSummarySortInfo.Add(new GridGroupSummarySortInfo(item, "OrderDate", CurrentSortOrder));
                }
                else {
                    SortBySummary.SetIsSelected(item, false);
                }
            }
        }
    }
}!q"MSBAML```����D@GridDemo, Version=13.1.4.0, Culture=neutral, PublicKeyToken=null#clr-namespace:GridDemoGridDemoOKmscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089I2clr-namespace:System.Collections;assembly=mscorlibSystem.Collections1&clr-namespace:System;assembly=mscorlibSystemGridDemo.TableView\XPresentationFramework, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35RNWindowsBase, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35WSPresentationCore, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35D9http://schemas.microsoft.com/winfx/2006/xaml/presentationRNSystem.Xaml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089:x,http://schemas.microsoft.com/winfx/2006/xamla]DevExpress.Xpf.Core.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a;dx2http://schemas.devexpress.com/winfx/2008/xaml/corefbDevExpress.Xpf.Grid.v13.1.Core, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49aa]DevExpress.Xpf.Grid.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49al	hDevExpress.Xpf.Grid.v13.1.Extensions, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a@dxg2http://schemas.devexpress.com/winfx/2008/xaml/grid	?dxe5http://schemas.devexpress.com/winfx/2008/xaml/editors"localclr-namespace:GridDemoe
aDevExpress.Xpf.DemoBase.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49aAdxdb6http://schemas.devexpress.com/winfx/2008/xaml/demobase
Dcollections2clr-namespace:System.Collections;assembly=mscorlib
0sys&clr-namespace:System;assembly=mscorlib
Dmc;http://schemas.openxmlformats.org/markup-compatibility/2006
:d2http://schemas.microsoft.com/expression/blend/2008
GridDemo.GridDemoModule)"UseGridControlWrapperAsDataContext.�	Resources
�MergedDictionaries
�Source!GridDemo.DemoValuesProvider DemoValuesProvider;5GridDemo.ScrollingAnimationDurationToBooleanConverter 0,ScrollingAnimationDurationToBooleanConverterB<DevExpress.Xpf.Core.DefaultBooleanToNullableBooleanConverter ,(DefaultBooleanToNullableBooleanConverter-
'DevExpress.Xpf.DemoBase.NWindDataLoader NWindDataLoader��$-'/GridDemo;component/Themes/generic.xaml?�%<&	&	&	
&	.�/
)DevExpress.Xpf.DemoBase.DemoModuleControlOptionsContent��.+�$DevExpress.Xpf.Core.GroupFrame$��Scrolling Options��$�0,0,0,12q�.���.+�& DevExpress.Xpf.Editors.CheckEdit-Name$allowFixedGroupsCheckEdit��$
�Bold"�$
�0,0,0,4q�Content)	#DevExpress.Xpf.Core.ObjectConverter$Allow Fixed Groups	^�ToolTip$jdSpecifies whether the top visible group row is always displayed when scrolling through grouped data.��	IsChecked�	�Path$'	!GridControl.View.AllowFixedGroups�
�Mode$
TwoWay=��	Converter#[-$!allowCascadeUpdateCheckEdit��$
�0,0,0,4q�$Allow Cascade Update	$93Makes vertical scrolling perfectly fast and smooth.���$)	#GridControl.View.AllowCascadeUpdate�$
TwoWay=�-$%allowPerPixelScrollingCheckEdit��$
�0,0,0,4q�$Allow Per Pixel Scrolling	$71Specifies whether per-pixel scrolling is enabled.���$-	'GridControl.View.AllowPerPixelScrolling�$
TwoWay=�-$allowScrollingAnimation��$
�0,0,0,0q�$Allow Scrolling Animation	$c]Turn on this option to provide visual feedback and enhance interactivity when scrolling rows.��{��*)'GridControl.View.AllowPerPixelScrolling+�$.	(GridControl.View.ScrollAnimationDuration�$
TwoWay=�#[$��Customization Options��$�0,0,0,12q�.���.+�-$autoWidthCheckEdit��$
�0,0,0,4q�$Column Auto Width	$ZTSpecifies whether column widths are automatically changed to match the grid's width.���$ 	GridControl.View.AutoWidth�$
TwoWay=�-$allowSortingCheckEdit��$
�0,0,0,4q�$
Allow Sorting	$*$Specifies whether you can sort data.���$#	GridControl.View.AllowSorting�$
TwoWay=�-$allowGroupingCheckEdit��$
�0,0,0,4q�$Allow Grouping	$+%Specifies whether you can group data.���$$	GridControl.View.AllowGrouping�$
TwoWay=�-$allowMovingCheckEdit��$
�0,0,0,4q�$Allow Moving	$JDSpecifies whether you are allowed to move columns via drag and drop.���$(	"GridControl.View.AllowColumnMoving�$
TwoWay=�-	$allowResizingCheckEdit��$
�0,0,0,4q�$Allow Resizing	$\VSpecifies whether you can change column widths by dragging the edges of their headers.���$$	GridControl.View.AllowResizing�$
TwoWay=�-
$allowBestFitCheckEdit��$
�0,0,0,4q�$Allow Best Fit	$YSSpecifies whether it's allowed to calculate and aply optimal widths to all columns.���$#	GridControl.View.AllowBestFit�$
TwoWay=�-$showIndicatorCheckEdit��$
�0,0,0,0q�$Show Indicator	$=7Specifies whether the Row Indicator panel is displayed.���$$	GridControl.View.ShowIndicator�$
TwoWay=�$��Appearance Options��$�0,0,0,12q�.���.+�-$ �showVerticalLinesCheckEdit��$
�0,0,0,4q�$Show Vertical Lines	$71Specifies whether to display vertical grid lines.���$(	"GridControl.View.ShowVerticalLines�$
TwoWay=�-
$"�showHorizontalLinesCheckEdit��$
�0,0,0,0q�$Show Horizontal Lines	$93Specifies whether to display horizontal grid lines.���$*	$GridControl.View.ShowHorizontalLines�$
TwoWay=�$��Navigation Style��$�0,0,0,12q�.�)
#DevExpress.Xpf.Editors.ComboBoxEdit
-
Name$NavigationStyleComboBox��$
�0,0,0,0q�'!DevExpress.Xpf.Editors.ButtonEdit
IsTextEditable
.+%DevExpress.Xpf.Editors.LookUpEditBase
SelectedIndex$0�$<6Specifies whether row and/or cell focusing is allowed.��ItemsSource�*NavigationStyles+
�Source#[SelectedItem�$&	 GridControl.View.NavigationStyle�$
TwoWay=�$��Summary Options��$�0,0,0,12q�.�(
"DevExpress.Xpf.Editors.ListBoxEdit
-
Name$	lbSummary��$�0,0,30,0q�%DevExpress.Xpf.Editors.BaseEdit
ShowBorder.

SelectedIndex$0��Z�

StyleSettings:4DevExpress.Xpf.Editors.RadioListBoxEditStyleSettings
Items.��Show Fixed Summary Panel����Show Summary Panel��Content.%DevExpress.Xpf.Grid.GridControl-Name$
grid��)#DevExpress.Xpf.Grid.DataControlBaseItemsSource�$	Invoices�#[Columns$DevExpress.Xpf.Grid.GridColumn-Name$colID��$DevExpress.Xpf.Grid.ColumnBase	FieldName$
OrderID��$DevExpress.Xpf.Grid.BaseColumnMinWidth$60��Width$60��
AllowResizing]YDevExpress.Data.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a5/DevExpress.Utils.Design.DefaultBooleanConverter$False 
FixedWidth .
!Header$!ID	-$
colCountry��$
Country��$50��$50��"	SortIndex$"0�-$
colCity��$
City��$50��$50��-$colUnitPrice��$	UnitPrice��$50��$50��#EditSettings#60DevExpress.Xpf.Editors.Settings.SpinEditSettings60DevExpress.Xpf.Editors.Settings.TextEditSettings$MaskType$
$Numeric=�%MaskUseAsDisplayFormat%.&Mask$&c��'MaskCulture$'en-US��-$colQuantity��$Quantity��$50��$50��-$colTotal��$Total��$50��$50��(UnboundType82DevExpress.Utils.Design.UnboundColumnTypeConverter$
(Decimal)ReadOnly).*UnboundExpression$3*-([UnitPrice] * [Quantity]) * (1 - [Discount])��#$
$Numeric=�%.$&c��$'en-US��+TotalSummary+)#DevExpress.Xpf.Grid.GridSummaryItem)#DevExpress.Xpf.Grid.SummaryItemBase,	FieldName$
,Country��-SummaryType$-Count=�$-Count=�.	Alignment$.Right=�/View/#DevExpress.Xpf.Grid.TableView-0Name$
0view��1AllowFixedGroups$
1True& DevExpress.Xpf.Grid.GridViewBase2ShowGroupedColumns2.3AllowCascadeUpdate3.4AllowPerPixelScrolling4.& DevExpress.Xpf.Grid.DataViewBase5NavigationStyle$	5Row=�6	AutoWidth6.7ShowFixedTotalSummary7.!%<local:GridDemoModule x:Class="GridDemo.TableView"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:dx="http://schemas.devexpress.com/winfx/2008/xaml/core"
    xmlns:dxg="http://schemas.devexpress.com/winfx/2008/xaml/grid"
 xmlns:dxe="http://schemas.devexpress.com/winfx/2008/xaml/editors"
    xmlns:local="clr-namespace:GridDemo"
 xmlns:dxdb="http://schemas.devexpress.com/winfx/2008/xaml/demobase"
    xmlns:collections="clr-namespace:System.Collections;assembly=mscorlib"
    xmlns:sys="clr-namespace:System;assembly=mscorlib"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    mc:Ignorable="d" d:DesignHeight="400" d:DesignWidth="800" UseGridControlWrapperAsDataContext="True">
    <local:GridDemoModule.Resources>
        <ResourceDictionary>
            <ResourceDictionary.MergedDictionaries>
                <ResourceDictionary Source="/GridDemo;component/Themes/generic.xaml" />
            </ResourceDictionary.MergedDictionaries>
            <local:DemoValuesProvider x:Key="DemoValuesProvider" />
            <local:ScrollingAnimationDurationToBooleanConverter x:Key="ScrollingAnimationDurationToBooleanConverter"/>
            <dx:DefaultBooleanToNullableBooleanConverter x:Key="DefaultBooleanToNullableBooleanConverter" />
            <dxdb:NWindDataLoader x:Key="NWindDataLoader" />
        </ResourceDictionary>
    </local:GridDemoModule.Resources>
    <dxdb:DemoModuleControl>
        <dxdb:DemoModuleControl.OptionsContent>
            <StackPanel>
                <dx:GroupFrame Header="Scrolling Options" Margin="0,0,0,12">
                    <StackPanel>
                        <dxe:CheckEdit x:Name="allowFixedGroupsCheckEdit" FontWeight="Bold" Margin="0,0,0,4" IsChecked="{Binding Path=GridControl.View.AllowFixedGroups, Mode=TwoWay, Converter={StaticResource DefaultBooleanToNullableBooleanConverter}}" Content="Allow Fixed Groups" ToolTipService.ToolTip="Specifies whether the top visible group row is always displayed when scrolling through grouped data."/>
                        <dxe:CheckEdit x:Name="allowCascadeUpdateCheckEdit" Margin="0,0,0,4" IsChecked="{Binding Path=GridControl.View.AllowCascadeUpdate, Mode=TwoWay}" Content="Allow Cascade Update" ToolTipService.ToolTip="Makes vertical scrolling perfectly fast and smooth."/>
                        <dxe:CheckEdit x:Name="allowPerPixelScrollingCheckEdit" Margin="0,0,0,4" IsChecked="{Binding Path=GridControl.View.AllowPerPixelScrolling, Mode=TwoWay}" Content="Allow Per Pixel Scrolling" ToolTipService.ToolTip="Specifies whether per-pixel scrolling is enabled."/>
                        <dxe:CheckEdit x:Name="allowScrollingAnimation" IsEnabled="{Binding GridControl.View.AllowPerPixelScrolling}" Margin="0,0,0,0" IsChecked="{Binding Path=GridControl.View.ScrollAnimationDuration, Mode=TwoWay, Converter={StaticResource ScrollingAnimationDurationToBooleanConverter}}" Content="Allow Scrolling Animation" ToolTipService.ToolTip="Turn on this option to provide visual feedback and enhance interactivity when scrolling rows."/>
                    </StackPanel>
                </dx:GroupFrame>
                <dx:GroupFrame Header="Customization Options" Margin="0,0,0,12">
                    <StackPanel>
                        <dxe:CheckEdit x:Name="autoWidthCheckEdit" Margin="0,0,0,4" IsChecked="{Binding Path=GridControl.View.AutoWidth, Mode=TwoWay}" Content="Column Auto Width" ToolTipService.ToolTip="Specifies whether column widths are automatically changed to match the grid's width."/>
                        <dxe:CheckEdit x:Name="allowSortingCheckEdit" Margin="0,0,0,4" IsChecked="{Binding Path=GridControl.View.AllowSorting, Mode=TwoWay}" Content="Allow Sorting" ToolTipService.ToolTip="Specifies whether you can sort data."/>
                        <dxe:CheckEdit x:Name="allowGroupingCheckEdit" Margin="0,0,0,4" IsChecked="{Binding Path=GridControl.View.AllowGrouping, Mode=TwoWay}" Content="Allow Grouping" ToolTipService.ToolTip="Specifies whether you can group data."/>
                        <dxe:CheckEdit x:Name="allowMovingCheckEdit" Margin="0,0,0,4" IsChecked="{Binding Path=GridControl.View.AllowColumnMoving, Mode=TwoWay}" Content="Allow Moving" ToolTipService.ToolTip="Specifies whether you are allowed to move columns via drag and drop."/>
                        <dxe:CheckEdit x:Name="allowResizingCheckEdit" Margin="0,0,0,4" IsChecked="{Binding Path=GridControl.View.AllowResizing, Mode=TwoWay}" Content="Allow Resizing" ToolTipService.ToolTip="Specifies whether you can change column widths by dragging the edges of their headers."/>
                        <dxe:CheckEdit x:Name="allowBestFitCheckEdit" Margin="0,0,0,4" IsChecked="{Binding Path=GridControl.View.AllowBestFit, Mode=TwoWay}" Content="Allow Best Fit" ToolTipService.ToolTip="Specifies whether it's allowed to calculate and aply optimal widths to all columns."/>
                        <dxe:CheckEdit x:Name="showIndicatorCheckEdit" Margin="0,0,0,0" IsChecked="{Binding Path=GridControl.View.ShowIndicator, Mode=TwoWay}" Content="Show Indicator" ToolTipService.ToolTip="Specifies whether the Row Indicator panel is displayed."/>
                    </StackPanel>
                </dx:GroupFrame>
                <dx:GroupFrame Header="Appearance Options" Margin="0,0,0,12">
                    <StackPanel>
                        <dxe:CheckEdit Name="showVerticalLinesCheckEdit" Margin="0,0,0,4" IsChecked="{Binding Path=GridControl.View.ShowVerticalLines, Mode=TwoWay}" Content="Show Vertical Lines" ToolTipService.ToolTip="Specifies whether to display vertical grid lines."/>
                        <dxe:CheckEdit Name="showHorizontalLinesCheckEdit" Margin="0,0,0,0" IsChecked="{Binding Path=GridControl.View.ShowHorizontalLines, Mode=TwoWay}" Content="Show Horizontal Lines" ToolTipService.ToolTip="Specifies whether to display horizontal grid lines."/>
                    </StackPanel>
                </dx:GroupFrame>
                <dx:GroupFrame Header="Navigation Style" Margin="0,0,0,12">
                    <dxe:ComboBoxEdit Margin="0,0,0,0" IsTextEditable="False" x:Name="NavigationStyleComboBox" ItemsSource="{Binding NavigationStyles, Source={StaticResource DemoValuesProvider}}" SelectedIndex="0" SelectedItem="{Binding Path=GridControl.View.NavigationStyle, Mode=TwoWay}" ToolTipService.ToolTip="Specifies whether row and/or cell focusing is allowed."/>
                </dx:GroupFrame>
                <dx:GroupFrame Header="Summary Options" Margin="0,0,0,12">
                    <dxe:ListBoxEdit x:Name="lbSummary" Background="{x:Null}" Margin="0,0,30,0" ShowBorder="False" SelectedIndex="0" SelectedIndexChanged="lbSummary_SelectedIndexChanged">
                        <dxe:ListBoxEdit.StyleSettings>
                            <dxe:RadioListBoxEditStyleSettings />
                        </dxe:ListBoxEdit.StyleSettings>
                        <sys:String>Show Fixed Summary Panel</sys:String>
                        <sys:String>Show Summary Panel</sys:String>
                    </dxe:ListBoxEdit>
                </dx:GroupFrame>
            </StackPanel>
        </dxdb:DemoModuleControl.OptionsContent>
        <dxg:GridControl x:Name="grid" ItemsSource="{Binding Path=Invoices, Source={StaticResource NWindDataLoader}}">
            <dxg:GridControl.Columns>
                <dxg:GridColumn x:Name="colID" FieldName="OrderID" MinWidth="60" Width="60" AllowResizing="False" FixedWidth="true" Header="ID" />
                <dxg:GridColumn x:Name="colCountry" FieldName="Country" MinWidth="50" Width="50" SortIndex="0" />
                <dxg:GridColumn x:Name="colCity" FieldName="City" MinWidth="50" Width="50" />
                <dxg:GridColumn x:Name="colUnitPrice" FieldName="UnitPrice" MinWidth="50" Width="50">
                    <dxg:GridColumn.EditSettings>
                        <dxe:SpinEditSettings MaskType="Numeric" MaskUseAsDisplayFormat="True" Mask="c" MaskCulture="en-US" />
                    </dxg:GridColumn.EditSettings>
                </dxg:GridColumn>
                <dxg:GridColumn x:Name="colQuantity" FieldName="Quantity" MinWidth="50" Width="50" />
                <dxg:GridColumn x:Name="colTotal" FieldName="Total" MinWidth="50" Width="50" UnboundType="Decimal" ReadOnly="True" UnboundExpression="([UnitPrice] * [Quantity]) * (1 - [Discount])">
                    <dxg:GridColumn.EditSettings>
                        <dxe:TextEditSettings MaskType="Numeric" MaskUseAsDisplayFormat="True" Mask="c" MaskCulture="en-US" />
                    </dxg:GridColumn.EditSettings>
                </dxg:GridColumn>
            </dxg:GridControl.Columns>
            <dxg:GridControl.TotalSummary>
                <dxg:GridSummaryItem FieldName="Country" SummaryType="Count"/>
                <dxg:GridSummaryItem SummaryType="Count" Alignment="Right"/>
            </dxg:GridControl.TotalSummary>
            <dxg:GridControl.View>
                <dxg:TableView x:Name="view" AllowFixedGroups="True" ShowGroupedColumns="True" AllowCascadeUpdate="True" AllowPerPixelScrolling="True" NavigationStyle="Row" AutoWidth="True" ShowFixedTotalSummary="True"/>
            </dxg:GridControl.View>
        </dxg:GridControl>
    </dxdb:DemoModuleControl>
</local:GridDemoModule>!�using System;
using System.Windows.Data;
using DevExpress.Xpf.Grid;
using System.Windows;
using DevExpress.Xpf.DemoBase;

namespace GridDemo {
    [CodeFile("Controls/Converters.(cs)")]
    public partial class TableView : GridDemoModule {
        public TableView() {
            InitializeComponent();
        }

        void lbSummary_SelectedIndexChanged(object sender, RoutedEventArgs e) {
            if(lbSummary.SelectedIndex == 0) {
                grid.View.ShowTotalSummary = false;
                grid.View.ShowFixedTotalSummary = true;
            }
            else {
                grid.View.ShowTotalSummary = true;
                grid.View.ShowFixedTotalSummary = false;
            }
        }
    }
}!�MSBAML```����OKmscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089M4clr-namespace:System.Globalization;assembly=mscorlibSystem.GlobalizationD@GridDemo, Version=13.1.4.0, Culture=neutral, PublicKeyToken=null#clr-namespace:GridDemoGridDemoI2clr-namespace:System.Collections;assembly=mscorlibSystem.Collections1&clr-namespace:System;assembly=mscorlibSystemGridDemo.TotalSummary\XPresentationFramework, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35RNWindowsBase, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35WSPresentationCore, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35D9http://schemas.microsoft.com/winfx/2006/xaml/presentationRNSystem.Xaml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089:x,http://schemas.microsoft.com/winfx/2006/xamlGglobal4clr-namespace:System.Globalization;assembly=mscorliba]DevExpress.Xpf.Core.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a;dx2http://schemas.devexpress.com/winfx/2008/xaml/corefbDevExpress.Xpf.Grid.v13.1.Core, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49aa]DevExpress.Xpf.Grid.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49al	hDevExpress.Xpf.Grid.v13.1.Extensions, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a@dxg2http://schemas.devexpress.com/winfx/2008/xaml/grid	?dxe5http://schemas.devexpress.com/winfx/2008/xaml/editors"localclr-namespace:GridDemoe
aDevExpress.Xpf.DemoBase.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49aAdxdb6http://schemas.devexpress.com/winfx/2008/xaml/demobase
Dcollections2clr-namespace:System.Collections;assembly=mscorlib
0sys&clr-namespace:System;assembly=mscorlib
Dmc;http://schemas.openxmlformats.org/markup-compatibility/2006
:d2http://schemas.microsoft.com/expression/blend/2008
�	Resources
�MergedDictionaries
�Source-
'DevExpress.Xpf.DemoBase.NWindDataLoader NWindDataLoaderGridDemo.DemoDataProvider DemoDataProvider/)DevExpress.Xpf.Core.FormatStringConverter FormatStringConverterFormatString��$-'/GridDemo;component/Themes/generic.xaml?�%8&	&	&	
$
0.##��.�/
)DevExpress.Xpf.DemoBase.DemoModuleControl(!SupressGroupFramePaddingInOptions.OptionsContent����Orientation$Vertical=�.+�& DevExpress.Xpf.Editors.CheckEdit-Name$,&cbTotalSummaryPanelsContextMenuEndbled��Content)#DevExpress.Xpf.Core.ObjectConverter$"Summary Context Menu Enabled$�0,0,6,12q�		IsChecked	�
�Path$$
View.IsTotalSummaryMenuEnabled��Mode$TwoWay=�-$cbShowFooter��$Show Summary Panel$�0,0,6,12q�	�$
View.ShowTotalSummary�$TwoWay=�-$cbShowFixedTotalSummary��$$Show Fixed Total Summary Panel$�0,0,6,12q�	�$ 
View.ShowFixedTotalSummary�$TwoWay=��-�Name$btnTotalSummaryEditor��$�Total Summary Editor��$�0,0,0,12q�$�22���-$ btnFixedTotalSummaryEditor��$ �Fixed Total Summary Editor��$�0,0,0,12q�$�22��
Content.
%DevExpress.Xpf.Grid.GridControl-$
�grid��$��1�$�0�)#DevExpress.Xpf.Grid.DataControlBaseItemsSource�$
Invoices�
�Source#[Columns$	DevExpress.Xpf.Grid.GridColumn	$
DevExpress.Xpf.Grid.ColumnBase
	FieldName$
Country��$DevExpress.Xpf.Grid.BaseColumnMinWidth$80��Width$80��	$
City��$	100��$	100��	$	UnitPrice��$	150��$	150��
EditSettings60DevExpress.Xpf.Editors.Settings.TextEditSettings6
0DevExpress.Xpf.Editors.Settings.BaseEditSettings

DisplayFormat$$0.00��MaskType$
Numeric=�	$Discount��$	150��$	150��$0%��$
Numeric=�	$Total��
UnboundType]YDevExpress.Data.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a82DevExpress.Utils.Design.UnboundColumnTypeConverter$
Decimal$	150��$	150��
UnboundExpression$3-([UnitPrice] * [Quantity]) * (1 - [Discount])��$$0.00��$
Numeric=�TotalSummary)#DevExpress.Xpf.Grid.GridSummaryItem)#DevExpress.Xpf.Grid.SummaryItemBaseSummaryType$Count=�	Alignment$Right=�	FieldName$	UnitPrice��$	Min=�ShowInColumn$	UnitPrice��$Discount��$	Max=�$Discount��$Total��$	Sum=�$Total��View#DevExpress.Xpf.Grid.TableView& DevExpress.Xpf.Grid.DataViewBaseNavigationStyle$	Row=� ShowTotalSummary .!ShowFixedTotalSummary!."	AutoWidth".!�<local:GridDemoModule x:Class="GridDemo.TotalSummary"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:global="clr-namespace:System.Globalization;assembly=mscorlib"
    xmlns:dx="http://schemas.devexpress.com/winfx/2008/xaml/core"
    xmlns:dxg="http://schemas.devexpress.com/winfx/2008/xaml/grid"
 xmlns:dxe="http://schemas.devexpress.com/winfx/2008/xaml/editors"
    xmlns:local="clr-namespace:GridDemo"
 xmlns:dxdb="http://schemas.devexpress.com/winfx/2008/xaml/demobase"
    xmlns:collections="clr-namespace:System.Collections;assembly=mscorlib"
    xmlns:sys="clr-namespace:System;assembly=mscorlib"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    mc:Ignorable="d" d:DesignHeight="400" d:DesignWidth="800">
    <local:GridDemoModule.Resources>
        <ResourceDictionary>
            <ResourceDictionary.MergedDictionaries>
                <ResourceDictionary Source="/GridDemo;component/Themes/generic.xaml" />
            </ResourceDictionary.MergedDictionaries>
            <dxdb:NWindDataLoader x:Key="NWindDataLoader" />
            <local:DemoDataProvider x:Key="DemoDataProvider" />
            <dx:FormatStringConverter x:Key="FormatStringConverter" FormatString="0.##" />
        </ResourceDictionary>
    </local:GridDemoModule.Resources>
    <dxdb:DemoModuleControl SupressGroupFramePaddingInOptions="False">
        <dxdb:DemoModuleControl.OptionsContent>
            <StackPanel Orientation="Vertical">
                <dxe:CheckEdit x:Name="cbTotalSummaryPanelsContextMenuEndbled" IsChecked="{Binding Path=View.IsTotalSummaryMenuEnabled, Mode=TwoWay}" Content="Summary Context Menu Enabled" Margin="0,0,6,12" />
                <dxe:CheckEdit x:Name="cbShowFooter" IsChecked="{Binding Path=View.ShowTotalSummary, Mode=TwoWay}" Content="Show Summary Panel" Margin="0,0,6,12" />
                <dxe:CheckEdit x:Name="cbShowFixedTotalSummary" IsChecked="{Binding Path=View.ShowFixedTotalSummary, Mode=TwoWay}" Content="Show Fixed Total Summary Panel" Margin="0,0,6,12" />
                <Button x:Name="btnTotalSummaryEditor" Content="Total Summary Editor" Click="btnTotalSummaryEditor_Click" Margin="0,0,0,12" Height="22"/>
                <Button x:Name="btnFixedTotalSummaryEditor" Content="Fixed Total Summary Editor" Click="btnFixedTotalSummaryEditor_Click" Margin="0,0,0,12" Height="22"/>
            </StackPanel>
        </dxdb:DemoModuleControl.OptionsContent>
        <dxg:GridControl Grid.Row="1" Name="grid" Grid.Column="0" ItemsSource="{Binding Path=Invoices, Source={StaticResource NWindDataLoader}}">
            <dxg:GridControl.Columns>
                <dxg:GridColumn FieldName="Country" MinWidth="80" Width="80" />
                <dxg:GridColumn FieldName="City" MinWidth="100" Width="100" />
                <dxg:GridColumn FieldName="UnitPrice" MinWidth="150" Width="150">
                    <dxg:GridColumn.EditSettings>
                        <dxe:TextEditSettings DisplayFormat="$0.00" MaskType="Numeric" />
                    </dxg:GridColumn.EditSettings>
                </dxg:GridColumn>
                <dxg:GridColumn FieldName="Discount" MinWidth="150" Width="150">
                    <dxg:GridColumn.EditSettings>
                        <dxe:TextEditSettings DisplayFormat="0%" MaskType="Numeric" />
                    </dxg:GridColumn.EditSettings>
                </dxg:GridColumn>
                <dxg:GridColumn FieldName="Total" UnboundType="Decimal" MinWidth="150" Width="150" UnboundExpression="([UnitPrice] * [Quantity]) * (1 - [Discount])">
                    <dxg:GridColumn.EditSettings>
                        <dxe:TextEditSettings DisplayFormat="$0.00" MaskType="Numeric" />
                    </dxg:GridColumn.EditSettings>
                </dxg:GridColumn>
            </dxg:GridControl.Columns>
            <dxg:GridControl.TotalSummary>
                <dxg:GridSummaryItem SummaryType="Count" Alignment="Right"/>
                <dxg:GridSummaryItem FieldName="UnitPrice" SummaryType="Min" ShowInColumn="UnitPrice" />
                <dxg:GridSummaryItem FieldName="Discount" SummaryType="Max" ShowInColumn="Discount" />
                <dxg:GridSummaryItem FieldName="Total" SummaryType="Sum" ShowInColumn="Total" />
            </dxg:GridControl.TotalSummary>
            <dxg:GridControl.View>
                <dxg:TableView NavigationStyle="Row" ShowTotalSummary="True" ShowFixedTotalSummary="True" AutoWidth="True">
                </dxg:TableView>
            </dxg:GridControl.View>
        </dxg:GridControl>
    </dxdb:DemoModuleControl>
</local:GridDemoModule>!�using System;
using System.Windows;
using System.Windows.Media;
using DevExpress.Xpf.Grid;
using DevExpress.Xpf.Core;
using DevExpress.Xpf.Editors;
using System.Windows.Controls;

namespace GridDemo {
    public partial class TotalSummary : GridDemoModule {
        public TotalSummary() {
            InitializeComponent();
        }

        void btnTotalSummaryEditor_Click(object sender, RoutedEventArgs e) {
            grid.View.ShowTotalSummaryEditor(grid.Columns[2]);
        }

        void btnFixedTotalSummaryEditor_Click(object sender, RoutedEventArgs e) {
            grid.View.ShowFixedTotalSummaryEditor();
        }
    }
}!�MSBAML```����OKmscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e0891&clr-namespace:System;assembly=mscorlibSystemI2clr-namespace:System.Collections;assembly=mscorlibSystem.CollectionsM4clr-namespace:System.Globalization;assembly=mscorlibSystem.GlobalizationD@GridDemo, Version=13.1.4.0, Culture=neutral, PublicKeyToken=null#clr-namespace:GridDemoGridDemoGridDemo.TreeListView\XPresentationFramework, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35RNWindowsBase, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35WSPresentationCore, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35D9http://schemas.microsoft.com/winfx/2006/xaml/presentationRNSystem.Xaml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089:x,http://schemas.microsoft.com/winfx/2006/xamlJmc;http://schemas.openxmlformats.org/markup-compatibility/2006@d2http://schemas.microsoft.com/expression/blend/20086sys&clr-namespace:System;assembly=mscorlibJcollections2clr-namespace:System.Collections;assembly=mscorlibGglobal4clr-namespace:System.Globalization;assembly=mscorliba]DevExpress.Xpf.Core.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a;dx2http://schemas.devexpress.com/winfx/2008/xaml/corefbDevExpress.Xpf.Grid.v13.1.Core, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49aa]DevExpress.Xpf.Grid.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49al	hDevExpress.Xpf.Grid.v13.1.Extensions, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a@dxg2http://schemas.devexpress.com/winfx/2008/xaml/grid	Gdxgt<http://schemas.devexpress.com/winfx/2008/xaml/grid/themekeys?dxe5http://schemas.devexpress.com/winfx/2008/xaml/editorse
aDevExpress.Xpf.DemoBase.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49aAdxdb6http://schemas.devexpress.com/winfx/2008/xaml/demobase
"localclr-namespace:GridDemo
GridDemo.GridDemoModule)"UseGridControlWrapperAsDataContext.�	Resources
�MergedDictionaries
�Source@
:DevExpress.Xpf.DemoBase.DataClasses.EmployeesWithPhotoData 
employeesData��$D>/GridDemo;component/ModuleResources/TreeListViewTemplates.xaml?�%&	.�/
)DevExpress.Xpf.DemoBase.DemoModuleControlOptionsContent��.+�$DevExpress.Xpf.Core.GroupFrame$��Customization Options��$�0,0,0,12q�.���.+�& DevExpress.Xpf.Editors.CheckEdit-Name$allowSortingCheckEdit��$
�0,0,0,4q�Content)#DevExpress.Xpf.Core.ObjectConverter$
Allow Sorting	IsChecked��Path$#GridControl.View.AllowSorting�	�Mode$	TwoWay=�-$allowMovingCheckEdit��$
�0,0,0,4q�$Allow Moving�$("GridControl.View.AllowColumnMoving�$	TwoWay=�-$allowResizingCheckEdit��$
�0,0,0,4q�$Allow Resizing�$$GridControl.View.AllowResizing�$	TwoWay=�-$showIndicatorCheckEdit��$
�0,0,0,4q�$Show Indicator�$$GridControl.View.ShowIndicator�$	TwoWay=�-$autoWidthCheckEdit��$
�0,0,0,4q�$Column Auto Width�$ GridControl.View.AutoWidth�$	TwoWay=�-$%allowPerPixelScrollingCheckEdit��$
�0,0,0,0q�$Allow Per Pixel Scrolling�$-'GridControl.View.AllowPerPixelScrolling�$	TwoWay=�$��Appearance Options��$�0,0,0,12q�.���.+�-$ �showVerticalLinesCheckEdit��$
�0,0,0,4q�$Show Vertical Lines�$("GridControl.View.ShowVerticalLines�$	TwoWay=�-$"�showHorizontalLinesCheckEdit��$
�0,0,0,4q�$Show Horizontal Lines�$*$GridControl.View.ShowHorizontalLines�$	TwoWay=�-	$�showTreelLinesCheckEdit��$
�0,0,0,0q�$Show Tree Lines�$$GridControl.View.TreeLineStyle�$	TwoWay=� showTreeLinesConverter
�	Converter#
[$��Navigation Style��$�0,0,0,12q�.�)#DevExpress.Xpf.Editors.ComboBoxEdit-
Name$NavigationStyleComboBox��$�0,0,30,0q�'!DevExpress.Xpf.Editors.ButtonEditIsTextEditable.+	%DevExpress.Xpf.Editors.LookUpEditBase
	SelectedItem
�$& GridControl.View.NavigationStyle�$	TwoWay=�	ItemsSource"
GridDemo.NavigationStyleList
1+DevExpress.Xpf.Grid.GridViewNavigationStyleCell=�Row=�$Enable Fixed Column Menu$
�0,0,0,4q��$+%GridControl.View.AllowFixedColumnMenu�$	TwoWay=�-$�chkEnableContextMenu��$
TrueY�$Enable Context Menus$
�0,0,0,4q�$�0,0,0,12q�$Enable Editing�$#GridControl.View.AllowEditing�$	TwoWay=�{��$SelectedItem��ElementName$NavigationStyleComboBox�� '#navigationStyleToIsEnabledConverter#
[d�-$�showHideButton��$�22��d�	IsChecked�$-'GridControl.View.IsColumnChooserVisible�$	TwoWay=���*	IsChecked+�RelativeSource��*Self+ +'ShowColumnChooserButtonContentConverter#
[Content.%DevExpress.Xpf.Grid.GridControl-
Name$treeList��)
#DevExpress.Xpf.Grid.DataControlBase
ItemsSource�$
DataSource�
�Source#[Columns$DevExpress.Xpf.Grid.GridColumn$DevExpress.Xpf.Grid.ColumnBase	FieldName$JobTitle��$FullName��UnboundType]YDevExpress.Data.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a82DevExpress.Utils.Design.UnboundColumnTypeConverter$StringAllowEditing5/DevExpress.Utils.Design.DefaultBooleanConverter$FalseUnboundExpression$$[FirstName] + ' ' + [LastName]��$
City��$AddressLine1��$DevExpress.Xpf.Grid.BaseColumn
Header$
AddressVisible.$Phone��.$	GroupName��MinWidth$	210��$	ImageData��Width$60��
FixedWidth.$Photo 
AllowResizing$ False 
photoTemplate!CellTemplate#!["View"& DevExpress.Xpf.Grid.TreeListView-#Name$
#view��$AllowPerPixelScrolling$.%KeyFieldName$%Id��&ParentFieldName$&ParentId��'	AutoWidth'.& DevExpress.Xpf.Grid.DataViewBase(ShowSearchPanelMode$(Never=�!z<local:GridDemoModule x:Class="GridDemo.TreeListView"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:sys="clr-namespace:System;assembly=mscorlib"
    xmlns:collections="clr-namespace:System.Collections;assembly=mscorlib"
    xmlns:global="clr-namespace:System.Globalization;assembly=mscorlib"
    xmlns:dx="http://schemas.devexpress.com/winfx/2008/xaml/core"
    xmlns:dxg="http://schemas.devexpress.com/winfx/2008/xaml/grid"
    xmlns:dxgt="http://schemas.devexpress.com/winfx/2008/xaml/grid/themekeys"
 xmlns:dxe="http://schemas.devexpress.com/winfx/2008/xaml/editors"
    xmlns:dxdb="http://schemas.devexpress.com/winfx/2008/xaml/demobase"
    xmlns:local="clr-namespace:GridDemo"
    mc:Ignorable="d" d:DesignHeight="400" d:DesignWidth="800" UseGridControlWrapperAsDataContext="True">

    <local:GridDemoModule.Resources>
        <ResourceDictionary>
            <ResourceDictionary.MergedDictionaries>
                <ResourceDictionary Source="/GridDemo;component/ModuleResources/TreeListViewTemplates.xaml" />
            </ResourceDictionary.MergedDictionaries>
            <dxdb:EmployeesWithPhotoData x:Key="employeesData" />
        </ResourceDictionary>
    </local:GridDemoModule.Resources>

    <dxdb:DemoModuleControl>
        <dxdb:DemoModuleControl.OptionsContent>
            <StackPanel>
                <dx:GroupFrame Header="Customization Options" Margin="0,0,0,12">
                    <StackPanel>
                        <dxe:CheckEdit x:Name="allowSortingCheckEdit" Margin="0,0,0,4" IsChecked="{Binding Path=GridControl.View.AllowSorting, Mode=TwoWay}" Content="Allow Sorting" />
                        <dxe:CheckEdit x:Name="allowMovingCheckEdit" Margin="0,0,0,4" IsChecked="{Binding Path=GridControl.View.AllowColumnMoving, Mode=TwoWay}" Content="Allow Moving" />
                        <dxe:CheckEdit x:Name="allowResizingCheckEdit" Margin="0,0,0,4" IsChecked="{Binding Path=GridControl.View.AllowResizing, Mode=TwoWay}" Content="Allow Resizing" />
                        <dxe:CheckEdit x:Name="showIndicatorCheckEdit" Margin="0,0,0,4" IsChecked="{Binding Path=GridControl.View.ShowIndicator, Mode=TwoWay}" Content="Show Indicator" />
                        <dxe:CheckEdit x:Name="autoWidthCheckEdit" Margin="0,0,0,4" IsChecked="{Binding Path=GridControl.View.AutoWidth, Mode=TwoWay}" Content="Column Auto Width" />
                        <dxe:CheckEdit x:Name="allowPerPixelScrollingCheckEdit" Margin="0,0,0,0" IsChecked="{Binding Path=GridControl.View.AllowPerPixelScrolling, Mode=TwoWay}" Content="Allow Per Pixel Scrolling" />
                    </StackPanel>
                </dx:GroupFrame>
                <dx:GroupFrame Header="Appearance Options" Margin="0,0,0,12">
                    <StackPanel>
                        <dxe:CheckEdit Name="showVerticalLinesCheckEdit" Margin="0,0,0,4" IsChecked="{Binding Path=GridControl.View.ShowVerticalLines, Mode=TwoWay}" Content="Show Vertical Lines" />
                        <dxe:CheckEdit Name="showHorizontalLinesCheckEdit" Margin="0,0,0,4" IsChecked="{Binding Path=GridControl.View.ShowHorizontalLines, Mode=TwoWay}" Content="Show Horizontal Lines" />
                        <dxe:CheckEdit Name="showTreelLinesCheckEdit" Margin="0,0,0,0" IsChecked="{Binding Path=GridControl.View.TreeLineStyle, Mode=TwoWay, Converter={StaticResource showTreeLinesConverter}}" Content="Show Tree Lines" />
                    </StackPanel>
                </dx:GroupFrame>
                <dx:GroupFrame Header="Navigation Style" Margin="0,0,0,12">
                    <dxe:ComboBoxEdit Margin="0,0,30,0" x:Name="NavigationStyleComboBox"  IsTextEditable="False" SelectedItem="{Binding Path=GridControl.View.NavigationStyle, Mode=TwoWay}">
                        <dxe:ComboBoxEdit.ItemsSource>
                            <local:NavigationStyleList>
                                <dxg:GridViewNavigationStyle>Cell</dxg:GridViewNavigationStyle>
                                <dxg:GridViewNavigationStyle>Row</dxg:GridViewNavigationStyle>
                            </local:NavigationStyleList>
                        </dxe:ComboBoxEdit.ItemsSource>
                    </dxe:ComboBoxEdit>
                </dx:GroupFrame>
                <dxe:CheckEdit IsChecked="{Binding Path=GridControl.View.AllowFixedColumnMenu, Mode=TwoWay}" Content="Enable Fixed Column Menu" Margin="0,0,0,4" />
                <dxe:CheckEdit Name="chkEnableContextMenu" IsChecked="True" Content="Enable Context Menus" Margin="0,0,0,4" Checked="chkEnableContextMenu_Checked" Unchecked="chkEnableContextMenu_Unchecked"/>
                <dxe:CheckEdit IsChecked="{Binding Path=GridControl.View.AllowEditing, Mode=TwoWay}" Margin="0,0,0,12" Content="Enable Editing" IsEnabled="{Binding Path=SelectedItem, ElementName=NavigationStyleComboBox, Converter={StaticResource navigationStyleToIsEnabledConverter}}"/>
                <ToggleButton Name="showHideButton" Height="22" IsChecked="{Binding Path=GridControl.View.IsColumnChooserVisible, Mode=TwoWay}"
                          Content="{Binding IsChecked, RelativeSource={RelativeSource Self}, Converter={StaticResource ShowColumnChooserButtonContentConverter}}"/>
            </StackPanel>
        </dxdb:DemoModuleControl.OptionsContent>
        <dxg:GridControl x:Name="treeList" ItemsSource="{Binding Path=DataSource, Source={StaticResource employeesData}}">
            <dxg:GridControl.Columns>
                <dxg:GridColumn FieldName="JobTitle" />
                <dxg:GridColumn FieldName="FullName" UnboundType="String" AllowEditing="False" UnboundExpression="[FirstName] + ' ' + [LastName]" />
                <dxg:GridColumn FieldName="City" />
                <dxg:GridColumn FieldName="AddressLine1" Header="Address" Visible="False"/>
                <dxg:GridColumn FieldName="Phone" Visible="False"/>
                <dxg:GridColumn FieldName="GroupName" MinWidth="210"/>
                <dxg:GridColumn FieldName="ImageData" Width="60" FixedWidth="True" Header="Photo" AllowResizing="False" CellTemplate="{StaticResource photoTemplate}" />
            </dxg:GridControl.Columns>
            <dxg:GridControl.View>
                    <dxg:TreeListView x:Name="view" AllowPerPixelScrolling="True" KeyFieldName="Id" ParentFieldName="ParentId"
                                      AutoWidth="True" ShowSearchPanelMode="Never" />
            </dxg:GridControl.View>
        </dxg:GridControl>
    </dxdb:DemoModuleControl>
</local:GridDemoModule>!tusing System.Windows;
using DevExpress.Xpf.DemoBase;

namespace GridDemo {
    [CodeFile("ModuleResources/TreeListViewTemplates(.SL).xaml")]
    [CodeFile("ModuleResources/TreeListViewClasses.(cs)")]
    public partial class TreeListView : GridDemoModule {
        public TreeListView() {
            InitializeComponent();
            this.view.ExpandAllNodes();
        }
        private void chkEnableContextMenu_Checked(object sender, RoutedEventArgs e) {
            view.IsColumnMenuEnabled = true;
            view.IsRowCellMenuEnabled = true;
            view.IsTotalSummaryMenuEnabled = true;
        }
        private void chkEnableContextMenu_Unchecked(object sender, RoutedEventArgs e) {
            view.IsColumnMenuEnabled = false;
            view.IsRowCellMenuEnabled = false;
            view.IsTotalSummaryMenuEnabled = false;
        }
    }
}!�MSBAML```����D@GridDemo, Version=13.1.4.0, Culture=neutral, PublicKeyToken=null#clr-namespace:GridDemoGridDemoOKmscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089I2clr-namespace:System.Collections;assembly=mscorlibSystem.Collections1&clr-namespace:System;assembly=mscorlibSystemGridDemo.UnboundColumns\XPresentationFramework, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35RNWindowsBase, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35WSPresentationCore, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35D9http://schemas.microsoft.com/winfx/2006/xaml/presentationRNSystem.Xaml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089:x,http://schemas.microsoft.com/winfx/2006/xamla]DevExpress.Xpf.Core.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a;dx2http://schemas.devexpress.com/winfx/2008/xaml/corefbDevExpress.Xpf.Grid.v13.1.Core, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49aa]DevExpress.Xpf.Grid.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49al	hDevExpress.Xpf.Grid.v13.1.Extensions, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a@dxg2http://schemas.devexpress.com/winfx/2008/xaml/grid	?dxe5http://schemas.devexpress.com/winfx/2008/xaml/editorse
aDevExpress.Xpf.DemoBase.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49aAdxdb6http://schemas.devexpress.com/winfx/2008/xaml/demobase
"localclr-namespace:GridDemo
Dcollections2clr-namespace:System.Collections;assembly=mscorlib
0sys&clr-namespace:System;assembly=mscorlib
Dmc;http://schemas.openxmlformats.org/markup-compatibility/2006
:d2http://schemas.microsoft.com/expression/blend/2008
�	Resources
�MergedDictionaries
�Source-
'DevExpress.Xpf.DemoBase.NWindDataLoader NWindDataLoader��$F@/GridDemo;component/ModuleResources/UnboundColumnsTemplates.xaml?�%&	.�/
)DevExpress.Xpf.DemoBase.DemoModuleControlOptionsContent��$	�160��.+�$DevExpress.Xpf.Core.GroupFrame$
��Column:��.�("DevExpress.Xpf.Editors.ListBoxEdit-$�columnsList��%DevExpress.Xpf.Editors.BaseEdit
ShowBorder.
SelectedIndex$0��Z�
StyleSettings:4DevExpress.Xpf.Editors.RadioListBoxEditStyleSettingsItems,&DevExpress.Xpf.Editors.ListBoxEditItem
�Tag$DiscountAmount��.�Discount Amount$Total��.�Total$
TotalScale��.�
Total Scale�-$ �showExpressionEditorButton��$�0,12,0,0q�.�Show Expression Editor	Content.	%DevExpress.Xpf.Grid.GridControl-$
�grid��$�0�)	#DevExpress.Xpf.Grid.DataControlBase
	ItemsSource
��Path$InvoicesNew�
�Source#[
Columns
$
DevExpress.Xpf.Grid.GridColumn
-
Name$
colOrderID��$DevExpress.Xpf.Grid.ColumnBase	FieldName$
OrderID��$DevExpress.Xpf.Grid.BaseColumnWidth$80��
FixedWidth.

GroupIndex$0�
-$
colProduct��$	ProductID��MinWidth$	200��$	200��EditSettings:
4DevExpress.Xpf.Editors.Settings.ComboBoxEditSettings
<6DevExpress.Xpf.Editors.Settings.LookUpEditSettingsBaseAutoComplete.ImmediatePopup.ValueMember$	ProductID��
DisplayMember$ProductName��ItemsSource�$Products�#[
-$colUnitPrice��$	UnitPrice��$30��60DevExpress.Xpf.Editors.Settings.TextEditSettingsMaskType$
Numeric=�MaskUseAsDisplayFormat.Mask$c��MaskCulture$en-US��
-$colDiscount��$Discount��$30��$
Numeric=�.$p0��
-$colQuantity��$Quantity��$30��
-	$colDiscountAmount��$DiscountAmount��UnboundType]YDevExpress.Data.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a82DevExpress.Utils.Design.UnboundColumnTypeConverter$
DecimalUnboundExpression$/)Round([UnitPrice] * [Quantity] - [Total])��$	100�� AllowEditing5/DevExpress.Utils.Design.DefaultBooleanConverter$ False#!AllowUnboundExpressionEditor!.60DevExpress.Xpf.Editors.Settings.BaseEditSettings"
DisplayFormat$"$0.00��
-
$colTotal��$Total��$
Decimal$3-([UnitPrice] * [Quantity]) * (1 - [Discount])�� totalCellTemplateSelector#CellTemplateSelector##[$	100��$ False!.$"$0.00��
-$
colTotalScale��$
TotalScale��$Visible$.%ShowInColumnChooser%.$
Decimal$ICIif([Total] < 1000, 0.4, Min((0.5 + ([Total] - 1000) / 1000), 1.2))��!.&GroupSummary&)#DevExpress.Xpf.Grid.GridSummaryItem)#DevExpress.Xpf.Grid.SummaryItemBase'	FieldName$'	ProductID��(SummaryType$(Count=�$'Total��$	(Sum=�)TotalSummary)$(Count=�*	Alignment$*Right=�$'Total��$	(Sum=�$
*Left=�+View+#DevExpress.Xpf.Grid.TableView,	AutoWidth,.& DevExpress.Xpf.Grid.DataViewBase-ShowFixedTotalSummary-.!s<local:GridDemoModule x:Class="GridDemo.UnboundColumns"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:dx="http://schemas.devexpress.com/winfx/2008/xaml/core"
    xmlns:dxg="http://schemas.devexpress.com/winfx/2008/xaml/grid"
 xmlns:dxe="http://schemas.devexpress.com/winfx/2008/xaml/editors"
 xmlns:dxdb="http://schemas.devexpress.com/winfx/2008/xaml/demobase"
    xmlns:local="clr-namespace:GridDemo"
    xmlns:collections="clr-namespace:System.Collections;assembly=mscorlib"
    xmlns:sys="clr-namespace:System;assembly=mscorlib"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    mc:Ignorable="d" d:DesignHeight="400" d:DesignWidth="800">
    <local:GridDemoModule.Resources>
        <ResourceDictionary>
            <ResourceDictionary.MergedDictionaries>
                <ResourceDictionary Source="/GridDemo;component/ModuleResources/UnboundColumnsTemplates.xaml" />
            </ResourceDictionary.MergedDictionaries>
            <dxdb:NWindDataLoader x:Key="NWindDataLoader" />
        </ResourceDictionary>
    </local:GridDemoModule.Resources>
    <dxdb:DemoModuleControl>
        <dxdb:DemoModuleControl.OptionsContent>
            <StackPanel MinWidth="160">
                <dx:GroupFrame Header="Column:">
                    <dxe:ListBoxEdit Background="{x:Null}" ShowBorder="False" Name="columnsList" SelectedIndex="0">
                        <dxe:ListBoxEdit.StyleSettings>
                            <dxe:RadioListBoxEditStyleSettings />
                        </dxe:ListBoxEdit.StyleSettings>
                        <dxe:ListBoxEdit.Items>
                            <dxe:ListBoxEditItem Tag="DiscountAmount">Discount Amount</dxe:ListBoxEditItem>
                            <dxe:ListBoxEditItem Tag="Total">Total</dxe:ListBoxEditItem>
                            <dxe:ListBoxEditItem Tag="TotalScale">Total Scale</dxe:ListBoxEditItem>
                        </dxe:ListBoxEdit.Items>
                    </dxe:ListBoxEdit>
                </dx:GroupFrame>
                <Button Margin="0,12,0,0" Name="showExpressionEditorButton" Click="showExpressionEditorButton_Click">Show Expression Editor</Button>
            </StackPanel>
        </dxdb:DemoModuleControl.OptionsContent>
        <dxg:GridControl Name="grid" Grid.Column="0" ItemsSource="{Binding Path=InvoicesNew, Source={StaticResource NWindDataLoader}}">
            <dxg:GridControl.Columns>
                <dxg:GridColumn x:Name="colOrderID" FieldName="OrderID" Width="80" FixedWidth="True" GroupIndex="0" />
                <dxg:GridColumn x:Name="colProduct" FieldName="ProductID" MinWidth="200" Width="200">
                    <dxg:GridColumn.EditSettings>
                        <dxe:ComboBoxEditSettings AutoComplete="True" ImmediatePopup="True" ValueMember="ProductID" DisplayMember="ProductName" ItemsSource="{Binding Path=Products, Source={StaticResource NWindDataLoader}}" />
                    </dxg:GridColumn.EditSettings>
                </dxg:GridColumn>
                <dxg:GridColumn x:Name="colUnitPrice" FieldName="UnitPrice" MinWidth="30">
                    <dxg:GridColumn.EditSettings>
                        <dxe:TextEditSettings MaskType="Numeric" MaskUseAsDisplayFormat="True" Mask="c" MaskCulture="en-US" />
                    </dxg:GridColumn.EditSettings>
                </dxg:GridColumn>
                <dxg:GridColumn x:Name="colDiscount" FieldName="Discount" MinWidth="30">
                    <dxg:GridColumn.EditSettings>
                        <dxe:TextEditSettings MaskType="Numeric" MaskUseAsDisplayFormat="True" Mask="p0" />
                    </dxg:GridColumn.EditSettings>
                </dxg:GridColumn>
                <dxg:GridColumn x:Name="colQuantity" FieldName="Quantity" MinWidth="30" />
                <dxg:GridColumn x:Name="colDiscountAmount" FieldName="DiscountAmount" UnboundType="Decimal" UnboundExpression="Round([UnitPrice] * [Quantity] - [Total])" MinWidth="100" AllowEditing="False" AllowUnboundExpressionEditor="True">
                    <dxg:GridColumn.EditSettings>
                        <dxe:TextEditSettings DisplayFormat="$0.00" />
                    </dxg:GridColumn.EditSettings>
                </dxg:GridColumn>
                <dxg:GridColumn x:Name="colTotal" FieldName="Total" UnboundType="Decimal" UnboundExpression="([UnitPrice] * [Quantity]) * (1 - [Discount])" CellTemplateSelector="{StaticResource  totalCellTemplateSelector}" MinWidth="100" AllowEditing="False" AllowUnboundExpressionEditor="True">
                    <dxg:GridColumn.EditSettings>
                        <dxe:TextEditSettings DisplayFormat="$0.00" />
                    </dxg:GridColumn.EditSettings>
                </dxg:GridColumn>
                <dxg:GridColumn x:Name="colTotalScale" FieldName="TotalScale" Visible="False" ShowInColumnChooser="False" UnboundType="Decimal" UnboundExpression="Iif([Total] &lt; 1000, 0.4, Min((0.5 + ([Total] - 1000) / 1000), 1.2))" AllowUnboundExpressionEditor="True" />
            </dxg:GridControl.Columns>
            <dxg:GridControl.GroupSummary>
                <dxg:GridSummaryItem FieldName="ProductID" SummaryType="Count" />
                <dxg:GridSummaryItem FieldName="Total" SummaryType="Sum" />
            </dxg:GridControl.GroupSummary>
            <dxg:GridControl.TotalSummary>
                <dxg:GridSummaryItem SummaryType="Count" Alignment="Right"/>
                <dxg:GridSummaryItem FieldName="Total" SummaryType="Sum" Alignment="Left"/>
            </dxg:GridControl.TotalSummary>
            <dxg:GridControl.View>
                <dxg:TableView AutoWidth="True" ShowFixedTotalSummary="True" />
            </dxg:GridControl.View>
        </dxg:GridControl>
    </dxdb:DemoModuleControl>
</local:GridDemoModule>!�using System.Windows;
using System.Windows.Controls;
using DevExpress.Xpf.DemoBase;

namespace GridDemo {
    [CodeFile("ModuleResources/UnboundColumnsTemplates(.SL).xaml")]
    [CodeFile("ModuleResources/UnboundColumnsClasses.(cs)")]
    public partial class UnboundColumns : GridDemoModule {
        public UnboundColumns() {
            InitializeComponent();
            grid.ExpandAllGroups();
        }
        private void showExpressionEditorButton_Click(object sender, RoutedEventArgs e) {
            grid.View.ShowUnboundExpressionEditor(grid.Columns[(string)((ListBoxItem)columnsList.SelectedItem).Tag]);
        }
    }
}!kMSBAML```����D@GridDemo, Version=13.1.4.0, Culture=neutral, PublicKeyToken=null#clr-namespace:GridDemoGridDemoGridDemo.Validation\XPresentationFramework, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35RNWindowsBase, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35WSPresentationCore, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35D9http://schemas.microsoft.com/winfx/2006/xaml/presentationRNSystem.Xaml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089:x,http://schemas.microsoft.com/winfx/2006/xamla]DevExpress.Xpf.Core.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a;dx2http://schemas.devexpress.com/winfx/2008/xaml/corefbDevExpress.Xpf.Grid.v13.1.Core, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49aa]DevExpress.Xpf.Grid.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49alhDevExpress.Xpf.Grid.v13.1.Extensions, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a@dxg2http://schemas.devexpress.com/winfx/2008/xaml/grid?dxe5http://schemas.devexpress.com/winfx/2008/xaml/editorse	aDevExpress.Xpf.DemoBase.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49aAdxdb6http://schemas.devexpress.com/winfx/2008/xaml/demobase	"localclr-namespace:GridDemo	Dmc;http://schemas.openxmlformats.org/markup-compatibility/2006	:d2http://schemas.microsoft.com/expression/blend/2008	�	Resources
�MergedDictionaries
�Source-	'DevExpress.Xpf.DemoBase.NWindDataLoader NWindDataLoader��$-'/GridDemo;component/Themes/generic.xaml?�%&	.�/	)DevExpress.Xpf.DemoBase.DemoModuleControlOptionsContent��.+�$DevExpress.Xpf.Core.GroupFrame$��Unit Price condition��$�0,0,0,12q�.�("DevExpress.Xpf.Editors.ListBoxEdit-Name$unitPriceConditionListBox��
SelectedIndex$0�%DevExpress.Xpf.Editors.BaseEdit
ShowBorder.�Z�
StyleSettings:4DevExpress.Xpf.Editors.RadioListBoxEditStyleSettingsItems*$GridDemo.IsGreaterThanValidationRule$GridDemo.DecimalValidationRule	Value$	10~�3	-GridDemo.IsGreaterThanOrEqualToValidationRule	$	10~�'
!GridDemo.IsLessThanValidationRule
$	10~�0*GridDemo.IsLessThanOrEqualToValidationRule$	10~�)#GridDemo.DoesNotEqualValidationRule$	10~�$��Quantity condition��$�0,0,0,12q�.�-$quantityConditionListBox��$4�.�Z�$	40~�	$	40~�
$	40~�$	40~�$	40~�$��Discount condition��$
�0,0,0,0q�.�-$discountConditionListBox��$1�.�Z�$	0~�	$	0~�
$	0~�$	0~�$	0~�
Content.
%
DevExpress.Xpf.Grid.GridControl
-$
�grid��
Columns$DevExpress.Xpf.Grid.GridColumn$DevExpress.Xpf.Grid.ColumnBase	FieldName$
OrderID��$DevExpress.Xpf.Grid.BaseColumn
Width$
50��MinWidth$30��ReadOnly.$	ProductID��
Header)#DevExpress.Xpf.Core.ObjectConverter$
Product$	
100��EditSettings:4DevExpress.Xpf.Editors.Settings.ComboBoxEditSettings<6DevExpress.Xpf.Editors.Settings.LookUpEditSettingsBaseAutoComplete.ImmediatePopup.ValueMember$	ProductID��
DisplayMember$ProductName��ItemsSource��Path$Products�
�Source#[-Name$colUnitPrice��$	UnitPrice��$	
100��60DevExpress.Xpf.Editors.Settings.TextEditSettingsMaskType$
Numeric=�MaskUseAsDisplayFormat.Mask$c��MaskCulture$en-US��-$colQuantityPrice��$Quantity��$	
100��60DevExpress.Xpf.Editors.Settings.SpinEditSettings$
Numeric=�$d��-$colDiscount��$Discount��$	
100��$
Numeric=�.$p0��	Increment$
0.01~�$SubTotal��$	
100��UnboundType]
YDevExpress.Data.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a8
2DevExpress.Utils.Design.UnboundColumnTypeConverter$
Decimal AllowEditing5
/DevExpress.Utils.Design.DefaultBooleanConverter$ False!UnboundExpression$3!-([UnitPrice] * [Quantity]) * (1 - [Discount])��$
Numeric=�.$c��$en-US��"
GroupSummary")#DevExpress.Xpf.Grid.GridSummaryItem)#DevExpress.Xpf.Grid.SummaryItemBase#	FieldName$
#From��$SummaryType$$Count=�%
View%#DevExpress.Xpf.Grid.TableView-$
�view��&	AutoWidth&.!�<local:GridDemoModule x:Class="GridDemo.Validation"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:dx="http://schemas.devexpress.com/winfx/2008/xaml/core"
    xmlns:dxg="http://schemas.devexpress.com/winfx/2008/xaml/grid"
    xmlns:dxe="http://schemas.devexpress.com/winfx/2008/xaml/editors"
    xmlns:dxdb="http://schemas.devexpress.com/winfx/2008/xaml/demobase"
    xmlns:local="clr-namespace:GridDemo"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    mc:Ignorable="d" d:DesignHeight="400" d:DesignWidth="800">
    <local:GridDemoModule.Resources>
        <ResourceDictionary>
            <ResourceDictionary.MergedDictionaries>
                <ResourceDictionary Source="/GridDemo;component/Themes/generic.xaml" />
            </ResourceDictionary.MergedDictionaries>
            <dxdb:NWindDataLoader x:Key="NWindDataLoader" />
        </ResourceDictionary>
    </local:GridDemoModule.Resources>
    <dxdb:DemoModuleControl>
        <dxdb:DemoModuleControl.OptionsContent>
            <StackPanel>
                <dx:GroupFrame Header="Unit Price condition" Margin="0,0,0,12">
                    <dxe:ListBoxEdit Background="{x:Null}" x:Name="unitPriceConditionListBox" SelectedIndex="0" ShowBorder="False">
                        <dxe:ListBoxEdit.StyleSettings>
                            <dxe:RadioListBoxEditStyleSettings />
                        </dxe:ListBoxEdit.StyleSettings>
                        <dxe:ListBoxEdit.Items>
                            <local:IsGreaterThanValidationRule Value="10" />
                            <local:IsGreaterThanOrEqualToValidationRule Value="10" />
                            <local:IsLessThanValidationRule Value="10" />
                            <local:IsLessThanOrEqualToValidationRule Value="10" />
                            <local:DoesNotEqualValidationRule Value="10" />
                        </dxe:ListBoxEdit.Items>
                    </dxe:ListBoxEdit>
                </dx:GroupFrame>
                <dx:GroupFrame Header="Quantity condition" Margin="0,0,0,12">
                    <dxe:ListBoxEdit Background="{x:Null}" x:Name="quantityConditionListBox" SelectedIndex="4" ShowBorder="False">
                        <dxe:ListBoxEdit.StyleSettings>
                            <dxe:RadioListBoxEditStyleSettings />
                        </dxe:ListBoxEdit.StyleSettings>
                        <dxe:ListBoxEdit.Items>
                            <local:IsGreaterThanValidationRule Value="40" />
                            <local:IsGreaterThanOrEqualToValidationRule Value="40" />
                            <local:IsLessThanValidationRule Value="40" />
                            <local:IsLessThanOrEqualToValidationRule Value="40" />
                            <local:DoesNotEqualValidationRule Value="40" />
                        </dxe:ListBoxEdit.Items>
                    </dxe:ListBoxEdit>
                </dx:GroupFrame>
                <dx:GroupFrame Header="Discount condition" Margin="0,0,0,0">
                    <dxe:ListBoxEdit Background="{x:Null}" x:Name="discountConditionListBox" SelectedIndex="1" ShowBorder="False">
                        <dxe:ListBoxEdit.StyleSettings>
                            <dxe:RadioListBoxEditStyleSettings />
                        </dxe:ListBoxEdit.StyleSettings>
                        <dxe:ListBoxEdit.Items>
                            <local:IsGreaterThanValidationRule Value="0" />
                            <local:IsGreaterThanOrEqualToValidationRule Value="0" />
                            <local:IsLessThanValidationRule Value="0" />
                            <local:IsLessThanOrEqualToValidationRule Value="0" />
                            <local:DoesNotEqualValidationRule Value="0" />
                        </dxe:ListBoxEdit.Items>
                    </dxe:ListBoxEdit>
                </dx:GroupFrame>
            </StackPanel>
        </dxdb:DemoModuleControl.OptionsContent>
        <dxg:GridControl Name="grid">
            <dxg:GridControl.Columns>
                <dxg:GridColumn FieldName="OrderID" Width="50" MinWidth="30" ReadOnly="true" />
                <dxg:GridColumn FieldName="ProductID" Header="Product" Width="100">
                    <dxg:GridColumn.EditSettings>
                        <dxe:ComboBoxEditSettings AutoComplete="True" ImmediatePopup="True" ValueMember="ProductID" DisplayMember="ProductName" ItemsSource="{Binding Path=Products, Source={StaticResource NWindDataLoader}}" />
                    </dxg:GridColumn.EditSettings>
                </dxg:GridColumn>
                <dxg:GridColumn x:Name="colUnitPrice" FieldName="UnitPrice" Width="100" Validate="colUnitPrice_Validate">
                    <dxg:GridColumn.EditSettings>
                        <dxe:TextEditSettings MaskType="Numeric" MaskUseAsDisplayFormat="True" Mask="c" MaskCulture="en-US" />
                    </dxg:GridColumn.EditSettings>
                </dxg:GridColumn>
                <dxg:GridColumn x:Name="colQuantityPrice" FieldName="Quantity" Width="100" Validate="colQuantity_Validate">
                    <dxg:GridColumn.EditSettings>
                        <dxe:SpinEditSettings MaskType="Numeric" Mask="d" />
                    </dxg:GridColumn.EditSettings>
                </dxg:GridColumn>
                <dxg:GridColumn x:Name="colDiscount" FieldName="Discount" Width="100" Validate="colDiscount_Validate">
                    <dxg:GridColumn.EditSettings>
                        <dxe:SpinEditSettings MaskType="Numeric" MaskUseAsDisplayFormat="True" Mask="p0" Increment="0.01" />
                    </dxg:GridColumn.EditSettings>
                </dxg:GridColumn>
                <dxg:GridColumn FieldName="SubTotal" Width="100" UnboundType="Decimal" AllowEditing="False" UnboundExpression="([UnitPrice] * [Quantity]) * (1 - [Discount])">
                    <dxg:GridColumn.EditSettings>
                        <dxe:TextEditSettings MaskType="Numeric" MaskUseAsDisplayFormat="True" Mask="c" MaskCulture="en-US" />
                    </dxg:GridColumn.EditSettings>
                </dxg:GridColumn>
            </dxg:GridControl.Columns>
            <dxg:GridControl.GroupSummary>
                <dxg:GridSummaryItem FieldName="From" SummaryType="Count" />
            </dxg:GridControl.GroupSummary>
            <dxg:GridControl.View>
                <dxg:TableView Name="view" AutoWidth="true" ValidateRow="view_ValidateRow" CellValueChanged="view_CellUpdated" RowCanceled="view_RowCanceled" />
            </dxg:GridControl.View>
        </dxg:GridControl>
    </dxdb:DemoModuleControl>
</local:GridDemoModule>!�using System;
using System.Collections.Generic;
using DevExpress.Xpf.Grid;
using System.Globalization;
using GridDemo;
using DevExpress.Xpf.DemoBase;
using System.Data;
using System.Windows.Controls;

namespace GridDemo {
    [CodeFile("ModuleResources/ValidationClasses.(cs)")]
    public partial class Validation : GridDemoModule {
        DataView dataView;
        public Validation() {
            InitializeComponent();
            dataView = NWindData.OrderDetailsNew;
            grid.ItemsSource = dataView;
            unitPriceConditionListBox.EditValueChanged += new DevExpress.Xpf.Editors.EditValueChangedEventHandler(validationComboBox_SelectionChanged);
            quantityConditionListBox.EditValueChanged += new DevExpress.Xpf.Editors.EditValueChangedEventHandler(validationComboBox_SelectionChanged);
            discountConditionListBox.EditValueChanged += new DevExpress.Xpf.Editors.EditValueChangedEventHandler(validationComboBox_SelectionChanged);
            UpdateErrors();
        }
        decimal GetSubTotal(DataRowView row) {
            object price = row["UnitPrice"];
            object quantity = row["Quantity"];
            object discount = row["Discount"];
            if(price != null && quantity != null && discount != null) {
                return Convert.ToDecimal(price) * Convert.ToInt32(quantity) * (1 - Convert.ToDecimal(discount));
            }
            return 0;
        }
        private void view_ValidateRow(object sender, GridRowValidationEventArgs e) {
            UpdateRowErrors(GetRow((DataRowView)e.Row));
            decimal subTotal = GetSubTotal((DataRowView)e.Row);
            if(subTotal < 0)
                e.SetError("The SubTotal value must be greater than or equal to 0.");
        }
        private void colUnitPrice_Validate(object sender, GridCellValidationEventArgs e) {
            DoValidation(e, (ValidationRule)unitPriceConditionListBox.SelectedItem);
        }
        private void colQuantity_Validate(object sender, GridCellValidationEventArgs e) {
            DoValidation(e, (ValidationRule)quantityConditionListBox.SelectedItem);
        }
        private void colDiscount_Validate(object sender, GridCellValidationEventArgs e) {
            DoValidation(e, (ValidationRule)discountConditionListBox.SelectedItem);
        }
        void DoValidation(GridCellValidationEventArgs e, ValidationRule rule) {
            ValidationResult result = rule.Validate(e.Value, e.Culture);
            if(!result.IsValid) {
                e.SetError(result.ErrorContent);
            }
        }

        private void validationComboBox_SelectionChanged(object sender, DevExpress.Xpf.Editors.EditValueChangedEventArgs e) {
            UpdateErrors();
        }
        void UpdateErrors() {
            grid.BeginDataUpdate();
            try {
                foreach(DataRow row in dataView.Table.Rows) {
                    row.BeginEdit();
                    UpdateRowErrors(row);
                    row.EndEdit();
                }
            } finally {
                grid.EndDataUpdate();
            }
        }
        void UpdateRowErrors(DataRow row) {
            UpdateColumnError(row, "UnitPrice", (ValidationRule)unitPriceConditionListBox.SelectedItem);
            UpdateColumnError(row, "Quantity", (ValidationRule)quantityConditionListBox.SelectedItem);
            UpdateColumnError(row, "Discount", (ValidationRule)discountConditionListBox.SelectedItem);
        }
        void UpdateColumnError(DataRow row, string columnName, ValidationRule rule) {
            object value = row[columnName];
            ValidationResult result = rule.Validate(value, CultureInfo.CurrentCulture);
            if(result.IsValid)
                row.SetColumnError(columnName, string.Empty);
            else
                row.SetColumnError(columnName, result.ErrorContent.ToString());
        }
        void view_CellUpdated(object sender, CellValueChangedEventArgs e) {
            UpdateRowErrors(GetRow((DataRowView)e.Row));
        }
        void view_RowCanceled(object sender, RowEventArgs e) {
            UpdateRowErrors(GetRow((DataRowView)e.Row));
        }
        DataRow GetRow(DataRowView rowView) {
            return rowView.Row;
        }
    }
}!~MSBAML```����D@GridDemo, Version=13.1.4.0, Culture=neutral, PublicKeyToken=null#clr-namespace:GridDemoGridDemoOKmscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e0891&clr-namespace:System;assembly=mscorlibSystemeaDevExpress.Xpf.DemoBase.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a�Xclr-namespace:DevExpress.Xpf.DemoBase.DataClasses;assembly=DevExpress.Xpf.DemoBase.v13.1#DevExpress.Xpf.DemoBase.DataClasses'!GridDemo.VerticalScrollingOptions\XPresentationFramework, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35RNWindowsBase, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35WSPresentationCore, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35D9http://schemas.microsoft.com/winfx/2006/xaml/presentationa]DevExpress.Xpf.Core.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a;dx2http://schemas.devexpress.com/winfx/2008/xaml/corefbDevExpress.Xpf.Grid.v13.1.Core, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49aa]DevExpress.Xpf.Grid.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49al	hDevExpress.Xpf.Grid.v13.1.Extensions, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a@dxg2http://schemas.devexpress.com/winfx/2008/xaml/grid	?dxe5http://schemas.devexpress.com/winfx/2008/xaml/editors"localclr-namespace:GridDemo0sys&clr-namespace:System;assembly=mscorlibAdxdb6http://schemas.devexpress.com/winfx/2008/xaml/demobaseR
NSystem.Xaml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089:x,http://schemas.microsoft.com/winfx/2006/xaml
Jmc;http://schemas.openxmlformats.org/markup-compatibility/2006
@d2http://schemas.microsoft.com/expression/blend/2008
jdxdbdXclr-namespace:DevExpress.Xpf.DemoBase.DataClasses;assembly=DevExpress.Xpf.DemoBase.v13.1
c_System.Windows.Interactivity, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35Bi:http://schemas.microsoft.com/expression/2010/interactivity�	Resources
�MergedDictionaries
�Source-'DevExpress.Xpf.DemoBase.NWindDataLoader NWindDataLoader2,DevExpress.Xpf.DemoBase.DataClasses.CarsData CarsData0*GridDemo.VerticalScrollingOptionsViewModel 
	ViewModelControlDefinitions.(GridDemo.GridControlDefinitionCollection$GridDemo.GridControlDefinitionName
DataSource�Path
�SourceColumns#GridDemo.GridColumnDefinition		FieldName
Width
FixedWidthEditSettings60DevExpress.Xpf.Editors.Settings.TextEditSettings60DevExpress.Xpf.Editors.Settings.BaseEditSettings

DisplayFormatMaskType
Header7	1DevExpress.Xpf.Editors.Settings.ImageEditSettings:
4DevExpress.Xpf.Editors.Settings.ComboBoxEditSettings<6DevExpress.Xpf.Editors.Settings.LookUpEditSettingsBaseValueMember
DisplayMemberItemsSourceMaskUseAsDisplayFormatMaskMaskCulture60DevExpress.Xpf.Editors.Settings.SpinEditSettings��$PJ/GridDemo;component/ModuleResources/VerticalScrollingOptionsTemplates.xaml?�%l&	&	&	
7777$	Customers���$	Customers�8$	
CustomerID��$
70Q�.$	CompanyName��$
	Country��$	Region��$
	City��$	Phone��$	
100Q�.$	ContactName��$
Cars���$
DataSource�8$	ID��$		Trademark��$	Model��$	Category��$	Price��$
$0��$
Numeric=�$	ImageSource��$Image��$	
200Q�.	$Orders���$OrderDetails�8$
	OrderID��$ID��$
50Q�$		ProductID��$
Product��
$	ProductID��$ProductName���*
Products+8$		UnitPrice��$
Numeric=�.$c��$en-US��$	Quantity��$	Discount��$
Numeric=�.$p0��.�/
)DevExpress.Xpf.DemoBase.DemoModuleControl
(
!SupressGroupFramePaddingInOptions.
OptionsContent����Orientation$Vertical=�$�0,0,0,12q�.+�& DevExpress.Xpf.Editors.CheckEdit-Name$!allowCascadeUpdateCheckEdit��$
�0,0,0,4q�Content)#DevExpress.Xpf.Core.ObjectConverter$Allow Cascade Update	IsChecked�$View.AllowCascadeUpdate��Mode$TwoWay=�-$%allowPerPixelScrollingCheckEdit��$�0,0,0,12q�$Allow Per Pixel Scrolling�$!View.AllowPerPixelScrolling�$TwoWay=���$�0,0,0,12q�$
�Stretch=�{��*View.AllowPerPixelScrolling+.�+%DevExpress.Xpf.DemoBase.SliderControl-Name$durationSlider��$
�4,0,0,4q�
Header$Scroll Animation Duration��
UOM$
(ms)�� Minimum$ 0Q�!Maximum$
!2000Q�"	SmallStep$"1Q�#	LargeStep$#1Q�$
ValueMinWidth$$15Q�%	EditValue%�$"View.ScrollAnimationDuration�$TwoWay=�$DevExpress.Xpf.Core.GroupFrame$��Scroll Animation Mode��$�0,0,0,12q�{��*View.AllowPerPixelScrolling+.�("DevExpress.Xpf.Editors.ListBoxEdit-&Name$ &animationEffectListBoxEdit��%DevExpress.Xpf.Editors.BaseEdit'
ShowBorder'.$�0,0,30,0q��Z�(	EditValue(�$View.ScrollAnimationMode�$TwoWay=�)�UpdateSourceTrigger$)PropertyChanged=�*
StyleSettings*:4DevExpress.Xpf.Editors.RadioListBoxEditStyleSettings+Items+,&DevExpress.Xpf.Grid.CustomComboBoxItem,DisplayValue$,Easy Out��-	EditValue--'DevExpress.Xpf.Grid.ScrollAnimationModeEaseOut=�$,Linear��-
Linear=�$,Easy In/Out��-
	EaseInOut=�$��Data Source��.�-$&gridDataSourceListBoxEdit��'..
DisplayMember$
.Name��/ItemsSource/�*ControlDefinitions+#[0SelectedItem0�*SelectedDefinition+#[$TwoWay=��Z�*1
Content.1%DevExpress.Xpf.Grid.GridControl-$
�grid��)#DevExpress.Xpf.Grid.DataControlBase2AutoGenerateColumns$
2KeepOld=� ColumnTemplate3ColumnGeneratorTemplate#3[4ItemsSource4�*SelectedDefinition.DataSource+#[5
ColumnsSource5�*SelectedDefinition.Columns+#[.(System.Windows.Interactivity.Interaction6Triggers6/)System.Windows.Interactivity.EventTrigger7	EventName$7ItemsSourceChanged��.(System.Windows.Interactivity.TriggerBase8Actions.860System.Windows.Interactivity.InvokeCommandAction9Command9�$View.Commands.ClearFilter�:�ElementName$
:grid��;View;#DevExpress.Xpf.Grid.TableView-<Name$<gridView��=AllowCascadeUpdate=.>AllowPerPixelScrolling>.?	AutoWidth?.& DevExpress.Xpf.Grid.DataViewBase@AllowEditing@.!�)<local:GridDemoModule x:Class="GridDemo.VerticalScrollingOptions"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:dx="http://schemas.devexpress.com/winfx/2008/xaml/core"
    xmlns:dxg="http://schemas.devexpress.com/winfx/2008/xaml/grid"
    xmlns:dxe="http://schemas.devexpress.com/winfx/2008/xaml/editors"
    xmlns:local="clr-namespace:GridDemo"
    xmlns:sys="clr-namespace:System;assembly=mscorlib"
    xmlns:dxdb="http://schemas.devexpress.com/winfx/2008/xaml/demobase"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:dxdbd="clr-namespace:DevExpress.Xpf.DemoBase.DataClasses;assembly=DevExpress.Xpf.DemoBase.v13.1"
    xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity"
    mc:Ignorable="d"
    d:DesignHeight="300" d:DesignWidth="300">

    <local:GridDemoModule.Resources>
        <ResourceDictionary>
            <ResourceDictionary.MergedDictionaries>
                <ResourceDictionary Source="/GridDemo;component/ModuleResources/VerticalScrollingOptionsTemplates.xaml" />
            </ResourceDictionary.MergedDictionaries>
            <dxdb:NWindDataLoader x:Key="NWindDataLoader" />
            <dxdbd:CarsData x:Key="CarsData" />

            <local:VerticalScrollingOptionsViewModel x:Key="ViewModel">
                <local:VerticalScrollingOptionsViewModel.ControlDefinitions>
                    <local:GridControlDefinitionCollection>
                        <local:GridControlDefinition Name="Customers" DataSource="{Binding Path=Customers, Source={StaticResource NWindDataLoader}}">
                            <local:GridControlDefinition.Columns>
                                <local:GridColumnDefinition FieldName="CustomerID" Width="70" FixedWidth="True" />
                                <local:GridColumnDefinition FieldName="CompanyName" />
                                <local:GridColumnDefinition FieldName="Country" />
                                <local:GridColumnDefinition FieldName="Region" />
                                <local:GridColumnDefinition FieldName="City" />
                                <local:GridColumnDefinition FieldName="Phone" Width="100" FixedWidth="True" />
                                <local:GridColumnDefinition FieldName="ContactName" />
                            </local:GridControlDefinition.Columns>
                        </local:GridControlDefinition>
                        <local:GridControlDefinition Name="Cars" DataSource="{Binding Path=DataSource, Source={StaticResource CarsData}}">
                            <local:GridControlDefinition.Columns>
                                <local:GridColumnDefinition FieldName="ID" />
                                <local:GridColumnDefinition FieldName="Trademark" />
                                <local:GridColumnDefinition FieldName="Model" />
                                <local:GridColumnDefinition FieldName="Category" />
                                <local:GridColumnDefinition FieldName="Price">
                                    <local:GridColumnDefinition.EditSettings>
                                        <dxe:TextEditSettings DisplayFormat="$0" MaskType="Numeric" />
                                    </local:GridColumnDefinition.EditSettings>
                                </local:GridColumnDefinition>
                                <local:GridColumnDefinition FieldName="ImageSource" Header="Image" Width="200" FixedWidth="True">
                                    <local:GridColumnDefinition.EditSettings>
                                        <dxe:ImageEditSettings />
                                    </local:GridColumnDefinition.EditSettings>
                                </local:GridColumnDefinition>
                            </local:GridControlDefinition.Columns>
                        </local:GridControlDefinition>
                        <local:GridControlDefinition Name="Orders" DataSource="{Binding Path=OrderDetails, Source={StaticResource NWindDataLoader}}">
                            <local:GridControlDefinition.Columns>
                                <local:GridColumnDefinition FieldName="OrderID" Header="ID" Width="50" />
                                <local:GridColumnDefinition FieldName="ProductID" Header="Product">
                                    <local:GridColumnDefinition.EditSettings>
                                        <dxe:ComboBoxEditSettings ValueMember="ProductID" DisplayMember="ProductName" ItemsSource="{Binding Products, Source={StaticResource NWindDataLoader}}" />
                                    </local:GridColumnDefinition.EditSettings>
                                </local:GridColumnDefinition>
                                <local:GridColumnDefinition FieldName="UnitPrice">
                                    <local:GridColumnDefinition.EditSettings>
                                        <dxe:TextEditSettings MaskType="Numeric" MaskUseAsDisplayFormat="True" Mask="c" MaskCulture="en-US" />
                                    </local:GridColumnDefinition.EditSettings>
                                </local:GridColumnDefinition>
                                <local:GridColumnDefinition FieldName="Quantity" />
                                <local:GridColumnDefinition FieldName="Discount">
                                    <local:GridColumnDefinition.EditSettings>
                                        <dxe:SpinEditSettings MaskType="Numeric" MaskUseAsDisplayFormat="True" Mask="p0" />
                                    </local:GridColumnDefinition.EditSettings>
                                </local:GridColumnDefinition>
                            </local:GridControlDefinition.Columns>
                        </local:GridControlDefinition>
                    </local:GridControlDefinitionCollection>
                </local:VerticalScrollingOptionsViewModel.ControlDefinitions>
            </local:VerticalScrollingOptionsViewModel>
        </ResourceDictionary>
    </local:GridDemoModule.Resources>
    <dxdb:DemoModuleControl SupressGroupFramePaddingInOptions="False">
        <dxdb:DemoModuleControl.OptionsContent>
            <StackPanel Orientation="Vertical" Margin="0,0,0,12">
                <dxe:CheckEdit x:Name="allowCascadeUpdateCheckEdit" Margin="0,0,0,4" IsChecked="{Binding Path=View.AllowCascadeUpdate, Mode=TwoWay}" Content="Allow Cascade Update" />
                <dxe:CheckEdit x:Name="allowPerPixelScrollingCheckEdit" Margin="0,0,0,12" IsChecked="{Binding Path=View.AllowPerPixelScrolling, Mode=TwoWay}" Content="Allow Per Pixel Scrolling" />
                <ContentControl IsEnabled="{Binding View.AllowPerPixelScrolling}" Margin="0,0,0,12" HorizontalContentAlignment="Stretch">
                    <dxdb:SliderControl x:Name="durationSlider" Margin="4,0,0,4" Header="Scroll Animation Duration" UOM="(ms)" Minimum="0" Maximum="2000" EditValue="{Binding Path=View.ScrollAnimationDuration, Mode=TwoWay}" SmallStep="1" LargeStep="1" ValueMinWidth="15" />
                </ContentControl>
                <dx:GroupFrame Header="Scroll Animation Mode" Margin="0,0,0,12" IsEnabled="{Binding View.AllowPerPixelScrolling}">
                    <dxe:ListBoxEdit Background="{x:Null}" ShowBorder="False" x:Name="animationEffectListBoxEdit" Margin="0,0,30,0" EditValue="{Binding Path=View.ScrollAnimationMode, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}">
                        <dxe:ListBoxEdit.StyleSettings>
                            <dxe:RadioListBoxEditStyleSettings />
                        </dxe:ListBoxEdit.StyleSettings>
                        <dxe:ListBoxEdit.Items>
                            <dxg:CustomComboBoxItem DisplayValue="Easy Out">
                                <dxg:CustomComboBoxItem.EditValue>
                                    <dxg:ScrollAnimationMode>EaseOut</dxg:ScrollAnimationMode>
                                </dxg:CustomComboBoxItem.EditValue>
                            </dxg:CustomComboBoxItem>
                            <dxg:CustomComboBoxItem DisplayValue="Linear">
                                <dxg:CustomComboBoxItem.EditValue>
                                    <dxg:ScrollAnimationMode>Linear</dxg:ScrollAnimationMode>
                                </dxg:CustomComboBoxItem.EditValue>
                            </dxg:CustomComboBoxItem>
                            <dxg:CustomComboBoxItem DisplayValue="Easy In/Out">
                                <dxg:CustomComboBoxItem.EditValue>
                                    <dxg:ScrollAnimationMode>EaseInOut</dxg:ScrollAnimationMode>
                                </dxg:CustomComboBoxItem.EditValue>
                            </dxg:CustomComboBoxItem>
                        </dxe:ListBoxEdit.Items>
                    </dxe:ListBoxEdit>
                </dx:GroupFrame>
                <dx:GroupFrame Header="Data Source">
                    <dxe:ListBoxEdit x:Name="gridDataSourceListBoxEdit" ItemsSource="{Binding ControlDefinitions, Source={StaticResource ViewModel}}" SelectedItem="{Binding SelectedDefinition, Source={StaticResource ViewModel}, Mode=TwoWay}" ShowBorder="False" Background="{x:Null}" DisplayMember="Name">
                        <dxe:ListBoxEdit.StyleSettings>
                            <dxe:RadioListBoxEditStyleSettings />
                        </dxe:ListBoxEdit.StyleSettings>
                    </dxe:ListBoxEdit>
                </dx:GroupFrame>
            </StackPanel>
        </dxdb:DemoModuleControl.OptionsContent>
        <dxg:GridControl Name="grid" AutoGenerateColumns="KeepOld" ItemsSource="{Binding SelectedDefinition.DataSource, Source={StaticResource ViewModel}}"
                         ColumnsSource="{Binding SelectedDefinition.Columns, Source={StaticResource ViewModel}}" ColumnGeneratorTemplate="{StaticResource ColumnTemplate}">
            <i:Interaction.Triggers>
                <i:EventTrigger EventName="ItemsSourceChanged">
                    <i:InvokeCommandAction Command="{Binding Path=View.Commands.ClearFilter, ElementName=grid}" />
                </i:EventTrigger>
            </i:Interaction.Triggers>
            <dxg:GridControl.View>
                <dxg:TableView x:Name="gridView" AllowCascadeUpdate="True" AllowPerPixelScrolling="True" AutoWidth="True" AllowEditing="False" />
            </dxg:GridControl.View>
        </dxg:GridControl>
    </dxdb:DemoModuleControl>
</local:GridDemoModule>!�using System;
using System.Collections.Generic;
using System.Linq;
using DevExpress.Xpf.DemoBase;

namespace GridDemo {
    [CodeFile("ModuleResources/VerticalScrollingOptionsViewModel.(cs)")]
    [CodeFile("ModuleResources/VerticalScrollingOptionsTemplates(.SL).xaml")]
    public partial class VerticalScrollingOptions : GridDemoModule {
        public VerticalScrollingOptions() {
            InitializeComponent();
        }
    }
}!EMSBAML```����D@GridDemo, Version=13.1.4.0, Culture=neutral, PublicKeyToken=null#clr-namespace:GridDemoGridDemo=#clr-namespace:GridDemo.WcfSCServiceGridDemo.WcfSCServiceOKmscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e0891&clr-namespace:System;assembly=mscorlibSystem!GridDemo.WCFInstantFeedback\XPresentationFramework, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35RNWindowsBase, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35WSPresentationCore, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35D9http://schemas.microsoft.com/winfx/2006/xaml/presentationRNSystem.Xaml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089:x,http://schemas.microsoft.com/winfx/2006/xamla]DevExpress.Xpf.Core.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a;dx2http://schemas.devexpress.com/winfx/2008/xaml/corefbDevExpress.Xpf.Grid.v13.1.Core, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49aa]DevExpress.Xpf.Grid.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49al	hDevExpress.Xpf.Grid.v13.1.Extensions, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a@dxg2http://schemas.devexpress.com/winfx/2008/xaml/grid	?dxe5http://schemas.devexpress.com/winfx/2008/xaml/editorse
aDevExpress.Xpf.DemoBase.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49aAdxdb6http://schemas.devexpress.com/winfx/2008/xaml/demobase
"localclr-namespace:GridDemo
/wcfsc#clr-namespace:GridDemo.WcfSCService
Dmc;http://schemas.openxmlformats.org/markup-compatibility/2006
0sys&clr-namespace:System;assembly=mscorlib
:d2http://schemas.microsoft.com/expression/blend/2008
c_System.Windows.Interactivity, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35Bi:http://schemas.microsoft.com/expression/2010/interactivityGridDemo.GridDemoModule)"UseGridControlWrapperAsDataContext.�	Resources
�MergedDictionaries
�Source��$JD/GridDemo;component/ModuleResources/WcfInstantFeedbackTemplates.xaml?�%.�/
)DevExpress.Xpf.DemoBase.DemoModuleControl(!SupressGroupFramePaddingInOptions.OptionsContent��$	�165��$	�230��.+�("GridDemo.InternetConnectionControl$DevExpress.Xpf.Core.GroupFrame$��Filter Criteria��$�0,0,0,12q�.�)#DevExpress.Xpf.Editors.ComboBoxEdit-Name$filter��+%DevExpress.Xpf.Editors.LookUpEditBase
DisplayMember$DisplayValue��ValueMember$	EditValue��'!DevExpress.Xpf.Editors.ButtonEdit	IsTextEditable	.%DevExpress.Xpf.Editors.BaseEdit 
ShowNullTextForEmptyValue
.	EditValue�*GridControl.FilterString+�Mode$TwoWay=�
�UpdateSourceTrigger$
PropertyChanged=�Items.,	&DevExpress.Xpf.Grid.CustomComboBoxItem		DisplayValue$	All��		EditValue$��	$
.NET��$[TechnologyName] = '.NET'��	$Urgent��$[Urgent] = True��&
 DevExpress.Xpf.Editors.CheckEdit
-
Name$#UseExtendedDataQueryCheckEdit��
Content)#DevExpress.Xpf.Core.ObjectConverter$Extend Data Query
	IsChecked�*0.GridControl.DataContext.IsUseExtendedDataQuery+$TwoWay=���$
��Wrap=�$
�0,4,0,0q���When this option is enabled, the grid uses an additional WCF Service method to speed up the performance of data management operations (grouping, sorting, filtering, etc).A;DevExpress.Xpf.Core.ServerMode.WcfInstantFeedbackDataSource-$�wcfInstantSource��
KeyExpression$	Oid��DataServiceContext�*&$GridControl.DataContext.WcfSCService+Query��Path$71GridControl.DataContext.WcfSCService.SCIssuesDemo�UseExtendedDataQuery�*0.GridControl.DataContext.IsUseExtendedDataQuery+Content.%
DevExpress.Xpf.Grid.GridControl
-$
�grid��)#DevExpress.Xpf.Grid.DataControlBase
SelectionMode$	Row=�ItemsSource��ElementName$wcfInstantSource��$
Data�
Columns$DevExpress.Xpf.Grid.GridColumn-Name$colId��$DevExpress.Xpf.Grid.ColumnBase	FieldName$ID��$DevExpress.Xpf.Grid.BaseColumn Width$ 70��!
FixedWidth!."
AllowGrouping]YDevExpress.Data.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a5/DevExpress.Utils.Design.DefaultBooleanConverter$"False#AllowColumnFiltering$#False$
AllowResizing$$False 
idTemplate%CellTemplate#%[-$
colSubject��$
Subject��$	 200��$"False$#False-$colTechnologyName��$TechnologyName��$ 60��
&Header$&
Technology-$colProductName��$ProductName��$	 120��$
&Product#�*	IsChecked+ $ BooleanToDefaultBooleanConverter'�	Converter#'[$#UseExtendedDataQueryCheckEdit��"�*	IsChecked+#'[$#UseExtendedDataQueryCheckEdit��-	$	colStatus��$Status��!.$ 60��$$False statusTemplate#%[-
$colCreatedOn��$	CreatedOn��$"False$#False$$False$ 90��!.-$	colUrgent��$Urgent��!.$ 70��$$False(
GroupSummary()#DevExpress.Xpf.Grid.GridSummaryItem)#DevExpress.Xpf.Grid.SummaryItemBase)	FieldName$)TechnologyName��*SummaryType$*Count=�+
TotalSummary+$*Count=�,	Alignment$,Right=�-
View-#DevExpress.Xpf.Grid.TableView-.Name$
.view��& DevExpress.Xpf.Grid.DataViewBase/ShowFixedTotalSummary/.0WaitIndicatorType$0Panel=�1ShowAutoFilterRow1.2	AutoWidth2.3NavigationStyle$	3Row=�4AllowEditing4..(System.Windows.Interactivity.Interaction5Triggers5/)System.Windows.Interactivity.EventTrigger6	EventName$6BeforeModuleDisappear��.(System.Windows.Interactivity.TriggerBase7Actions.760System.Windows.Interactivity.InvokeCommandAction8Command8�$wcfInstantSource��$DisposeCommand�!<local:GridDemoModule x:Class="GridDemo.WCFInstantFeedback"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:dx="http://schemas.devexpress.com/winfx/2008/xaml/core"
    xmlns:dxg="http://schemas.devexpress.com/winfx/2008/xaml/grid"
    xmlns:dxe="http://schemas.devexpress.com/winfx/2008/xaml/editors"
    xmlns:dxdb="http://schemas.devexpress.com/winfx/2008/xaml/demobase"
    xmlns:local="clr-namespace:GridDemo"
    xmlns:wcfsc="clr-namespace:GridDemo.WcfSCService"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    xmlns:sys="clr-namespace:System;assembly=mscorlib"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:i="http://schemas.microsoft.com/expression/2010/interactivity"
    mc:Ignorable="d" d:DesignHeight="400" d:DesignWidth="800" UseGridControlWrapperAsDataContext="True">

    <local:GridDemoModule.Resources>
        <ResourceDictionary>
            <ResourceDictionary.MergedDictionaries>
                <ResourceDictionary Source="/GridDemo;component/ModuleResources/WcfInstantFeedbackTemplates.xaml" />
            </ResourceDictionary.MergedDictionaries>
        </ResourceDictionary>
    </local:GridDemoModule.Resources>
    <dxdb:DemoModuleControl SupressGroupFramePaddingInOptions="False">
        <dxdb:DemoModuleControl.OptionsContent>
            <StackPanel MinWidth="165" MaxWidth="230">
                <local:InternetConnectionControl />
                <dx:GroupFrame Header="Filter Criteria" Margin="0,0,0,12">
                    <dxe:ComboBoxEdit x:Name="filter" DisplayMember="DisplayValue" ValueMember="EditValue" IsTextEditable="False" EditValue="{Binding GridControl.FilterString, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" ShowNullTextForEmptyValue="False">
                        <dxg:CustomComboBoxItem DisplayValue="All" EditValue=""/>
                        <dxg:CustomComboBoxItem DisplayValue=".NET" EditValue="[TechnologyName] = '.NET'" />
                        <dxg:CustomComboBoxItem DisplayValue="Urgent" EditValue="[Urgent] = True"/>
                    </dxe:ComboBoxEdit>
                </dx:GroupFrame>
                <dxe:CheckEdit x:Name="UseExtendedDataQueryCheckEdit" Content="Extend Data Query" IsChecked="{Binding GridControl.DataContext.IsUseExtendedDataQuery, Mode=TwoWay}"/>
                <TextBlock TextWrapping="Wrap" Margin="0,4,0,0">When this option is enabled, the grid uses an additional WCF Service method to speed up the performance of data management operations (grouping, sorting, filtering, etc).</TextBlock>
                <dx:WcfInstantFeedbackDataSource Name="wcfInstantSource" KeyExpression="Oid" DataServiceContext="{Binding GridControl.DataContext.WcfSCService}" Query="{Binding Path=GridControl.DataContext.WcfSCService.SCIssuesDemo}" UseExtendedDataQuery="{Binding GridControl.DataContext.IsUseExtendedDataQuery}" />
            </StackPanel>
        </dxdb:DemoModuleControl.OptionsContent>
        <dxg:GridControl Name="grid" ItemsSource="{Binding ElementName=wcfInstantSource, Path=Data}" SelectionMode="Row">
            <dxg:GridControl.Columns>
                <dxg:GridColumn x:Name="colId" FieldName="ID" Width="70" FixedWidth="True" AllowGrouping="False" AllowColumnFiltering="False"
                                AllowResizing="False" CellTemplate="{StaticResource idTemplate}" />
                <dxg:GridColumn x:Name="colSubject" FieldName="Subject" Width="200" AllowGrouping="False" AllowColumnFiltering="False" />
                <dxg:GridColumn x:Name="colTechnologyName" FieldName="TechnologyName" Width="60" Header="Technology" />
                <dxg:GridColumn x:Name="colProductName" FieldName="ProductName" Width="120" Header="Product" AllowColumnFiltering="{Binding IsChecked, Converter={StaticResource BooleanToDefaultBooleanConverter}, ElementName=UseExtendedDataQueryCheckEdit}" AllowGrouping="{Binding IsChecked, Converter={StaticResource BooleanToDefaultBooleanConverter}, ElementName=UseExtendedDataQueryCheckEdit}"/>
                <dxg:GridColumn x:Name="colStatus" FieldName="Status" FixedWidth="True" Width="60" AllowResizing="False" CellTemplate="{StaticResource statusTemplate}" />
                <dxg:GridColumn x:Name="colCreatedOn" FieldName="CreatedOn" AllowGrouping="False" AllowColumnFiltering="False" AllowResizing="False" Width="90" FixedWidth="True" />
                <dxg:GridColumn x:Name="colUrgent" FieldName="Urgent" FixedWidth="True" Width="70" AllowResizing="False"/>
            </dxg:GridControl.Columns>
            <dxg:GridControl.GroupSummary>
                <dxg:GridSummaryItem FieldName="TechnologyName" SummaryType="Count" />
            </dxg:GridControl.GroupSummary>
            <dxg:GridControl.TotalSummary>
                <dxg:GridSummaryItem SummaryType="Count" Alignment="Right"/>
            </dxg:GridControl.TotalSummary>
            <dxg:GridControl.View>
                <dxg:TableView x:Name="view" ShowFixedTotalSummary="True" WaitIndicatorType="Panel"  ShowAutoFilterRow="True"
                               AutoWidth="True" NavigationStyle="Row" AllowEditing="False"/>
            </dxg:GridControl.View>
        </dxg:GridControl>
        <i:Interaction.Triggers>
            <i:EventTrigger EventName="BeforeModuleDisappear">
                <i:InvokeCommandAction Command="{Binding ElementName=wcfInstantSource, Path=DisposeCommand}" />
            </i:EventTrigger>
        </i:Interaction.Triggers>
    </dxdb:DemoModuleControl>
</local:GridDemoModule>!:using System;
using System.Diagnostics;
using DevExpress.Xpf.DemoBase.Helpers;
using System.Windows.Data;
using DevExpress.Xpf.DemoBase;

namespace GridDemo {
    [CodeFile("ModuleResources/WcfInstantFeedbackViewModel.(cs)")]
    [CodeFile("ModuleResources/WcfInstantFeedbackTemplates(.SL).xaml")]
    [CodeFile("ModuleResources/HyperLinkAttachedBehavior.(cs)")]
    [CodeFile("Controls/Converters.(cs)")]
    public partial class WCFInstantFeedback : GridDemoModule {
        public WCFInstantFeedback() {
            InitializeComponent();
            WCFInstantFeedbackViewModel viewModel = new WCFInstantFeedbackViewModel();
            DataContext = viewModel;
            viewModel.PropertyChanged += viewModel_PropertyChanged;
        }

        void viewModel_PropertyChanged(object sender, System.ComponentModel.PropertyChangedEventArgs e) {
            if(!(sender as WCFInstantFeedbackViewModel).IsUseExtendedDataQuery) {
                colProductName.GroupIndex = -1;
                grid.FilterCriteria = null;
            }
        }
    }
}!RMSBAML```����D@GridDemo, Version=13.1.4.0, Culture=neutral, PublicKeyToken=null#clr-namespace:GridDemoGridDemoOKmscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089I2clr-namespace:System.Collections;assembly=mscorlibSystem.Collections1&clr-namespace:System;assembly=mscorlibSystem!GridDemo.XPOInstantFeedback\XPresentationFramework, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35RNWindowsBase, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35WSPresentationCore, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35D9http://schemas.microsoft.com/winfx/2006/xaml/presentationRNSystem.Xaml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089:x,http://schemas.microsoft.com/winfx/2006/xamla]DevExpress.Xpf.Core.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a;dx2http://schemas.devexpress.com/winfx/2008/xaml/corefbDevExpress.Xpf.Grid.v13.1.Core, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49aa]DevExpress.Xpf.Grid.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49al	hDevExpress.Xpf.Grid.v13.1.Extensions, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a@dxg2http://schemas.devexpress.com/winfx/2008/xaml/grid	?dxe5http://schemas.devexpress.com/winfx/2008/xaml/editors"localclr-namespace:GridDemoe
aDevExpress.Xpf.DemoBase.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49aAdxdb6http://schemas.devexpress.com/winfx/2008/xaml/demobase
Dcollections2clr-namespace:System.Collections;assembly=mscorlib
0sys&clr-namespace:System;assembly=mscorlib
Dmc;http://schemas.openxmlformats.org/markup-compatibility/2006
:d2http://schemas.microsoft.com/expression/blend/2008
GridDemo.GridDemoModule)"UseGridControlWrapperAsDataContext.�	Resources
�MergedDictionaries
�Source��$-'/GridDemo;component/Themes/generic.xaml?��$JD/GridDemo;component/ModuleResources/XPOInstantFeedbackTemplates.xaml?�%.�/
)DevExpress.Xpf.DemoBase.DemoModuleControl(!SupressGroupFramePaddingInOptions.OptionsContent��$	�165��$	�230��.+�("GridDemo.InternetConnectionControl$DevExpress.Xpf.Core.GroupFrame$��Filter Criteria��$�0,0,0,12q�.�)#DevExpress.Xpf.Editors.ComboBoxEdit-Name$filter��+%DevExpress.Xpf.Editors.LookUpEditBase
DisplayMember$DisplayValue��ValueMember$	EditValue��'!DevExpress.Xpf.Editors.ButtonEdit	IsTextEditable	.%DevExpress.Xpf.Editors.BaseEdit 
ShowNullTextForEmptyValue
.	EditValue�*GridControl.FilterString+�Mode$TwoWay=�
�UpdateSourceTrigger$
PropertyChanged=�Items.,	&DevExpress.Xpf.Grid.CustomComboBoxItem		DisplayValue$	All��		EditValue$��	$
.NET��$[TechnologyName] = '.NET'��	$Urgent��$[Urgent] = True��$��Wait Indicator Type��$�0,0,0,12q�.�(
"DevExpress.Xpf.Editors.ListBoxEdit
-
Name$waitIndicatorList��
ShowBorder.$�0,0,30,0q��Z�
SelectedItem�*$"GridControl.View.WaitIndicatorType+$
OneTime=�

StyleSettings:4DevExpress.Xpf.Editors.RadioListBoxEditStyleSettings
Items+%DevExpress.Xpf.Grid.WaitIndicatorTypeDefault=�	Panel=�None=���
Custom��$��Animation Style��$
�0,0,0,0q�.�����Orientation$Vertical=�.+�
-$animationStyle��.$�	0,0,30,12q��Z��*#!GridControl.View.RowAnimationKind+$TwoWay=�*
$DevExpress.Xpf.Grid.RowAnimationKind
None=�
Opacity=���$Vertical=�y���Path$'!GridControl.View.RowAnimationKind��	Converter/)DevExpress.Xpf.Core.EnumToObjectConverterDefaultValue$	Collapsed��
Values
��System.Collections.Generic.Dictionary`2[[System.Object, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089],[System.Object, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]],&DevExpress.Xpf.Core.EnumObjectProvider KeyOpacityValue$
Visible��.+�+
%DevExpress.Xpf.DemoBase.SliderControl
Header$Animation Duration��
UOM$
(ms)��$
�0,0,0,0q�Minimum$	100Q�Maximum$
3000Q� 	SmallStep$ 50Q�!	LargeStep$	!100Q�"	EditValue"�$2,GridControl.View.RowOpacityAnimationDuration� DurationToDoubleConverter#[$TwoWay=�#Content.#%DevExpress.Xpf.Grid.GridControl-$
�grid��)#DevExpress.Xpf.Grid.DataControlBase$
SelectionMode$	$Row=�%Columns%$DevExpress.Xpf.Grid.GridColumn-&Name$&colId��$DevExpress.Xpf.Grid.ColumnBase'	FieldName$'Id��$DevExpress.Xpf.Grid.BaseColumn(Width$(70��)
FixedWidth).*
AllowGrouping]YDevExpress.Data.v13.1, Version=13.1.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a5/DevExpress.Utils.Design.DefaultBooleanConverter$*False+AllowColumnFiltering$+False,
AllowResizing$,False 
idTemplate-CellTemplate#-[-$&
colSubject��$
'Subject��$	(300��$*False-$&	colStatus��$'Status��).$(70��$,False statusTemplate#-[-$&colCreatedOn��$'	CreatedOn��.
GroupInterval$.DateYear=�$,False$	(100��).-	$&colHoursActive��$'HoursActive��
/Header)#DevExpress.Xpf.Core.ObjectConverter$/HA).$(55��$,False0
HeaderToolTip$0Hours Active��$*False#1AllowUnboundExpressionEditor1.2UnboundType82DevExpress.Utils.Design.UnboundColumnTypeConverter$
2Integer3UnboundExpression$-3'DateDiffHour([CreatedOn], [ModifiedOn])��-
$&colProductName��$'ProductName��$
/Product4
GroupIndex$41�-$&colTechnologyName��$'TechnologyName��$/
Technology$40�-$&	colUrgent��$'Urgent��).$(70��$,False5GroupSummary5)#DevExpress.Xpf.Grid.GridSummaryItem)#DevExpress.Xpf.Grid.SummaryItemBase6	FieldName$6ProductName��7SummaryType$7Count=�8TotalSummary8$
6Subject��$7Count=�9	Alignment$9Right=�:View:#DevExpress.Xpf.Grid.TableView-
;Name$
;view��& DevExpress.Xpf.Grid.DataViewBase<ShowFixedTotalSummary<.=WaitIndicatorType$=Panel=�>ShowAutoFilterRow>.?	AutoWidth?.@NavigationStyle$	@Row=�AAllowEditingA.!X<local:GridDemoModule x:Class="GridDemo.XPOInstantFeedback"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:dx="http://schemas.devexpress.com/winfx/2008/xaml/core"
    xmlns:dxg="http://schemas.devexpress.com/winfx/2008/xaml/grid"
 xmlns:dxe="http://schemas.devexpress.com/winfx/2008/xaml/editors"
    xmlns:local="clr-namespace:GridDemo"
    xmlns:dxdb="http://schemas.devexpress.com/winfx/2008/xaml/demobase"
    xmlns:collections="clr-namespace:System.Collections;assembly=mscorlib"
    xmlns:sys="clr-namespace:System;assembly=mscorlib"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    mc:Ignorable="d" d:DesignHeight="400" d:DesignWidth="800" UseGridControlWrapperAsDataContext="True">
    <local:GridDemoModule.Resources>
        <ResourceDictionary>
            <ResourceDictionary.MergedDictionaries>
                <ResourceDictionary Source="/GridDemo;component/Themes/generic.xaml" />
                <ResourceDictionary Source="/GridDemo;component/ModuleResources/XPOInstantFeedbackTemplates.xaml" />
            </ResourceDictionary.MergedDictionaries>
        </ResourceDictionary>
    </local:GridDemoModule.Resources>
    <dxdb:DemoModuleControl SupressGroupFramePaddingInOptions="False">
        <dxdb:DemoModuleControl.OptionsContent>
            <StackPanel MinWidth="165" MaxWidth="230">
                <local:InternetConnectionControl />
                <dx:GroupFrame Header="Filter Criteria" Margin="0,0,0,12">
                    <dxe:ComboBoxEdit x:Name="filter" DisplayMember="DisplayValue" ValueMember="EditValue" IsTextEditable="False" EditValue="{Binding GridControl.FilterString, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" ShowNullTextForEmptyValue="False">
                        <dxg:CustomComboBoxItem DisplayValue="All" EditValue=""/>
                        <dxg:CustomComboBoxItem DisplayValue=".NET" EditValue="[TechnologyName] = '.NET'" />
                        <dxg:CustomComboBoxItem DisplayValue="Urgent" EditValue="[Urgent] = True"/>
                    </dxe:ComboBoxEdit>
                </dx:GroupFrame>
                <dx:GroupFrame Header="Wait Indicator Type" Margin="0,0,0,12">
                    <dxe:ListBoxEdit Background="{x:Null}" ShowBorder="False" Margin="0,0,30,0" SelectedItem="{Binding GridControl.View.WaitIndicatorType, Mode=OneTime}" x:Name="waitIndicatorList" >
                        <dxe:ListBoxEdit.StyleSettings>
                            <dxe:RadioListBoxEditStyleSettings/>
                        </dxe:ListBoxEdit.StyleSettings>
                        <dxe:ListBoxEdit.Items>
                            <dxg:WaitIndicatorType>Default</dxg:WaitIndicatorType>
                            <dxg:WaitIndicatorType>Panel</dxg:WaitIndicatorType>
                            <dxg:WaitIndicatorType>None</dxg:WaitIndicatorType>
                            <sys:String>Custom</sys:String>
                        </dxe:ListBoxEdit.Items>
                    </dxe:ListBoxEdit>
                </dx:GroupFrame>

                <dx:GroupFrame Header="Animation Style" Margin="0,0,0,0">
                    <StackPanel Orientation="Vertical">
                        <dxe:ListBoxEdit x:Name="animationStyle" Background="{x:Null}" ShowBorder="False" Margin="0,0,30,12" SelectedItem="{Binding GridControl.View.RowAnimationKind, Mode=TwoWay}">
                            <dxe:ListBoxEdit.StyleSettings>
                                <dxe:RadioListBoxEditStyleSettings/>
                            </dxe:ListBoxEdit.StyleSettings>
                            <dxe:ListBoxEdit.Items>
                                <dxg:RowAnimationKind>None</dxg:RowAnimationKind>
                                <dxg:RowAnimationKind>Opacity</dxg:RowAnimationKind>
                            </dxe:ListBoxEdit.Items>
                        </dxe:ListBoxEdit>
                        <StackPanel Orientation="Vertical">
                            <StackPanel.Visibility>
                                <Binding Path="GridControl.View.RowAnimationKind">
                                    <Binding.Converter>
                                        <dx:EnumToObjectConverter DefaultValue="Collapsed">
                                            <dx:EnumToObjectConverter.Values>
                                                <dx:EnumObjectProvider x:Key="Opacity" Value="Visible"/>
                                            </dx:EnumToObjectConverter.Values>
                                        </dx:EnumToObjectConverter>
                                    </Binding.Converter>
                                </Binding>
                            </StackPanel.Visibility>
                            <dxdb:SliderControl Header="Animation Duration" UOM="(ms)" Margin="0,0,0,0"
                                                EditValue="{Binding Path=GridControl.View.RowOpacityAnimationDuration, Converter={StaticResource DurationToDoubleConverter}, Mode=TwoWay}"
                                                Minimum="100" Maximum="3000" SmallStep="50" LargeStep="100" />
                        </StackPanel>
                    </StackPanel>
                </dx:GroupFrame>

            </StackPanel>
        </dxdb:DemoModuleControl.OptionsContent>
        <dxg:GridControl Name="grid" SelectionMode="Row">
            <dxg:GridControl.Columns>
                <dxg:GridColumn x:Name="colId" FieldName="Id" Width="70" FixedWidth="True" AllowGrouping="False"
                                AllowColumnFiltering="False" AllowResizing="False" CellTemplate="{StaticResource idTemplate}" />
                <dxg:GridColumn x:Name="colSubject" FieldName="Subject" Width="300" AllowGrouping="False" />
                <dxg:GridColumn x:Name="colStatus" FieldName="Status" FixedWidth="True" Width="70" AllowResizing="False" CellTemplate="{StaticResource statusTemplate}" />
                <dxg:GridColumn x:Name="colCreatedOn" FieldName="CreatedOn" GroupInterval="DateYear" AllowResizing="False" Width="100" FixedWidth="True" />
                <dxg:GridColumn x:Name="colHoursActive" FieldName="HoursActive" Header="HA" FixedWidth="True" Width="55" AllowResizing="False" HeaderToolTip="Hours Active"
                                AllowGrouping="False" AllowUnboundExpressionEditor="True" UnboundType="Integer" UnboundExpression="DateDiffHour([CreatedOn], [ModifiedOn])" />
                <dxg:GridColumn x:Name="colProductName" FieldName="ProductName" Header="Product" GroupIndex="1"/>
                <dxg:GridColumn x:Name="colTechnologyName" FieldName="TechnologyName" Header="Technology" GroupIndex="0"/>
                <dxg:GridColumn x:Name="colUrgent" FieldName="Urgent" FixedWidth="True" Width="70" AllowResizing="False"/>
            </dxg:GridControl.Columns>
            <dxg:GridControl.GroupSummary>
                <dxg:GridSummaryItem FieldName="ProductName" SummaryType="Count" />
            </dxg:GridControl.GroupSummary>
            <dxg:GridControl.TotalSummary>
                <dxg:GridSummaryItem FieldName="Subject" SummaryType="Count" Alignment="Right"/>
            </dxg:GridControl.TotalSummary>
            <dxg:GridControl.View>
                <dxg:TableView x:Name="view" ShowFixedTotalSummary="True" WaitIndicatorType="Panel"  ShowAutoFilterRow="True"
                               AutoWidth="True" NavigationStyle="Row" AllowEditing="False"/>
            </dxg:GridControl.View>
        </dxg:GridControl>
    </dxdb:DemoModuleControl>
</local:GridDemoModule>!�using System;
using System.Diagnostics;
using System.Reflection;
using System.Windows;
using System.Windows.Data;
using System.Windows.Input;
using DevExpress.Xpf.Grid;
using DevExpress.Xpo;
using DevExpress.Xpf.DemoBase;

namespace GridDemo {
    [CodeFile("ModuleResources/XPOInstantFeedbackTemplates(.SL).xaml")]
    [CodeFile("ModuleResources/XPOInstantFeedbackClasses.(cs)")]
    [CodeFile("ModuleResources/HyperLinkAttachedBehavior.(cs)")]
    [CodeFile("Controls/Converters.(cs)")]
    public partial class XPOInstantFeedback : GridDemoModule {
        XPInstantFeedbackSource instantDS;
        public XPOInstantFeedback() {
            XPOServiceHelper.SetupXpoLayer();
            instantDS = new XPInstantFeedbackSource(typeof(Question));
            instantDS.ResolveSession += new EventHandler<ResolveSessionEventArgs>(instantDS_ResolveSession);
            instantDS.DismissSession += new EventHandler<ResolveSessionEventArgs>(instantDS_DismissSession);
            instantDS.DefaultSorting = "CreatedOn desc";
            InitializeComponent();
            grid.ItemsSource = instantDS;
            waitIndicatorList.EditValueChanged += waitIndicatorList_EditValueChanged;
        }
        protected override void Clear() {
            base.Clear();
            instantDS.Dispose();
        }
        void instantDS_DismissSession(object sender, ResolveSessionEventArgs e) {
            IDisposable session = e.Session as IDisposable;
            if(session != null) {
                session.Dispose();
            }
        }
        void instantDS_ResolveSession(object sender, ResolveSessionEventArgs e) {
            Session s = new UnitOfWork();
            e.Session = s;
        }
        private void waitIndicatorList_EditValueChanged(object sender, DevExpress.Xpf.Editors.EditValueChangedEventArgs e) {
            if(e.NewValue.ToString() == "Custom") {
                view.WaitIndicatorType = WaitIndicatorType.Panel;
                view.WaitIndicatorStyle = Resources["CustomWaitIndicatorStyle"] as Style;
            }
            else {
                view.ClearValue(GridViewBase.WaitIndicatorStyleProperty);
                view.WaitIndicatorType = (WaitIndicatorType)e.NewValue;
            }
        }
    }
}!using System;
using System.Windows;
using DevExpress.DemoData;
using DevExpress.Xpf.DemoBase;
using DevExpress.Xpf.DemoBase.Helpers;
using DevExpress.DemoData.Helpers;

namespace GridDemo {
    public class Program {
        [STAThread]
        static void Main(string[] args) {
            StartupBase.Run<Startup>(null);
        }
    }
    public class Startup : DemoStartup {
        public static void InitDemo() {
            Loader.DemoDataAssembly = typeof(DevExpress.DemoData.AssemblyMarker).Assembly;
        }
        protected override bool GetDebug() {
#if DEBUG
            return true;
#else
            return false;
#endif
        }
        protected override Type GetFixtureTypeForXBAPOrSLTesting() {
            return null;
        }
    }
}!busing System;
using System.Reflection;
using System.Runtime.InteropServices;
using System.Windows;
using DevExpress.Xpf.DemoBase;

[assembly: AssemblyTitle("DevExpress DXGrid for WPF Main Demo")]
[assembly: AssemblyDescription("DevExpress DXGrid for WPF Main Demo")]
[assembly: AssemblyProduct("DevExpress DXGrid for WPF")]
[assembly: AssemblyTrademark("DevExpress DXGrid for WPF")]
[assembly: AssemblyConfiguration("")]
[assembly: AssemblyCompany(AssemblyInfo.AssemblyCompany)]
[assembly: AssemblyCopyright(AssemblyInfo.AssemblyCopyright)]
[assembly: AssemblyCulture("")]

[assembly: ProductID("DXGrid")]

[assembly: ComVisible(false)]

[assembly: ThemeInfo(ResourceDictionaryLocation.None, ResourceDictionaryLocation.SourceAssembly)]

[assembly: AssemblyVersion(AssemblyInfo.Version)]
[assembly: AssemblyFileVersion(AssemblyInfo.FileVersion)]!�

namespace DevExpress.Xpf.Demos.Properties {
    using System;
    [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "2.0.0.0")]
    [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
    [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
    internal class Resources {

        private static global::System.Resources.ResourceManager resourceMan;

        private static global::System.Globalization.CultureInfo resourceCulture;

        [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
        internal Resources() {
        }
        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
        internal static global::System.Resources.ResourceManager ResourceManager {
            get {
                if (object.ReferenceEquals(resourceMan, null)) {
                    global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("DevExpress.Xpf.Demos.Properties.Resources", typeof(Resources).Assembly);
                    resourceMan = temp;
                }
                return resourceMan;
            }
        }
        [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
        internal static global::System.Globalization.CultureInfo Culture {
            get {
                return resourceCulture;
            }
            set {
                resourceCulture = value;
            }
        }
    }
}!W(
namespace GridDemo.WcfSCService
{
    public partial class SCEntities : global::System.Data.Services.Client.DataServiceContext
    {
        [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Services.Design", "1.0.0")]
        public SCEntities(global::System.Uri serviceRoot) :
                base(serviceRoot)
        {
            this.ResolveName = new global::System.Func<global::System.Type, string>(this.ResolveNameFromType);
            this.ResolveType = new global::System.Func<string, global::System.Type>(this.ResolveTypeFromName);
            this.OnContextCreated();
        }
        partial void OnContextCreated();
        [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Services.Design", "1.0.0")]
        protected global::System.Type ResolveTypeFromName(string typeName)
        {
            if (typeName.StartsWith("SCModel", global::System.StringComparison.Ordinal))
            {
                return this.GetType().Assembly.GetType(string.Concat("GridDemo.WcfSCService", typeName.Substring(17)), false);
            }
            return null;
        }
        [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Services.Design", "1.0.0")]
        protected string ResolveNameFromType(global::System.Type clientType)
        {
            if (clientType.Namespace.Equals("GridDemo.WcfSCService", global::System.StringComparison.Ordinal))
            {
                return string.Concat("SCModel.", clientType.Name);
            }
            return null;
        }
        [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Services.Design", "1.0.0")]
        public global::System.Data.Services.Client.DataServiceQuery<SCIssuesDemo> SCIssuesDemo
        {
            get
            {
                if ((this._SCIssuesDemo == null))
                {
                    this._SCIssuesDemo = base.CreateQuery<SCIssuesDemo>("SCIssuesDemo");
                }
                return this._SCIssuesDemo;
            }
        }
        [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Services.Design", "1.0.0")]
        private global::System.Data.Services.Client.DataServiceQuery<SCIssuesDemo> _SCIssuesDemo;
        [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Services.Design", "1.0.0")]
        public void AddToSCIssuesDemo(SCIssuesDemo SCIssuesDemo)
        {
            base.AddObject("SCIssuesDemo", SCIssuesDemo);
        }
    }
    [global::System.Data.Services.Common.EntitySetAttribute("SCIssuesDemo")]
    [global::System.Data.Services.Common.DataServiceKeyAttribute("Oid")]
    public partial class SCIssuesDemo : global::System.ComponentModel.INotifyPropertyChanged
    {
        [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Services.Design", "1.0.0")]
        public static SCIssuesDemo CreateSCIssuesDemo(global::System.Guid oid)
        {
            SCIssuesDemo SCIssuesDemo = new SCIssuesDemo();
            SCIssuesDemo.Oid = oid;
            return SCIssuesDemo;
        }
        [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Services.Design", "1.0.0")]
        public global::System.Guid Oid
        {
            get
            {
                return this._Oid;
            }
            set
            {
                this.OnOidChanging(value);
                this._Oid = value;
                this.OnOidChanged();
                this.OnPropertyChanged("Oid");
            }
        }
        [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Services.Design", "1.0.0")]
        private global::System.Guid _Oid;
        partial void OnOidChanging(global::System.Guid value);
        partial void OnOidChanged();
        [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Services.Design", "1.0.0")]
        public string ID
        {
            get
            {
                return this._ID;
            }
            set
            {
                this.OnIDChanging(value);
                this._ID = value;
                this.OnIDChanged();
                this.OnPropertyChanged("ID");
            }
        }
        [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Services.Design", "1.0.0")]
        private string _ID;
        partial void OnIDChanging(string value);
        partial void OnIDChanged();
        [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Services.Design", "1.0.0")]
        public string Subject
        {
            get
            {
                return this._Subject;
            }
            set
            {
                this.OnSubjectChanging(value);
                this._Subject = value;
                this.OnSubjectChanged();
                this.OnPropertyChanged("Subject");
            }
        }
        [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Services.Design", "1.0.0")]
        private string _Subject;
        partial void OnSubjectChanging(string value);
        partial void OnSubjectChanged();
        [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Services.Design", "1.0.0")]
        public global::System.Nullable<global::System.DateTime> ModifiedOn
        {
            get
            {
                return this._ModifiedOn;
            }
            set
            {
                this.OnModifiedOnChanging(value);
                this._ModifiedOn = value;
                this.OnModifiedOnChanged();
                this.OnPropertyChanged("ModifiedOn");
            }
        }
        [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Services.Design", "1.0.0")]
        private global::System.Nullable<global::System.DateTime> _ModifiedOn;
        partial void OnModifiedOnChanging(global::System.Nullable<global::System.DateTime> value);
        partial void OnModifiedOnChanged();
        [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Services.Design", "1.0.0")]
        public global::System.Nullable<global::System.DateTime> CreatedOn
        {
            get
            {
                return this._CreatedOn;
            }
            set
            {
                this.OnCreatedOnChanging(value);
                this._CreatedOn = value;
                this.OnCreatedOnChanged();
                this.OnPropertyChanged("CreatedOn");
            }
        }
        [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Services.Design", "1.0.0")]
        private global::System.Nullable<global::System.DateTime> _CreatedOn;
        partial void OnCreatedOnChanging(global::System.Nullable<global::System.DateTime> value);
        partial void OnCreatedOnChanged();
        [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Services.Design", "1.0.0")]
        public string ProductName
        {
            get
            {
                return this._ProductName;
            }
            set
            {
                this.OnProductNameChanging(value);
                this._ProductName = value;
                this.OnProductNameChanged();
                this.OnPropertyChanged("ProductName");
            }
        }
        [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Services.Design", "1.0.0")]
        private string _ProductName;
        partial void OnProductNameChanging(string value);
        partial void OnProductNameChanged();
        [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Services.Design", "1.0.0")]
        public string TechnologyName
        {
            get
            {
                return this._TechnologyName;
            }
            set
            {
                this.OnTechnologyNameChanging(value);
                this._TechnologyName = value;
                this.OnTechnologyNameChanged();
                this.OnPropertyChanged("TechnologyName");
            }
        }
        [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Services.Design", "1.0.0")]
        private string _TechnologyName;
        partial void OnTechnologyNameChanging(string value);
        partial void OnTechnologyNameChanged();
        [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Services.Design", "1.0.0")]
        public global::System.Nullable<bool> Urgent
        {
            get
            {
                return this._Urgent;
            }
            set
            {
                this.OnUrgentChanging(value);
                this._Urgent = value;
                this.OnUrgentChanged();
                this.OnPropertyChanged("Urgent");
            }
        }
        [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Services.Design", "1.0.0")]
        private global::System.Nullable<bool> _Urgent;
        partial void OnUrgentChanging(global::System.Nullable<bool> value);
        partial void OnUrgentChanged();
        [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Services.Design", "1.0.0")]
        public string Status
        {
            get
            {
                return this._Status;
            }
            set
            {
                this.OnStatusChanging(value);
                this._Status = value;
                this.OnStatusChanged();
                this.OnPropertyChanged("Status");
            }
        }
        [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Services.Design", "1.0.0")]
        private string _Status;
        partial void OnStatusChanging(string value);
        partial void OnStatusChanged();
        [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Services.Design", "1.0.0")]
        public event global::System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
        [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Services.Design", "1.0.0")]
        protected virtual void OnPropertyChanged(string property)
        {
            if ((this.PropertyChanged != null))
            {
                this.PropertyChanged(this, new global::System.ComponentModel.PropertyChangedEventArgs(property));
            }
        }
    }
}!aMSBAML```����\XPresentationFramework, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35RNWindowsBase, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35WSPresentationCore, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35RNSystem.Xaml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089�MergedDictionaries
�Source�D9http://schemas.microsoft.com/winfx/2006/xaml/presentation:x,http://schemas.microsoft.com/winfx/2006/xaml�$& /GridDemo;component/Generic.xaml?�%!N<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
    <ResourceDictionary.MergedDictionaries>
        <ResourceDictionary Source="/GridDemo;component/Generic.xaml" />
    </ResourceDictionary.MergedDictionaries>
</ResourceDictionary>�����lSystem.Resources.ResourceReader, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089#System.Resources.RuntimeResourceSetPADPADP�z�PNG


IHDR(-S	pHYs���+�PLTE���Hr.KIrh�9g�92LJs;N���/Kd�49Mf�8�⋸∱�}��l\~(�䊹〰�q��^\~%g�!��U��s��c��Ok�)2K��3������%��P��?��8��C:UCd
����������/��.IlW��������&^�w�#��A��:w�#��S��O.L/M��L�fIDATx^}�=�0���I$������{��ܣ�T�7�-K6��1�� �J�:�ĆC)��	+�ҥ",a�,�j���~��i���f����I��
ae��*��k�IEND�B`���PNG


IHDR(-S	pHYs���+�PLTE��������Q�쁽���R��v�������������������������s��b���������������k��q�����\��U��_��e��f��_��W��T��O��Y�ق��V��q���������|�����t��r��t�z�~�}�{��n���ТA_zIDATx^U�E�@Ǟ0.233�ߵ�B�)ɇ*��~TC�!�sy�P�7���V��v�?����\����z��G��t6O6��ei�Z���S����mA`&b�P��u=�4���X|��\�IEND�B`���PNG


IHDR�aNIDATx^u��O�`�Lf�x�@�M��"��b�1A$��
�j�Ń11�*j8�p��cΩS��VF’�⌈8����F<�߶C���>y������2e�yY��0�)�%��l�PP���,����i_��xj%y�,%��Ĕ`�7?�pl���"����U�lF:ҍ���j����{����ژ�P`�Zj�R�5t���c@rP<�]�
⏯��=�9ű���1c���q�����>^�n�+�Xs�<Uɳ����P.��P�@�H=!H�<���;!�k�x�[d;zASµS����m@�����y`��v�\%bc;$�� ��E�`�4	�b'ѕ��/�H��m�1��H`���<cb�����@��� v
J�
�-z��9��'j��^(�#�.<�lp��2���cH�D�����{)�!⽉w��x��c��풡.�^����Z��|�M�����:��xq1��Ww#6��L�1{�J�6�goǂӊ�Ks�E�	��;�=W�(�1<�����HO�YW�g*����zb�#���J���i� e⿳H��3y�.IEND�B`��PNG


IHDR�a�IDATx^œMkA��{z�쮳���?��C$n�'�E����A��e��M�ל%9F<y�H$~�$��`6�1��=]�e�0�C$��6<tS]o5��^� ��@�s�?��xY#v�_:;lўG��x
�=b�eZ��?k��r�{��4��W�O&�ލ�O+�Ƙ+a��t[��
(C���y�,�!��O}|�s>n!��ىgC�l[�j+<�Z�
��.��C�%Wt����7�'�"��)�%�Zkj
��
as��@��MXX����MG�MR2�?��ri��q`֒��Rf���S߮���w��],P{B��HD0,�'F����}_���.	/wX^T>�;��HY����/C��
D��[gn2������k}�zJ�e�c.��a�_��`"��'<�7!�1h�@�ແ�x�N�Ws��ˋQKl�!{�Rn�\�?<6�����!�m�(*$J�����ٚ5�lIEND�B`�w�PNG


IHDR�a>IDATx^���KSa�o����
%�埈�gc?Կ�����	6�42Mi�;R7�2zaS3_rӫ�܌�\����lYfL
v��g#����_��s�s81�J�_G�t��%y��[��hP��f�mN϶�6����ǿ
GV������$|�l��PS�~W��V�c�_��>�<�1�⩴��3qWA��#�%���l^��9\��@M��;n��v����7@���7�{�]ny���{YH]@g���.o�OX`�l����deA-��&�o�IS��IFѮ�İd1�L�&�Y��c����T����e�:�S���
����ӂ|5A�D�eՊ�\���|��N"/C*VNr;ƚӂC��-�gR�F�HE��q5?�/�	�HFob�A�E�5��]�^�C��A�N��$.�]��JqϨ�(��&�ܭ�+^:�c#r�F��O�|��o�f��N��XSͦU݃��܁�J�2�(D�ɏ]H&��l�B�>��	<w�}�N���W��ZJ4F�E^��~u����~��LN���P&Ge��:"�8J#
�}[���
|F~�q��IEND�B`���PNG


IHDR�aSIDATx^}��J�@E�}��"+�#�	ŝ�B

EAp�(T\ApQ\�݈���5-��8��a&�ӗ��;g �(�57[�SzUZ�o�Fv�%eY���Nvc,p�����H	�-�T"S.�[H:V�5[j �yX��ŀ�n�#fަ U���s� ,�S��i��j@�8�̺AM�
��@pY5Ĕa�I�r���	�p�� �����B��T3�@�
8T��V�?��E���x�<���`��9��D���z��

��ϥG
j�I�Bi�F�-�e
�k�7�Nߵ�&��w2��]=�f�g{zf"�ta��^j�o�y��d�IEND�B`�g�PNG


IHDR�a.IDATx^��=�Q���&j�v6��`$��ꦰ3�)�q!��6)����X	�(v��dR,!Q� K@d��f67�{��ܹ8�R��;\��pϤE�3i[�#X�Ui����,e��9C:��bOX|m3�_=��`qօ��"EwIab�l��״�
64M&9x�dj�q]�:�䉬�a,L�D�MTԳ:Q��L��t��k$fQ�%�;��d�h�Fx���`^S3Dm���+
5�n�.p�t��.�T΢z�~'�m0�K��v��2�a��a)�������vc��/D����V3l?y��Y8�û�L��x����Hg��;.¥D��c�5��!��bg4ƃg}�����<(�,q?���YGkN�����>��T(&���6KgN�Xtn_Yƽ�g�3\���A%�Kk^�)XUA���_����CB2����1���ׅ%�������G�����
]�������	�_MSL-fp�p��1ܳ��ie��
�;.�4Y�
��)+P�X����x���/Oo`n|��?��ay:�fIEND�B`��DevExpress.Printing.v{DXVersion}.Core
DevExpress.Xpf.Docking.v{DXVersion}
DevExpress.Xpf.Grid.v{DXVersion}
DevExpress.Xpf.Grid.v{DXVersion}.Core
DevExpress.Xpf.Grid.v{DXVersion}.Extensions
DevExpress.Xpf.Layout.v{DXVersion}.Core
DevExpress.Xpf.Printing.v{DXVersion}
DevExpress.Xpf.Printing.v{DXVersion}.Core
DevExpress.Xpo.v{DXVersion}
DevExpress.Charts.v{DXVersion}.Core
DevExpress.Xpf.Charts.v{DXVersion}
System.Windows.InteractivityF	<XtraSerializer version="1.0" application="GridControl">
  <property name="#LayoutVersion" isnull="true" />
  <property name="$GridControl" iskey="true" value="grid">
    <property name="TotalSummary" iskey="true" value="0" />
    <property name="GroupSummary" iskey="true" value="0" />
    <property name="GroupCount">0</property>
    <property name="Columns" iskey="true" value="3">
      <property name="Item1" isnull="true" iskey="true">
        <property name="VisibleIndex">0</property>
        <property name="FieldName">CompanyName</property>
        <property name="Name">colCompanyName</property>
        <property name="Width">230</property>
        <property name="ActualWidth">219.44</property>
      </property>
      <property name="Item2" isnull="true" iskey="true">
        <property name="VisibleIndex">1</property>
        <property name="FieldName">ContactName</property>
        <property name="Name">colContactName</property>
        <property name="Width">150</property>
        <property name="ActualWidth">138.05378731172976</property>
      </property>
      <property name="Item3" isnull="true" iskey="true">
        <property name="VisibleIndex">2</property>
        <property name="FieldName">Address</property>
        <property name="Name">colAddress</property>
        <property name="Width">260</property>
        <property name="ActualWidth">236.50621268827024</property>
      </property>
    </property>
    <property name="View" isnull="true" iskey="true">
      <property name="AutoWidth">true</property>
      <property name="ShowGroupPanel">false</property>
      <property name="NavigationStyle">Row</property>
      <property name="AllowGrouping">false</property>
      <property name="AllowEditing">false</property>
      <property name="ColumnChooserState" isnull="true" iskey="true">
        <property name="Size">220,250</property>
        <property name="Location">411,259</property>
      </property>
    </property>
    <property name="SortInfo" iskey="true" value="1">
      <property name="Item1" isnull="true" iskey="true">
        <property name="SortOrder">Ascending</property>
        <property name="FieldName">CompanyName</property>
      </property>
    </property>
    <property name="GroupSummarySortInfo" iskey="true" value="0" />
  </property>
</XtraSerializer><<XtraSerializer version="1.0" application="GridControl">
  <property name="#LayoutVersion" isnull="true" />
  <property name="$GridControl" iskey="true" value="grid">
    <property name="AutoExpandAllGroups">true</property>
    <property name="TotalSummary" iskey="true" value="1">
      <property name="Item1" isnull="true" iskey="true">
        <property name="SummaryType">Count</property>
        <property name="FieldName">CompanyName</property>
        <property name="Alignment">Right</property>
      </property>
    </property>
    <property name="GroupSummary" iskey="true" value="1">
      <property name="Item1" isnull="true" iskey="true">
        <property name="SummaryType">Count</property>
        <property name="Alignment">Default</property>
      </property>
    </property>
    <property name="GroupCount">1</property>
    <property name="Columns" iskey="true" value="11">
      <property name="Item1" isnull="true" iskey="true">
        <property name="VisibleIndex">0</property>
        <property name="Fixed">Left</property>
        <property name="FieldName">CompanyName</property>
        <property name="Name">colCompanyName</property>
        <property name="ActualWidth">173</property>
      </property>
      <property name="Item2" isnull="true" iskey="true">
        <property name="VisibleIndex">1</property>
        <property name="FieldName">Phone</property>
        <property name="Name">colPhone</property>
      </property>
      <property name="Item3" isnull="true" iskey="true">
        <property name="VisibleIndex">2</property>
        <property name="FieldName">ContactName</property>
        <property name="Name">colContactName</property>
        <property name="ActualWidth">126</property>
      </property>
      <property name="Item4" isnull="true" iskey="true">
        <property name="VisibleIndex">3</property>
        <property name="FieldName">ContactTitle</property>
        <property name="Name">colContactTitle</property>
        <property name="ActualWidth">144</property>
      </property>
      <property name="Item5" isnull="true" iskey="true">
        <property name="Visible">false</property>
        <property name="VisibleIndex">4</property>
        <property name="FieldName">Region</property>
        <property name="Name">colRegion</property>
      </property>
      <property name="Item6" isnull="true" iskey="true">
        <property name="FieldName">Country</property>
        <property name="Name">colCountry</property>
      </property>
      <property name="Item7" isnull="true" iskey="true">
        <property name="VisibleIndex">4</property>
        <property name="FieldName">City</property>
        <property name="Name">colCity</property>
      </property>
      <property name="Item8" isnull="true" iskey="true">
        <property name="VisibleIndex">5</property>
        <property name="FieldName">Address</property>
        <property name="Name">colAddress</property>
        <property name="ActualWidth">159</property>
      </property>
      <property name="Item9" isnull="true" iskey="true">
        <property name="Visible">false</property>
        <property name="VisibleIndex">6</property>
        <property name="FieldName">PostalCode</property>
        <property name="Name">colPostalCode</property>
      </property>
      <property name="Item10" isnull="true" iskey="true">
        <property name="VisibleIndex">6</property>
        <property name="FieldName">Fax</property>
        <property name="Name">colFax</property>
      </property>
      <property name="Item11" isnull="true" iskey="true">
        <property name="Visible">false</property>
        <property name="VisibleIndex">7</property>
        <property name="FieldName">CustomerID</property>
        <property name="Name">colCustomerID</property>
      </property>
    </property>
    <property name="View" isnull="true" iskey="true">
      <property name="ShowFixedTotalSummary">true</property>
      <property name="ShowAutoFilterRow">true</property>
      <property name="ColumnChooserState" isnull="true" iskey="true">
        <property name="Size">220,250</property>
        <property name="Location">411,259</property>
      </property>
    </property>
    <property name="SortInfo" iskey="true" value="1">
      <property name="Item1" isnull="true" iskey="true">
        <property name="SortOrder">Ascending</property>
        <property name="FieldName">Country</property>
      </property>
    </property>
    <property name="GroupSummarySortInfo" iskey="true" value="0" />
  </property>
</XtraSerializer>��<?xml version="1.0" encoding="utf-8"?>
<Countries xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <Country>
    <OID>0</OID>
    <Name>Poland</Name>
    <Acronym>pl</Acronym>
    <Flag>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</Flag>
    <OptimisticLockField>0</OptimisticLockField>
  </Country>
  <Country>
    <OID>1</OID>
    <Name>Argentina</Name>
    <Acronym>ar</Acronym>
    <Flag>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</Flag>
    <OptimisticLockField>0</OptimisticLockField>
  </Country>
  <Country>
    <OID>2</OID>
    <Name>United States</Name>
    <Acronym>us</Acronym>
    <Flag>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</Flag>
    <OptimisticLockField>0</OptimisticLockField>
  </Country>
  <Country>
    <OID>3</OID>
    <Name>Spain</Name>
    <Acronym>es</Acronym>
    <Flag>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</Flag>
    <OptimisticLockField>0</OptimisticLockField>
  </Country>
  <Country>
    <OID>4</OID>
    <Name>Malta</Name>
    <Acronym>mt</Acronym>
    <Flag>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</Flag>
    <OptimisticLockField>0</OptimisticLockField>
  </Country>
  <Country>
    <OID>5</OID>
    <Name>Lebanon</Name>
    <Acronym>lb</Acronym>
    <Flag>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</Flag>
    <OptimisticLockField>0</OptimisticLockField>
  </Country>
  <Country>
    <OID>6</OID>
    <Name>Saudi Arabia</Name>
    <Acronym>sa</Acronym>
    <Flag>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</Flag>
    <OptimisticLockField>0</OptimisticLockField>
  </Country>
  <Country>
    <OID>7</OID>
    <Name>United Kingdom</Name>
    <Acronym>gb</Acronym>
    <Flag>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</Flag>
    <OptimisticLockField>0</OptimisticLockField>
  </Country>
  <Country>
    <OID>8</OID>
    <Name>Greece</Name>
    <Acronym>gr</Acronym>
    <Flag>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</Flag>
    <OptimisticLockField>0</OptimisticLockField>
  </Country>
  <Country>
    <OID>9</OID>
    <Name>Israel</Name>
    <Acronym>il</Acronym>
    <Flag>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</Flag>
    <OptimisticLockField>0</OptimisticLockField>
  </Country>
  <Country>
    <OID>10</OID>
    <Name>Japan</Name>
    <Acronym>jp</Acronym>
    <Flag>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</Flag>
    <OptimisticLockField>0</OptimisticLockField>
  </Country>
  <Country>
    <OID>11</OID>
    <Name>New Zealand</Name>
    <Acronym>nz</Acronym>
    <Flag>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</Flag>
    <OptimisticLockField>0</OptimisticLockField>
  </Country>
  <Country>
    <OID>12</OID>
    <Name>Belgium</Name>
    <Acronym>be</Acronym>
    <Flag>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</Flag>
    <OptimisticLockField>0</OptimisticLockField>
  </Country>
  <Country>
    <OID>13</OID>
    <Name>Puerto Rico</Name>
    <Acronym>pr</Acronym>
    <Flag>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</Flag>
    <OptimisticLockField>0</OptimisticLockField>
  </Country>
  <Country>
    <OID>14</OID>
    <Name>Russia</Name>
    <Acronym>ru</Acronym>
    <Flag>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</Flag>
    <OptimisticLockField>0</OptimisticLockField>
  </Country>
  <Country>
    <OID>15</OID>
    <Name>Sweden</Name>
    <Acronym>se</Acronym>
    <Flag>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</Flag>
    <OptimisticLockField>0</OptimisticLockField>
  </Country>
  <Country>
    <OID>16</OID>
    <Name>Canada</Name>
    <Acronym>ca</Acronym>
    <Flag>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</Flag>
    <OptimisticLockField>0</OptimisticLockField>
  </Country>
  <Country>
    <OID>17</OID>
    <Name>Ireland</Name>
    <Acronym>ie</Acronym>
    <Flag>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</Flag>
    <OptimisticLockField>0</OptimisticLockField>
  </Country>
  <Country>
    <OID>18</OID>
    <Name>Taiwan</Name>
    <Acronym>tw</Acronym>
    <Flag>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</Flag>
    <OptimisticLockField>0</OptimisticLockField>
  </Country>
  <Country>
    <OID>19</OID>
    <Name>Netherlands</Name>
    <Acronym>nl</Acronym>
    <Flag>iVBORw0KGgoAAAANSUhEUgAAAC4AAAAkCAYAAAD2IghRAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAtrSURBVFhH1ZZ3dFRlGsY/cRXdRdfeFZEi3Y50EURQlKKA9CYdpIiKymJZEBAQkVVJQkIxQXRdXetZZd1FAkSClBBSSEhukkmZSabkZpKZVPLs+8zMF65xwno4xz1n/3jOTO7c77u/9/me971RdXep5Lo7lVnTVZlVXZRZ2UmZvs7KLO+oTG8HZZrtlelpp0xXW2WWyKejjTLtrZVZeJsyba1EtyozR5TdUnSzMjNuUmb6jcpMu0GZKdcrM1l0/DplHrtWmUeuUebhq5V58CplJlypzP1XKHPf5crcI/rXZcrcLfruEmV+3UKZX4o+v1iZn12kzE+aK/PjC5W5S7RTFHeBylQCbpx++CrUD2uJOlHt8FaoHXEbap5ojeon26JmVDtUjbwd1aPao/KpjvCP7ozKMZ3ge6oLKsZ0hm90F5SP6gTvyI4oH9kB3hHtRe1QNrQtzKFtYA5pjdIhreAZfKuoJdwDb4Zr4E1w9b8Rzn7Xo6TvdSjufQ0cPa+CvfuVKOp2Oez3XorCu1ug4M4WyO96MWydmyOv4wWwdTgfKbechw/OV3ZVd4eAj2gFTL0rqKfvAWbcD8zqDszpCczvDSzoCyzqBywZIBoIvPAwsHRQUM9Tcu3Zh0T9gYVy3zN9gHm9gutndZP97pV975b97wQmdwUmdgbGdwTG3g481RYY1RoYcSsw/GbgsRuAR64DBl8NPHQF8OClQL8/AL1/D/RqDmfnZtjaTMBrCT5cFk25wwJ+nzxQ4Gf3AOYKwHwBWSBAiwSMgM+FgJc+EiyCxSyWogLQUuQ8KTYALcXPEPCnBXyqgE+WZ0zsItCdBLqDQAv4KAF/8jaBbgkMvQkYIuCDrwUkBRhwuUALeN8WAn0x0PNCFHdshhg6XnM28DkCTucIQ6jFAr5EwAn7wmDgxUeDjjeAPygFPhAefFoIfJIFfMy5gW8979eAh3VcR4WOSwFW8KYc1+BWx88RPJpRqe4aigqPcYpkkA+YLlGZ2Tgq4uQicZSRoOuMy3OhmDwr1xijsFGRvdg37J+wUWnTKCrXnzUqJZ2aIVqFwOuGScZ/Bi6ZnCnZnB1qUGZWx0XDE1aLESI0Y8J+4CmxP1j8jHDgbMz2kvF2knEBf0KGAzP+ODNO8GuAgVdaMi7N2esioMeFcHRohkiCV4njHIOYJN1O+IbJEqZBCc8mXSjOswAtK7S1MVn8dDGBp8jT5DMmyEQZZwEfLc1J8GG3CPiNwKMW8P6XBZuzjwa/IAjOjAfAWS2bhqOqIS4h1/VY1FkPwIuzVvEanSb0XJkmTbnNZ0yQiTJOJgrzTeiRoVE4jKOQ4DIKB8kopOMEf+ASAZdR2JOOC7hMlQg67u8k4EOlWjYNHWk8FnncVnjCcbYTVCsAHJrbhOYo5Rhs7HbD/LbEhKNwBEehnuEchXqG/zEIzhnesznQ/Xcobn8eNgei0kYZ9Rz2YyRvY8UBZm+CHOUkOdLJUsxUic80OWY2WODlxMYNncZMfg+9YGbIb9MlEtNCL7IpYgKNmCgOjxeH+bIZK3keLaAjCSt9NSIUj8cElrkeJC+cAQLbn7NbYPsIrOQa3ZsB9yrgHoXi1grvEzx73cs2Z8xq+Laugm/L6/BHr4R/20pUbluNqu2i2DWojn0T1XHrUbNTtOst1HxIbQhJvsu1avmtKm6daC0qd6yFX9b6t8ueMatQEbMC5VHUa/Bufg1lm5fDfHcZzE0voVTk2bAU7vVL4Fq7GM41C1Gy6hkUr5wHx4o5sL86G0XLp6Nw2TQUvjIDKS/NQuSkyW6VeOiQLddeDKe3Aq5yHzy+SpT6q1BWVQNvdS0qak/DV1cP/2mgCkC1qCak2tAnr/G3ynoE7uWa8pq6wB5mZXVgT3eFP/CMkrJyFJte2D0mitylKHC6YSt2Is9RgpwiB7ILinDKVoCMXBvSjFykZBlIzsxCcsYpJJ3MRHziIURHR7sIbuTl5cHlcsHtdsPj8aC0tBRlZWXwer2oqKiAz+dDZWUlqqqqUFNTg9raWtTV1QXE77xWXV0duMfv9wfWlJeXB9abphnYj3vzGSUlJSguLobdbkdRUREKCgqQn58PMuTk5CA7OxunTp1CRkYG0tPTkZqaipSUFCQnJ+P48eOIj49H1JYtdpWYmPgLcD6M4Hw4IQjTGLy+vh6Uhic4C+O9LPQ3BY+KsqtDYRxvDN6U4xpcO/6/At9Cxw8ePNjgOI/yv0WFzuq4MCY6KoQ+16jYbLazRuXEiRMNUdm3bx8iIyOD4Lm5uYH8WcHpOjPKI6fj1rhoeO1045gwXlzLuHEfmsGMO53OQMYdDsfPMk5wMjSVcYIz39TevXsRxagw41zETXWDspnCxcUKT4e16HQ4twnOvQjOvRuDFxYWBppTgxuGgaysLGRmZv6sOTV4UlJSADwiIsKuEhISGsC5cbjJoptUO68LsALzN+s00W6Hmyh0nBOF4Hqi0Dwr+MmTJ5GWlhaYKk2C84h4hFbX6ZJ2XUeGYHo8EtSqpqAbx+TXjEI6rsGto5COcxxGRorjiQkJtsI8A2XukoC8HifKS13wlXng95aistxEVUUZqn1e1PgrROWorfSJKhrEaxTv4b1cw7Xco8J0y35umLJ3qasYHqcDnhIHnI5COO2FcBTaUJSfiyJbLvJzs5FnnEJOVgayM9ORnZGOzPQUnExNRtqJJKQmH8OP+39AxOYIl5od8aNt024DOw46AopNLMEHh52IPezCziNuxB31YOexUuw6auLDpDJ8dJzyYldyUMG/y+Q3E7uOmdh5tBQfHvEg7rAbsT85EXdI9kssxo5EB7YnFGHbgUJsP1CArfH5iInPQ8yeXETtMRD5fRYidmdi87cZeP/bdLz3TSo2fXUC73yRjI1fJOHtz45i46dH8GrMDxg6X96camKioZbmQa1wB7XKDGp1GdSbFVBrRet8UBuqgnq7GuqdWqiNNSL51N/fqoRa7w/eS63xyh6iN0qhVnqCet0J9ZroFQfUctGyQqiXRS/aoJ7PhVpiBLX4FNSCDKj56VBzU6Fmn4CaeRxqlmj8AagesXalpiYYapmArxZo6k150FoBXy8PfatcQAViowC9I2B/Eeh3Bfg9AX6/Dmrz6eB3Xt8kRfEe3r9BiuXadVI891oj0Nz7DYFeWQL1Z4F+3S5FFEkRBVB/EvCXBfylHKil2VKEgC8R8MUCvlDAnxHw+clQ8wR8soD3/kDAp1jA+YCmwAlGQA0dUQ9F8W8Wo8FZ5G8JPnEfVE+CTz5wxvH/F/Ae2wV80n4jcEznEhW63VRUGLXfIip0vPu2s4Dzocwpj525ZX51XBgNLWu+GRPey3UanNHjSa5y/TLjr0pjWjP+ojTmC1nhM858U5P2Q91P8In7jEBTcGO6ruNC8HANSnhdQDhonW+uZWMSnPtq8BXFweZkYzYF/lzmL5uT0HOToCbEQ3WLFvAJ8WfAubk1541dp6N6wvAEtLTTVujGMeHenCgE1xOF4MvzZSzKVKN52nGCP3sSalHamamiwRmV++Tf2gA4F3BUnc11QunY6AI0sHUEWrN9tpjoUWgF16PQCr4g5cwopOPj9wq4/Heoxu09A26F5zFb42LNO0EbK5zbGtw6w3+t45zh1jlOx+ccC0blbvl/XI3dYwQGPh3gETJ/3JzHSulidIz09NGfuvEaw1lfMjrLbETGQr9sGA82Ix2mNOjCkMt0mLCzjkDN+CmoMf8OgY/bEy9/GGo09b2hRu421Kh/GurJ7wz1xLfBz+H/MNSwb4Ia+rWhHv8qqMe+NNSQL4J65HNDDf57UIM+NdTDfzPUwE8M9RD1V0MN+NhQD35kqH67DPXATlGcofqK+sQa8iY0VK8dhuqx3VDdtxrqflG3GFG0IXkWRRnickj8HnXoP7QvDLVokZ8wAAAAAElFTkSuQmCC</Flag>
    <OptimisticLockField>0</OptimisticLockField>
  </Country>
  <Country>
    <OID>20</OID>
    <Name>Moldova</Name>
    <Acronym>md</Acronym>
    <Flag>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</Flag>
    <OptimisticLockField>0</OptimisticLockField>
  </Country>
  <Country>
    <OID>21</OID>
    <Name>France</Name>
    <Acronym>fr</Acronym>
    <Flag>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</Flag>
    <OptimisticLockField>0</OptimisticLockField>
  </Country>
  <Country>
    <OID>22</OID>
    <Name>Italy</Name>
    <Acronym>it</Acronym>
    <Flag>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</Flag>
    <OptimisticLockField>0</OptimisticLockField>
  </Country>
  <Country>
    <OID>23</OID>
    <Name>Romania</Name>
    <Acronym>ro</Acronym>
    <Flag>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</Flag>
    <OptimisticLockField>0</OptimisticLockField>
  </Country>
  <Country>
    <OID>24</OID>
    <Name>Slovakia</Name>
    <Acronym>sk</Acronym>
    <Flag>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</Flag>
    <OptimisticLockField>0</OptimisticLockField>
  </Country>
  <Country>
    <OID>25</OID>
    <Name>South Africa</Name>
    <Acronym>za</Acronym>
    <Flag>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</Flag>
    <OptimisticLockField>0</OptimisticLockField>
  </Country>
  <Country>
    <OID>26</OID>
    <Name>Germany</Name>
    <Acronym>de</Acronym>
    <Flag>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</Flag>
    <OptimisticLockField>0</OptimisticLockField>
  </Country>
  <Country>
    <OID>27</OID>
    <Name>Bahrain</Name>
    <Acronym>bh</Acronym>
    <Flag>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</Flag>
    <OptimisticLockField>0</OptimisticLockField>
  </Country>
  <Country>
    <OID>28</OID>
    <Name>Austria</Name>
    <Acronym>at</Acronym>
    <Flag>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</Flag>
    <OptimisticLockField>0</OptimisticLockField>
  </Country>
  <Country>
    <OID>29</OID>
    <Name>Switzerland</Name>
    <Acronym>ch</Acronym>
    <Flag>iVBORw0KGgoAAAANSUhEUgAAAC4AAAAkCAYAAAD2IghRAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29mdHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAu4SURBVFhHrZj5k1TVHcUfIvuwzzAIosiuyDLsA8gOCriwDxhFFpVFExONUazoH5EqozExxlSMiWVijJVopbSSVCVWymwqAdlmetbep5eZno3unpNzbt/bvBkay1Tlh1O3+3W/V5/7/Z77vd/7vHyV15Rb4KWz0nwvfVm63Uv3UN3SPC/dNbegTuk2L91hleGYudVLt1u1cWyb46XTVqnZXlpKSryWmOWlW62ivBab6aUj/B6lwvwe4fcQFaaCvKbPLfpMNevzjOL4N4/AqfyOm4EDt6KXwv23If/AXOQfnIf8wfnUAuQfWljQoaqCDleh9/Ai5A5JVQU9JPE/ByXe8yDvfYDP+Npc5PjMHJ+d2z8HuZrZyO2bhdxeas905HZOQ27HVGTvk6Ygeze1bRKyWyciu6WSqkB243hk149DfsMYtC0djsYZ3n+8nnkE3zsTOLKooIeXAI8sBR5dBhxbDhxfAZyoBk6upFYBj60uLf2m/+i/ukf36hl6lp6pZ3PCOLQQYEDAwIABUqBwYA5QQ4Z91J5pwK6pwI6bgHtuBLZPBrZWAndWAFvK0VFdhsAtBKcdUr26oSQ4AY4T5EQ/6MfvAPxykxG8/qt7jvHekuALLPjtALOB+5llZgI1syz4dILfUgC/l+B3TwK2TQTummDgM9UjUTuV4PRtKrdvNnB0cUEPu2iXgBbs19cU9I21Bbnv+s1M4BrweraCo4g/RHgTccHbiO8ng4m4A6d9751CcEZ82w0EV9TLCV5WAOfiSuV101Gm09jEWcRGWiAO2MCuA57oJ11zkzAT8MPTMnqmsQvhjV1KRZ0MivreGcBu2mUn7XKf7ELw7QSXXRj1doKfv5ng7XO8VLaGqerjbfna2uNxRtFFWMDfXE9tAL5lpc+69gQn9ZgsIl8rc8ogo3uYOkRPC/aoXUcm6n6f++xyFbh8TrtwseKuCoKPwrmbCJ5mxA24FpFkFqRdjEq9IqhoGmjBbgSelDZdka5xYXbUnUVbVzfa2jNIt7Uj1daG1mQa8VQK8WAL7UFAt0j9diku0C/xuQGvRBs9fnYKwVljU7ka+syAyyauisgiNtou0gaawN/eTN1JbSl8forXTqxAZ+AcMgRvz2QIT/B0GklCtyZSSISC9LPArV0EfrCfz1kqS/vcLtCtE5Am+BmBx2cp4nxgsQT6beKLtqwh6KcJ+jSBnyH4dyh9Fjxt0l1/AZ3dPejo6EA7wdsY8RTBE8kkkmGCP8DMapHK5wacdikuUNnlq4Gfnkxw7l6lwd2iNDahhx24ovw0gZ/dVpDgde1kNS43XUR3NovOzs4ifNpGPRkJ9wV3C/R/BE+tGInPJhE8PMNLXd5fIuLXBFeUBX5XQfos2xA821KLnmwO3d3dBj4jyyjqhE9FQv838E9vIHhwOsH3WY+b3dLvcdVt38LUonxK/pZd7AT0XRY6sQz5YB2yvb3o6elBV1fXlahroQr8flrB1XLZRB7XJiTva/f8ClZJMuL/mChwRrynWFV8Ndxt764UsuT1sqr0Pr8LvS9Qz+9GniP0ndJEekMBZPOlwBn1cAi9x6qRZyDyj61F7uRq5I6vRP7RlcgeYyEQdMnF6ds9uTgTyy140zSC71Udt+XwUVsOVcddOXRRP7kcqU6WuxyQyQOdALqpy1RW6uVnevwqq2iBplgWO7oRae9CKN2BlmQ7mhJp1EcTuJTqMk1d323f9itu27flUOCfVDLiDbcQfJ/dgPzbvWmsbFPlavnxpUgnkqbUqWqoesgSApU9JH3226RYWRIJxONxRKNRhMNhBINBtLS0oKGhAZfC8UJnWnLndBuQds4KtC4bhY8rBD7VS3Xvsb1Kcfd0XaGvuRL8I0uQam01i01AWnyC10IUrOQqSnFhMtpJlsNW3heLxRCJRBAKhQx0U1MT6uvrURshuDYhtrt9t3z2Kv4tn1aJLyvDX8oJXnezBdfGYJqsEv2Ki/wjVUjGW82mojIneEVekH65Gm5KIaETJaLd3NyMxsZGA34xFEOvOsQvbbLUHZYjtpTg4wh+aYqX6trta2v7dIj9+vEjC5CIRQsbCqXNxU1Ak3DSNf3mhy4VbdkkEAjgQjBKqzDr6lP8/Xj/tpZWiS4ZiT+NJfiFGwXOG7SbSSpXplO0LYAWq0qk+heCxyJRxJl2pV6RdBMQqJMD1n/kawftvO2Pdm1tLc63RNCryvZlnaE5SIxHbPEIfCTwcwTv3sUeWDuZurYivLON7zTELi/amkS0LYMYFW/vQGumEwlWi0Smi5lIm8n4gbUY5eswxyDvbWHf0hhLsJrEURuM4GJzCGdjbbQKF+c1e3HahKcfbB6HyKIyfDiK4Gcne6nOnYy42kz1D6XgbanspY26XnwGnS+dQvfLz6Lr5eeoU+ji957vPYlEQy2zkTARFrCDDrGKhBvq0XNqN7pfOICu70r70Hlqj1HmuX0lou1rZ+8k+GaCM+LhquH4YCTBz0yiVXawcdcuJvnheSAuWMdG350dj8hSzI6Teu7909F6/jQi0ULlkC0kVZBgiGN9LY9krBJuh9QZs0aeZrb38Kimw4M5a5Y6+dAmm8cDm8YiVDUC75cR/PMbvFTHPbxRzY6kjUDbcakJuMrjjnn+kUDRc58jFC6UO9VpV6ubW4JoriP4boK53tvslCp//Y5rPOkXSqA9PCjassmmccDGMQguHIb3RhD804m0yt18oOkZqD7wvgk4C5lFbDNhDgX29H5gFqJf/BstjK5qtBagpFrdwLLXePF8v4j7Dg27GTh3VOtfSfh6wkR741hgw2iEFgzFu4r4p5VeKrOd6dFpW9LhVa8N/BNwGTBZsOtAEymK15j28Ol/oYnRVX2WVO5UpwP1HM9/QRswmi7Srma786U51dvDsTtjqpIYizDafKeC9aMQnD8U7yji/5xAq2znTcZ7lH0pdNUEjIWsjUxn108109D82SeobyzshqrPdXV1ULm7RNV9cYaHX6bf/xqiCG19Xdwl7esIZxELjXWj0DJvCN4eSvC/V9Aq2wiuB0qKiCbhn4CxkM2CyUQ/6dre6ag/cxoX2XdcCkVxgbX5Isvd+eYwzrWEceHSJUac3jWbDBdkSWjfOxS/RdaPBtaOpEagee5gvDVY4Ix4ZisfqNRJZgKE7zOBwqs5I1mplPSK7ehS5I4sQU6v5w4vtq/mFprXc9mDfG2nXdHVanna2cMtRvPih82Us4jxNS3CSGNNGcGHo+m2QXhzCME/LqdVtnCmpixRikhxAjYDxUkoEzYbykhR7rrsZu8x5U4LkM9jNopR1luqnbSG3pnI09eCdr4WtKJ9xwhg9TA03joIbwwi+F/He6n2TZypHigphf4J+Cfhz4Ym46QMOas5D+s+vy0MsK3TBloHBFv2+kfatxj90Fg1DA1zrsfrAv8zwTObmB4VfkkP90/ATcJlwlmq1Kj/OFjn46uAFWV7qjHV48p7wb4VxPp6jSI9HFg5FFg1GI2zB+K16wj+xzFeqm09y44ioNQpGsUJ+CbhMuEsVWrUf8wOqOzx3j4RdsAuyldeq8EtxGKk+0GvInT1YGDFINTPvA4/HkDwj0YTfB13pvv4QPlNE3Dwu2wGtOM5K2mBOUA3mlbUWc0C77IB0E6oZ5pncy3dQ2BZw75SU49d2Bm5EM1ipKeNrxlp42tCK9rVg6iBaJg5AK8I/ENGPLhkFNJrxiO1thypNeVIrqtAcq00Acn1UiUS66w2cNwwEYn1BbUaVRbE/0iJdTyp8N74GqkC8TvK0UrFVrMtXTUOsZVjEaseg/jyMYguG43o0lHss8sQXVyG2KJhiFQNpYYgOn8wovMGIXr79YjMHYjY3AH4bLKHVzyBj/Y+/2C0F3h/hBf4PfU7q/eGe4HfSsO8wLvUO9RvqF8P9QK/ojS+PYSfqbeoXw7mSP2CenMQR+rn1M8GeoE3KI2vUz+9zgv8hHqdem2AF2Dazfiq5wV+RL3Kzz/k+AOrlzm+ZPV9O/K3P/wXtFj5ObXIVxsAAAAASUVORK5CYII=</Flag>
    <OptimisticLockField>0</OptimisticLockField>
  </Country>
  <Country>
    <OID>30</OID>
    <Name>Portugal</Name>
    <Acronym>pt</Acronym>
    <Flag>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</Flag>
    <OptimisticLockField>0</OptimisticLockField>
  </Country>
  <Country>
    <OID>31</OID>
    <Name>Nigeria</Name>
    <Acronym>ng</Acronym>
    <Flag>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</Flag>
    <OptimisticLockField>0</OptimisticLockField>
  </Country>
  <Country>
    <OID>32</OID>
    <Name>Costa Rica</Name>
    <Acronym>cr</Acronym>
    <Flag>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</Flag>
    <OptimisticLockField>0</OptimisticLockField>
  </Country>
  <Country>
    <OID>33</OID>
    <Name>India</Name>
    <Acronym>in</Acronym>
    <Flag>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</Flag>
    <OptimisticLockField>0</OptimisticLockField>
  </Country>
  <Country>
    <OID>34</OID>
    <Name>Czech Republic</Name>
    <Acronym>cz</Acronym>
    <Flag>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</Flag>
    <OptimisticLockField>0</OptimisticLockField>
  </Country>
  <Country>
    <OID>35</OID>
    <Name>Hungary</Name>
    <Acronym>hu</Acronym>
    <Flag>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</Flag>
    <OptimisticLockField>0</OptimisticLockField>
  </Country>
  <Country>
    <OID>36</OID>
    <Name>Australia</Name>
    <Acronym>au</Acronym>
    <Flag>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</Flag>
    <OptimisticLockField>0</OptimisticLockField>
  </Country>
  <Country>
    <OID>37</OID>
    <Name>Finland</Name>
    <Acronym>fi</Acronym>
    <Flag>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</Flag>
    <OptimisticLockField>0</OptimisticLockField>
  </Country>
  <Country>
    <OID>38</OID>
    <Name>Mexico</Name>
    <Acronym>mx</Acronym>
    <Flag>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</Flag>
    <OptimisticLockField>0</OptimisticLockField>
  </Country>
  <Country>
    <OID>39</OID>
    <Name>Denmark</Name>
    <Acronym>dk</Acronym>
    <Flag>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</Flag>
    <OptimisticLockField>0</OptimisticLockField>
  </Country>
  <Country>
    <OID>40</OID>
    <Name>Singapore</Name>
    <Acronym>sg</Acronym>
    <Flag>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</Flag>
    <OptimisticLockField>0</OptimisticLockField>
  </Country>
</Countries>�O<?xml version="1.0" encoding="utf-8"?>
<Schema Namespace="NorthwindModel" Alias="Self" xmlns:annotation="http://schemas.microsoft.com/ado/2009/02/edm/annotation" xmlns="http://schemas.microsoft.com/ado/2008/09/edm">
  <EntityContainer Name="NorthwindEntities" annotation:LazyLoadingEnabled="true">
    <EntitySet Name="Categories" EntityType="NorthwindModel.Category" />
    <EntitySet Name="CustomerDemographics" EntityType="NorthwindModel.CustomerDemographic" />
    <EntitySet Name="Customers" EntityType="NorthwindModel.Customer" />
    <EntitySet Name="Employees" EntityType="NorthwindModel.Employee" />
    <EntitySet Name="Order_Details" EntityType="NorthwindModel.Order_Details" />
    <EntitySet Name="Orders" EntityType="NorthwindModel.Order" />
    <EntitySet Name="Products" EntityType="NorthwindModel.Product" />
    <EntitySet Name="Regions" EntityType="NorthwindModel.Region" />
    <EntitySet Name="Shippers" EntityType="NorthwindModel.Shipper" />
    <EntitySet Name="Suppliers" EntityType="NorthwindModel.Supplier" />
    <EntitySet Name="Territories" EntityType="NorthwindModel.Territory" />
    <AssociationSet Name="FK_Products_Categories" Association="NorthwindModel.FK_Products_Categories">
      <End Role="Categories" EntitySet="Categories" />
      <End Role="Products" EntitySet="Products" />
    </AssociationSet>
    <AssociationSet Name="FK_Orders_Customers" Association="NorthwindModel.FK_Orders_Customers">
      <End Role="Customers" EntitySet="Customers" />
      <End Role="Orders" EntitySet="Orders" />
    </AssociationSet>
    <AssociationSet Name="FK_Employees_Employees" Association="NorthwindModel.FK_Employees_Employees">
      <End Role="Employees" EntitySet="Employees" />
      <End Role="Employees1" EntitySet="Employees" />
    </AssociationSet>
    <AssociationSet Name="FK_Orders_Employees" Association="NorthwindModel.FK_Orders_Employees">
      <End Role="Employees" EntitySet="Employees" />
      <End Role="Orders" EntitySet="Orders" />
    </AssociationSet>
    <AssociationSet Name="FK_Order_Details_Orders" Association="NorthwindModel.FK_Order_Details_Orders">
      <End Role="Orders" EntitySet="Orders" />
      <End Role="Order_Details" EntitySet="Order_Details" />
    </AssociationSet>
    <AssociationSet Name="FK_Order_Details_Products" Association="NorthwindModel.FK_Order_Details_Products">
      <End Role="Products" EntitySet="Products" />
      <End Role="Order_Details" EntitySet="Order_Details" />
    </AssociationSet>
    <AssociationSet Name="FK_Orders_Shippers" Association="NorthwindModel.FK_Orders_Shippers">
      <End Role="Shippers" EntitySet="Shippers" />
      <End Role="Orders" EntitySet="Orders" />
    </AssociationSet>
    <AssociationSet Name="FK_Products_Suppliers" Association="NorthwindModel.FK_Products_Suppliers">
      <End Role="Suppliers" EntitySet="Suppliers" />
      <End Role="Products" EntitySet="Products" />
    </AssociationSet>
    <AssociationSet Name="FK_Territories_Region" Association="NorthwindModel.FK_Territories_Region">
      <End Role="Region" EntitySet="Regions" />
      <End Role="Territories" EntitySet="Territories" />
    </AssociationSet>
    <AssociationSet Name="CustomerCustomerDemo" Association="NorthwindModel.CustomerCustomerDemo">
      <End Role="CustomerDemographics" EntitySet="CustomerDemographics" />
      <End Role="Customers" EntitySet="Customers" />
    </AssociationSet>
    <AssociationSet Name="EmployeeTerritories" Association="NorthwindModel.EmployeeTerritories">
      <End Role="Employees" EntitySet="Employees" />
      <End Role="Territories" EntitySet="Territories" />
    </AssociationSet>
  </EntityContainer>
  <EntityType Name="Category">
    <Key>
      <PropertyRef Name="CategoryID" />
    </Key>
    <Property Name="CategoryID" Type="Int32" Nullable="false" annotation:StoreGeneratedPattern="Identity" />
    <Property Name="CategoryName" Type="String" Nullable="false" MaxLength="15" Unicode="true" FixedLength="false" />
    <Property Name="Description" Type="String" MaxLength="Max" Unicode="true" FixedLength="false" />
    <Property Name="Picture" Type="Binary" MaxLength="Max" FixedLength="false" />
    <NavigationProperty Name="Products" Relationship="NorthwindModel.FK_Products_Categories" FromRole="Categories" ToRole="Products" />
  </EntityType>
  <EntityType Name="CustomerDemographic">
    <Key>
      <PropertyRef Name="CustomerTypeID" />
    </Key>
    <Property Name="CustomerTypeID" Type="String" Nullable="false" MaxLength="10" Unicode="true" FixedLength="true" />
    <Property Name="CustomerDesc" Type="String" MaxLength="Max" Unicode="true" FixedLength="false" />
    <NavigationProperty Name="Customers" Relationship="NorthwindModel.CustomerCustomerDemo" FromRole="CustomerDemographics" ToRole="Customers" />
  </EntityType>
  <EntityType Name="Customer">
    <Key>
      <PropertyRef Name="CustomerID" />
    </Key>
    <Property Name="CustomerID" Type="String" Nullable="false" MaxLength="5" Unicode="true" FixedLength="true" />
    <Property Name="CompanyName" Type="String" Nullable="false" MaxLength="40" Unicode="true" FixedLength="false" />
    <Property Name="ContactName" Type="String" MaxLength="30" Unicode="true" FixedLength="false" />
    <Property Name="ContactTitle" Type="String" MaxLength="30" Unicode="true" FixedLength="false" />
    <Property Name="Address" Type="String" MaxLength="60" Unicode="true" FixedLength="false" />
    <Property Name="City" Type="String" MaxLength="15" Unicode="true" FixedLength="false" />
    <Property Name="Region" Type="String" MaxLength="15" Unicode="true" FixedLength="false" />
    <Property Name="PostalCode" Type="String" MaxLength="10" Unicode="true" FixedLength="false" />
    <Property Name="Country" Type="String" MaxLength="15" Unicode="true" FixedLength="false" />
    <Property Name="Phone" Type="String" MaxLength="24" Unicode="true" FixedLength="false" />
    <Property Name="Fax" Type="String" MaxLength="24" Unicode="true" FixedLength="false" />
    <NavigationProperty Name="Orders" Relationship="NorthwindModel.FK_Orders_Customers" FromRole="Customers" ToRole="Orders" />
    <NavigationProperty Name="CustomerDemographics" Relationship="NorthwindModel.CustomerCustomerDemo" FromRole="Customers" ToRole="CustomerDemographics" />
  </EntityType>
  <EntityType Name="Employee">
    <Key>
      <PropertyRef Name="EmployeeID" />
    </Key>
    <Property Name="EmployeeID" Type="Int32" Nullable="false" annotation:StoreGeneratedPattern="Identity" />
    <Property Name="LastName" Type="String" Nullable="false" MaxLength="20" Unicode="true" FixedLength="false" />
    <Property Name="FirstName" Type="String" Nullable="false" MaxLength="10" Unicode="true" FixedLength="false" />
    <Property Name="Title" Type="String" MaxLength="30" Unicode="true" FixedLength="false" />
    <Property Name="TitleOfCourtesy" Type="String" MaxLength="25" Unicode="true" FixedLength="false" />
    <Property Name="BirthDate" Type="DateTime" />
    <Property Name="HireDate" Type="DateTime" />
    <Property Name="Address" Type="String" MaxLength="60" Unicode="true" FixedLength="false" />
    <Property Name="City" Type="String" MaxLength="15" Unicode="true" FixedLength="false" />
    <Property Name="Region" Type="String" MaxLength="15" Unicode="true" FixedLength="false" />
    <Property Name="PostalCode" Type="String" MaxLength="10" Unicode="true" FixedLength="false" />
    <Property Name="Country" Type="String" MaxLength="15" Unicode="true" FixedLength="false" />
    <Property Name="HomePhone" Type="String" MaxLength="24" Unicode="true" FixedLength="false" />
    <Property Name="Extension" Type="String" MaxLength="4" Unicode="true" FixedLength="false" />
    <Property Name="Photo" Type="Binary" MaxLength="Max" FixedLength="false" />
    <Property Name="Notes" Type="String" MaxLength="Max" Unicode="true" FixedLength="false" />
    <Property Name="ReportsTo" Type="Int32" />
    <Property Name="PhotoPath" Type="String" MaxLength="255" Unicode="true" FixedLength="false" />
    <NavigationProperty Name="Employees1" Relationship="NorthwindModel.FK_Employees_Employees" FromRole="Employees" ToRole="Employees1" />
    <NavigationProperty Name="Employee1" Relationship="NorthwindModel.FK_Employees_Employees" FromRole="Employees1" ToRole="Employees" />
    <NavigationProperty Name="Orders" Relationship="NorthwindModel.FK_Orders_Employees" FromRole="Employees" ToRole="Orders" />
    <NavigationProperty Name="Territories" Relationship="NorthwindModel.EmployeeTerritories" FromRole="Employees" ToRole="Territories" />
  </EntityType>
  <EntityType Name="Order_Details">
    <Key>
      <PropertyRef Name="OrderID" />
      <PropertyRef Name="ProductID" />
    </Key>
    <Property Name="OrderID" Type="Int32" Nullable="false" />
    <Property Name="ProductID" Type="Int32" Nullable="false" />
    <Property Name="UnitPrice" Type="Decimal" Nullable="false" Precision="19" Scale="4" />
    <Property Name="Quantity" Type="Int16" Nullable="false" />
    <Property Name="Discount" Type="Single" Nullable="false" />
    <NavigationProperty Name="Order" Relationship="NorthwindModel.FK_Order_Details_Orders" FromRole="Order_Details" ToRole="Orders" />
    <NavigationProperty Name="Product" Relationship="NorthwindModel.FK_Order_Details_Products" FromRole="Order_Details" ToRole="Products" />
  </EntityType>
  <EntityType Name="Order">
    <Key>
      <PropertyRef Name="OrderID" />
    </Key>
    <Property Name="OrderID" Type="Int32" Nullable="false" annotation:StoreGeneratedPattern="Identity" />
    <Property Name="CustomerID" Type="String" MaxLength="5" Unicode="true" FixedLength="true" />
    <Property Name="EmployeeID" Type="Int32" />
    <Property Name="OrderDate" Type="DateTime" />
    <Property Name="RequiredDate" Type="DateTime" />
    <Property Name="ShippedDate" Type="DateTime" />
    <Property Name="ShipVia" Type="Int32" />
    <Property Name="Freight" Type="Decimal" Precision="19" Scale="4" />
    <Property Name="ShipName" Type="String" MaxLength="40" Unicode="true" FixedLength="false" />
    <Property Name="ShipAddress" Type="String" MaxLength="60" Unicode="true" FixedLength="false" />
    <Property Name="ShipCity" Type="String" MaxLength="15" Unicode="true" FixedLength="false" />
    <Property Name="ShipRegion" Type="String" MaxLength="15" Unicode="true" FixedLength="false" />
    <Property Name="ShipPostalCode" Type="String" MaxLength="10" Unicode="true" FixedLength="false" />
    <Property Name="ShipCountry" Type="String" MaxLength="15" Unicode="true" FixedLength="false" />
    <NavigationProperty Name="Customer" Relationship="NorthwindModel.FK_Orders_Customers" FromRole="Orders" ToRole="Customers" />
    <NavigationProperty Name="Employee" Relationship="NorthwindModel.FK_Orders_Employees" FromRole="Orders" ToRole="Employees" />
    <NavigationProperty Name="Order_Details" Relationship="NorthwindModel.FK_Order_Details_Orders" FromRole="Orders" ToRole="Order_Details" />
    <NavigationProperty Name="Shipper" Relationship="NorthwindModel.FK_Orders_Shippers" FromRole="Orders" ToRole="Shippers" />
  </EntityType>
  <EntityType Name="Product">
    <Key>
      <PropertyRef Name="ProductID" />
    </Key>
    <Property Name="ProductID" Type="Int32" Nullable="false" annotation:StoreGeneratedPattern="Identity" />
    <Property Name="ProductName" Type="String" Nullable="false" MaxLength="40" Unicode="true" FixedLength="false" />
    <Property Name="SupplierID" Type="Int32" />
    <Property Name="CategoryID" Type="Int32" />
    <Property Name="QuantityPerUnit" Type="String" MaxLength="20" Unicode="true" FixedLength="false" />
    <Property Name="UnitPrice" Type="Decimal" Precision="19" Scale="4" />
    <Property Name="UnitsInStock" Type="Int16" />
    <Property Name="UnitsOnOrder" Type="Int16" />
    <Property Name="ReorderLevel" Type="Int16" />
    <Property Name="Discontinued" Type="Boolean" Nullable="false" />
    <NavigationProperty Name="Category" Relationship="NorthwindModel.FK_Products_Categories" FromRole="Products" ToRole="Categories" />
    <NavigationProperty Name="Order_Details" Relationship="NorthwindModel.FK_Order_Details_Products" FromRole="Products" ToRole="Order_Details" />
    <NavigationProperty Name="Supplier" Relationship="NorthwindModel.FK_Products_Suppliers" FromRole="Products" ToRole="Suppliers" />
  </EntityType>
  <EntityType Name="Region">
    <Key>
      <PropertyRef Name="RegionID" />
    </Key>
    <Property Name="RegionID" Type="Int32" Nullable="false" />
    <Property Name="RegionDescription" Type="String" Nullable="false" MaxLength="50" Unicode="true" FixedLength="true" />
    <NavigationProperty Name="Territories" Relationship="NorthwindModel.FK_Territories_Region" FromRole="Region" ToRole="Territories" />
  </EntityType>
  <EntityType Name="Shipper">
    <Key>
      <PropertyRef Name="ShipperID" />
    </Key>
    <Property Name="ShipperID" Type="Int32" Nullable="false" annotation:StoreGeneratedPattern="Identity" />
    <Property Name="CompanyName" Type="String" Nullable="false" MaxLength="40" Unicode="true" FixedLength="false" />
    <Property Name="Phone" Type="String" MaxLength="24" Unicode="true" FixedLength="false" />
    <NavigationProperty Name="Orders" Relationship="NorthwindModel.FK_Orders_Shippers" FromRole="Shippers" ToRole="Orders" />
  </EntityType>
  <EntityType Name="Supplier">
    <Key>
      <PropertyRef Name="SupplierID" />
    </Key>
    <Property Name="SupplierID" Type="Int32" Nullable="false" annotation:StoreGeneratedPattern="Identity" />
    <Property Name="CompanyName" Type="String" Nullable="false" MaxLength="40" Unicode="true" FixedLength="false" />
    <Property Name="ContactName" Type="String" MaxLength="30" Unicode="true" FixedLength="false" />
    <Property Name="ContactTitle" Type="String" MaxLength="30" Unicode="true" FixedLength="false" />
    <Property Name="Address" Type="String" MaxLength="60" Unicode="true" FixedLength="false" />
    <Property Name="City" Type="String" MaxLength="15" Unicode="true" FixedLength="false" />
    <Property Name="Region" Type="String" MaxLength="15" Unicode="true" FixedLength="false" />
    <Property Name="PostalCode" Type="String" MaxLength="10" Unicode="true" FixedLength="false" />
    <Property Name="Country" Type="String" MaxLength="15" Unicode="true" FixedLength="false" />
    <Property Name="Phone" Type="String" MaxLength="24" Unicode="true" FixedLength="false" />
    <Property Name="Fax" Type="String" MaxLength="24" Unicode="true" FixedLength="false" />
    <Property Name="HomePage" Type="String" MaxLength="Max" Unicode="true" FixedLength="false" />
    <NavigationProperty Name="Products" Relationship="NorthwindModel.FK_Products_Suppliers" FromRole="Suppliers" ToRole="Products" />
  </EntityType>
  <EntityType Name="Territory">
    <Key>
      <PropertyRef Name="TerritoryID" />
    </Key>
    <Property Name="TerritoryID" Type="String" Nullable="false" MaxLength="20" Unicode="true" FixedLength="false" />
    <Property Name="TerritoryDescription" Type="String" Nullable="false" MaxLength="50" Unicode="true" FixedLength="true" />
    <Property Name="RegionID" Type="Int32" Nullable="false" />
    <NavigationProperty Name="Region" Relationship="NorthwindModel.FK_Territories_Region" FromRole="Territories" ToRole="Region" />
    <NavigationProperty Name="Employees" Relationship="NorthwindModel.EmployeeTerritories" FromRole="Territories" ToRole="Employees" />
  </EntityType>
  <Association Name="FK_Products_Categories">
    <End Role="Categories" Type="NorthwindModel.Category" Multiplicity="0..1" />
    <End Role="Products" Type="NorthwindModel.Product" Multiplicity="*" />
    <ReferentialConstraint>
      <Principal Role="Categories">
        <PropertyRef Name="CategoryID" />
      </Principal>
      <Dependent Role="Products">
        <PropertyRef Name="CategoryID" />
      </Dependent>
    </ReferentialConstraint>
  </Association>
  <Association Name="FK_Orders_Customers">
    <End Role="Customers" Type="NorthwindModel.Customer" Multiplicity="0..1" />
    <End Role="Orders" Type="NorthwindModel.Order" Multiplicity="*" />
    <ReferentialConstraint>
      <Principal Role="Customers">
        <PropertyRef Name="CustomerID" />
      </Principal>
      <Dependent Role="Orders">
        <PropertyRef Name="CustomerID" />
      </Dependent>
    </ReferentialConstraint>
  </Association>
  <Association Name="FK_Employees_Employees">
    <End Role="Employees" Type="NorthwindModel.Employee" Multiplicity="0..1" />
    <End Role="Employees1" Type="NorthwindModel.Employee" Multiplicity="*" />
    <ReferentialConstraint>
      <Principal Role="Employees">
        <PropertyRef Name="EmployeeID" />
      </Principal>
      <Dependent Role="Employees1">
        <PropertyRef Name="ReportsTo" />
      </Dependent>
    </ReferentialConstraint>
  </Association>
  <Association Name="FK_Orders_Employees">
    <End Role="Employees" Type="NorthwindModel.Employee" Multiplicity="0..1" />
    <End Role="Orders" Type="NorthwindModel.Order" Multiplicity="*" />
    <ReferentialConstraint>
      <Principal Role="Employees">
        <PropertyRef Name="EmployeeID" />
      </Principal>
      <Dependent Role="Orders">
        <PropertyRef Name="EmployeeID" />
      </Dependent>
    </ReferentialConstraint>
  </Association>
  <Association Name="FK_Order_Details_Orders">
    <End Role="Orders" Type="NorthwindModel.Order" Multiplicity="1" />
    <End Role="Order_Details" Type="NorthwindModel.Order_Details" Multiplicity="*" />
    <ReferentialConstraint>
      <Principal Role="Orders">
        <PropertyRef Name="OrderID" />
      </Principal>
      <Dependent Role="Order_Details">
        <PropertyRef Name="OrderID" />
      </Dependent>
    </ReferentialConstraint>
  </Association>
  <Association Name="FK_Order_Details_Products">
    <End Role="Products" Type="NorthwindModel.Product" Multiplicity="1" />
    <End Role="Order_Details" Type="NorthwindModel.Order_Details" Multiplicity="*" />
    <ReferentialConstraint>
      <Principal Role="Products">
        <PropertyRef Name="ProductID" />
      </Principal>
      <Dependent Role="Order_Details">
        <PropertyRef Name="ProductID" />
      </Dependent>
    </ReferentialConstraint>
  </Association>
  <Association Name="FK_Orders_Shippers">
    <End Role="Shippers" Type="NorthwindModel.Shipper" Multiplicity="0..1" />
    <End Role="Orders" Type="NorthwindModel.Order" Multiplicity="*" />
    <ReferentialConstraint>
      <Principal Role="Shippers">
        <PropertyRef Name="ShipperID" />
      </Principal>
      <Dependent Role="Orders">
        <PropertyRef Name="ShipVia" />
      </Dependent>
    </ReferentialConstraint>
  </Association>
  <Association Name="FK_Products_Suppliers">
    <End Role="Suppliers" Type="NorthwindModel.Supplier" Multiplicity="0..1" />
    <End Role="Products" Type="NorthwindModel.Product" Multiplicity="*" />
    <ReferentialConstraint>
      <Principal Role="Suppliers">
        <PropertyRef Name="SupplierID" />
      </Principal>
      <Dependent Role="Products">
        <PropertyRef Name="SupplierID" />
      </Dependent>
    </ReferentialConstraint>
  </Association>
  <Association Name="FK_Territories_Region">
    <End Role="Region" Type="NorthwindModel.Region" Multiplicity="1" />
    <End Role="Territories" Type="NorthwindModel.Territory" Multiplicity="*" />
    <ReferentialConstraint>
      <Principal Role="Region">
        <PropertyRef Name="RegionID" />
      </Principal>
      <Dependent Role="Territories">
        <PropertyRef Name="RegionID" />
      </Dependent>
    </ReferentialConstraint>
  </Association>
  <Association Name="CustomerCustomerDemo">
    <End Role="CustomerDemographics" Type="NorthwindModel.CustomerDemographic" Multiplicity="*" />
    <End Role="Customers" Type="NorthwindModel.Customer" Multiplicity="*" />
  </Association>
  <Association Name="EmployeeTerritories">
    <End Role="Employees" Type="NorthwindModel.Employee" Multiplicity="*" />
    <End Role="Territories" Type="NorthwindModel.Territory" Multiplicity="*" />
  </Association>
</Schema>�<?xml version="1.0" encoding="utf-8"?>
<Schema Namespace="DXGridServerModeDBModel" Alias="Self" xmlns:annotation="http://schemas.microsoft.com/ado/2009/02/edm/annotation" xmlns="http://schemas.microsoft.com/ado/2008/09/edm">
  <EntityContainer Name="DXGridServerModeDBEntities" annotation:LazyLoadingEnabled="true">
    <EntitySet Name="EFServerModeTestClasses" EntityType="DXGridServerModeDBModel.EFServerModeTestClass" />
  </EntityContainer>
  <EntityType Name="EFServerModeTestClass">
    <Key>
      <PropertyRef Name="OID" />
    </Key>
    <Property Name="OID" Type="Int32" Nullable="false" annotation:StoreGeneratedPattern="Identity" />
    <Property Name="Subject" Type="String" MaxLength="100" Unicode="true" FixedLength="false" />
    <Property Name="From" Type="String" MaxLength="100" Unicode="true" FixedLength="false" />
    <Property Name="Sent" Type="DateTime" />
    <Property Name="Size" Type="Int64" />
    <Property Name="HasAttachment" Type="Boolean" />
  </EntityType>
</Schema>�&<?xml version="1.0" encoding="utf-8"?>
<Mapping Space="C-S" xmlns="http://schemas.microsoft.com/ado/2008/09/mapping/cs">
  <EntityContainerMapping StorageEntityContainer="NorthwindModelStoreContainer" CdmEntityContainer="NorthwindEntities">
    <EntitySetMapping Name="Categories">
      <EntityTypeMapping TypeName="IsTypeOf(NorthwindModel.Category)">
        <MappingFragment StoreEntitySet="Categories">
          <ScalarProperty Name="CategoryID" ColumnName="CategoryID" />
          <ScalarProperty Name="CategoryName" ColumnName="CategoryName" />
          <ScalarProperty Name="Description" ColumnName="Description" />
          <ScalarProperty Name="Picture" ColumnName="Picture" />
        </MappingFragment>
      </EntityTypeMapping>
    </EntitySetMapping>
    <EntitySetMapping Name="CustomerDemographics">
      <EntityTypeMapping TypeName="IsTypeOf(NorthwindModel.CustomerDemographic)">
        <MappingFragment StoreEntitySet="CustomerDemographics">
          <ScalarProperty Name="CustomerTypeID" ColumnName="CustomerTypeID" />
          <ScalarProperty Name="CustomerDesc" ColumnName="CustomerDesc" />
        </MappingFragment>
      </EntityTypeMapping>
    </EntitySetMapping>
    <EntitySetMapping Name="Customers">
      <EntityTypeMapping TypeName="IsTypeOf(NorthwindModel.Customer)">
        <MappingFragment StoreEntitySet="Customers">
          <ScalarProperty Name="CustomerID" ColumnName="CustomerID" />
          <ScalarProperty Name="CompanyName" ColumnName="CompanyName" />
          <ScalarProperty Name="ContactName" ColumnName="ContactName" />
          <ScalarProperty Name="ContactTitle" ColumnName="ContactTitle" />
          <ScalarProperty Name="Address" ColumnName="Address" />
          <ScalarProperty Name="City" ColumnName="City" />
          <ScalarProperty Name="Region" ColumnName="Region" />
          <ScalarProperty Name="PostalCode" ColumnName="PostalCode" />
          <ScalarProperty Name="Country" ColumnName="Country" />
          <ScalarProperty Name="Phone" ColumnName="Phone" />
          <ScalarProperty Name="Fax" ColumnName="Fax" />
        </MappingFragment>
      </EntityTypeMapping>
    </EntitySetMapping>
    <EntitySetMapping Name="Employees">
      <EntityTypeMapping TypeName="IsTypeOf(NorthwindModel.Employee)">
        <MappingFragment StoreEntitySet="Employees">
          <ScalarProperty Name="EmployeeID" ColumnName="EmployeeID" />
          <ScalarProperty Name="LastName" ColumnName="LastName" />
          <ScalarProperty Name="FirstName" ColumnName="FirstName" />
          <ScalarProperty Name="Title" ColumnName="Title" />
          <ScalarProperty Name="TitleOfCourtesy" ColumnName="TitleOfCourtesy" />
          <ScalarProperty Name="BirthDate" ColumnName="BirthDate" />
          <ScalarProperty Name="HireDate" ColumnName="HireDate" />
          <ScalarProperty Name="Address" ColumnName="Address" />
          <ScalarProperty Name="City" ColumnName="City" />
          <ScalarProperty Name="Region" ColumnName="Region" />
          <ScalarProperty Name="PostalCode" ColumnName="PostalCode" />
          <ScalarProperty Name="Country" ColumnName="Country" />
          <ScalarProperty Name="HomePhone" ColumnName="HomePhone" />
          <ScalarProperty Name="Extension" ColumnName="Extension" />
          <ScalarProperty Name="Photo" ColumnName="Photo" />
          <ScalarProperty Name="Notes" ColumnName="Notes" />
          <ScalarProperty Name="ReportsTo" ColumnName="ReportsTo" />
          <ScalarProperty Name="PhotoPath" ColumnName="PhotoPath" />
        </MappingFragment>
      </EntityTypeMapping>
    </EntitySetMapping>
    <EntitySetMapping Name="Order_Details">
      <EntityTypeMapping TypeName="IsTypeOf(NorthwindModel.Order_Details)">
        <MappingFragment StoreEntitySet="Order Details">
          <ScalarProperty Name="OrderID" ColumnName="OrderID" />
          <ScalarProperty Name="ProductID" ColumnName="ProductID" />
          <ScalarProperty Name="UnitPrice" ColumnName="UnitPrice" />
          <ScalarProperty Name="Quantity" ColumnName="Quantity" />
          <ScalarProperty Name="Discount" ColumnName="Discount" />
        </MappingFragment>
      </EntityTypeMapping>
    </EntitySetMapping>
    <EntitySetMapping Name="Orders">
      <EntityTypeMapping TypeName="IsTypeOf(NorthwindModel.Order)">
        <MappingFragment StoreEntitySet="Orders">
          <ScalarProperty Name="OrderID" ColumnName="OrderID" />
          <ScalarProperty Name="CustomerID" ColumnName="CustomerID" />
          <ScalarProperty Name="EmployeeID" ColumnName="EmployeeID" />
          <ScalarProperty Name="OrderDate" ColumnName="OrderDate" />
          <ScalarProperty Name="RequiredDate" ColumnName="RequiredDate" />
          <ScalarProperty Name="ShippedDate" ColumnName="ShippedDate" />
          <ScalarProperty Name="ShipVia" ColumnName="ShipVia" />
          <ScalarProperty Name="Freight" ColumnName="Freight" />
          <ScalarProperty Name="ShipName" ColumnName="ShipName" />
          <ScalarProperty Name="ShipAddress" ColumnName="ShipAddress" />
          <ScalarProperty Name="ShipCity" ColumnName="ShipCity" />
          <ScalarProperty Name="ShipRegion" ColumnName="ShipRegion" />
          <ScalarProperty Name="ShipPostalCode" ColumnName="ShipPostalCode" />
          <ScalarProperty Name="ShipCountry" ColumnName="ShipCountry" />
        </MappingFragment>
      </EntityTypeMapping>
    </EntitySetMapping>
    <EntitySetMapping Name="Products">
      <EntityTypeMapping TypeName="IsTypeOf(NorthwindModel.Product)">
        <MappingFragment StoreEntitySet="Products">
          <ScalarProperty Name="ProductID" ColumnName="ProductID" />
          <ScalarProperty Name="ProductName" ColumnName="ProductName" />
          <ScalarProperty Name="SupplierID" ColumnName="SupplierID" />
          <ScalarProperty Name="CategoryID" ColumnName="CategoryID" />
          <ScalarProperty Name="QuantityPerUnit" ColumnName="QuantityPerUnit" />
          <ScalarProperty Name="UnitPrice" ColumnName="UnitPrice" />
          <ScalarProperty Name="UnitsInStock" ColumnName="UnitsInStock" />
          <ScalarProperty Name="UnitsOnOrder" ColumnName="UnitsOnOrder" />
          <ScalarProperty Name="ReorderLevel" ColumnName="ReorderLevel" />
          <ScalarProperty Name="Discontinued" ColumnName="Discontinued" />
        </MappingFragment>
      </EntityTypeMapping>
    </EntitySetMapping>
    <EntitySetMapping Name="Regions">
      <EntityTypeMapping TypeName="IsTypeOf(NorthwindModel.Region)">
        <MappingFragment StoreEntitySet="Regions">
          <ScalarProperty Name="RegionID" ColumnName="RegionID" />
          <ScalarProperty Name="RegionDescription" ColumnName="RegionDescription" />
        </MappingFragment>
      </EntityTypeMapping>
    </EntitySetMapping>
    <EntitySetMapping Name="Shippers">
      <EntityTypeMapping TypeName="IsTypeOf(NorthwindModel.Shipper)">
        <MappingFragment StoreEntitySet="Shippers">
          <ScalarProperty Name="ShipperID" ColumnName="ShipperID" />
          <ScalarProperty Name="CompanyName" ColumnName="CompanyName" />
          <ScalarProperty Name="Phone" ColumnName="Phone" />
        </MappingFragment>
      </EntityTypeMapping>
    </EntitySetMapping>
    <EntitySetMapping Name="Suppliers">
      <EntityTypeMapping TypeName="IsTypeOf(NorthwindModel.Supplier)">
        <MappingFragment StoreEntitySet="Suppliers">
          <ScalarProperty Name="SupplierID" ColumnName="SupplierID" />
          <ScalarProperty Name="CompanyName" ColumnName="CompanyName" />
          <ScalarProperty Name="ContactName" ColumnName="ContactName" />
          <ScalarProperty Name="ContactTitle" ColumnName="ContactTitle" />
          <ScalarProperty Name="Address" ColumnName="Address" />
          <ScalarProperty Name="City" ColumnName="City" />
          <ScalarProperty Name="Region" ColumnName="Region" />
          <ScalarProperty Name="PostalCode" ColumnName="PostalCode" />
          <ScalarProperty Name="Country" ColumnName="Country" />
          <ScalarProperty Name="Phone" ColumnName="Phone" />
          <ScalarProperty Name="Fax" ColumnName="Fax" />
          <ScalarProperty Name="HomePage" ColumnName="HomePage" />
        </MappingFragment>
      </EntityTypeMapping>
    </EntitySetMapping>
    <EntitySetMapping Name="Territories">
      <EntityTypeMapping TypeName="IsTypeOf(NorthwindModel.Territory)">
        <MappingFragment StoreEntitySet="Territories">
          <ScalarProperty Name="TerritoryID" ColumnName="TerritoryID" />
          <ScalarProperty Name="TerritoryDescription" ColumnName="TerritoryDescription" />
          <ScalarProperty Name="RegionID" ColumnName="RegionID" />
        </MappingFragment>
      </EntityTypeMapping>
    </EntitySetMapping>
    <AssociationSetMapping Name="CustomerCustomerDemo" TypeName="NorthwindModel.CustomerCustomerDemo" StoreEntitySet="CustomerCustomerDemo">
      <EndProperty Name="CustomerDemographics">
        <ScalarProperty Name="CustomerTypeID" ColumnName="CustomerDemographics_CustomerTypeID" />
      </EndProperty>
      <EndProperty Name="Customers">
        <ScalarProperty Name="CustomerID" ColumnName="Customers_CustomerID" />
      </EndProperty>
    </AssociationSetMapping>
    <AssociationSetMapping Name="EmployeeTerritories" TypeName="NorthwindModel.EmployeeTerritories" StoreEntitySet="EmployeeTerritories">
      <EndProperty Name="Employees">
        <ScalarProperty Name="EmployeeID" ColumnName="Employees_EmployeeID" />
      </EndProperty>
      <EndProperty Name="Territories">
        <ScalarProperty Name="TerritoryID" ColumnName="Territories_TerritoryID" />
      </EndProperty>
    </AssociationSetMapping>
  </EntityContainerMapping>
</Mapping>�<?xml version="1.0" encoding="utf-8"?>
<Mapping Space="C-S" xmlns="http://schemas.microsoft.com/ado/2008/09/mapping/cs">
  <EntityContainerMapping StorageEntityContainer="DXGridServerModeDBModelStoreContainer" CdmEntityContainer="DXGridServerModeDBEntities">
    <EntitySetMapping Name="EFServerModeTestClasses">
      <EntityTypeMapping TypeName="DXGridServerModeDBModel.EFServerModeTestClass">
        <MappingFragment StoreEntitySet="WpfServerSideGridTest">
          <ScalarProperty Name="OID" ColumnName="OID" />
          <ScalarProperty Name="Subject" ColumnName="Subject" />
          <ScalarProperty Name="From" ColumnName="From" />
          <ScalarProperty Name="Sent" ColumnName="Sent" />
          <ScalarProperty Name="Size" ColumnName="Size" />
          <ScalarProperty Name="HasAttachment" ColumnName="HasAttachment" />
        </MappingFragment>
      </EntityTypeMapping>
    </EntitySetMapping>
  </EntityContainerMapping>
</Mapping>MP<?xml version="1.0" encoding="utf-8"?>
<Schema Namespace="NorthwindModel.Store" Alias="Self" Provider="System.Data.SqlClient" ProviderManifestToken="2008" xmlns:store="http://schemas.microsoft.com/ado/2007/12/edm/EntityStoreSchemaGenerator" xmlns="http://schemas.microsoft.com/ado/2009/02/edm/ssdl">
  <EntityContainer Name="NorthwindModelStoreContainer">
    <EntitySet Name="Categories" EntityType="NorthwindModel.Store.Categories" store:Type="Tables" Schema="dbo" />
    <EntitySet Name="CustomerDemographics" EntityType="NorthwindModel.Store.CustomerDemographics" store:Type="Tables" Schema="dbo" />
    <EntitySet Name="Customers" EntityType="NorthwindModel.Store.Customers" store:Type="Tables" Schema="dbo" />
    <EntitySet Name="Employees" EntityType="NorthwindModel.Store.Employees" store:Type="Tables" Schema="dbo" />
    <EntitySet Name="Order Details" EntityType="NorthwindModel.Store.Order Details" store:Type="Tables" Schema="dbo" />
    <EntitySet Name="Orders" EntityType="NorthwindModel.Store.Orders" store:Type="Tables" Schema="dbo" />
    <EntitySet Name="Products" EntityType="NorthwindModel.Store.Products" store:Type="Tables" Schema="dbo" />
    <EntitySet Name="Regions" EntityType="NorthwindModel.Store.Regions" store:Type="Tables" Schema="dbo" />
    <EntitySet Name="Shippers" EntityType="NorthwindModel.Store.Shippers" store:Type="Tables" Schema="dbo" />
    <EntitySet Name="Suppliers" EntityType="NorthwindModel.Store.Suppliers" store:Type="Tables" Schema="dbo" />
    <EntitySet Name="Territories" EntityType="NorthwindModel.Store.Territories" store:Type="Tables" Schema="dbo" />
    <EntitySet Name="CustomerCustomerDemo" EntityType="NorthwindModel.Store.CustomerCustomerDemo" store:Type="Tables" Schema="dbo" />
    <EntitySet Name="EmployeeTerritories" EntityType="NorthwindModel.Store.EmployeeTerritories" store:Type="Tables" Schema="dbo" />
    <AssociationSet Name="FK_Products_Categories" Association="NorthwindModel.Store.FK_Products_Categories">
      <End Role="Categories" EntitySet="Categories" />
      <End Role="Products" EntitySet="Products" />
    </AssociationSet>
    <AssociationSet Name="FK_Orders_Customers" Association="NorthwindModel.Store.FK_Orders_Customers">
      <End Role="Customers" EntitySet="Customers" />
      <End Role="Orders" EntitySet="Orders" />
    </AssociationSet>
    <AssociationSet Name="FK_Employees_Employees" Association="NorthwindModel.Store.FK_Employees_Employees">
      <End Role="Employees" EntitySet="Employees" />
      <End Role="Employees1" EntitySet="Employees" />
    </AssociationSet>
    <AssociationSet Name="FK_Orders_Employees" Association="NorthwindModel.Store.FK_Orders_Employees">
      <End Role="Employees" EntitySet="Employees" />
      <End Role="Orders" EntitySet="Orders" />
    </AssociationSet>
    <AssociationSet Name="FK_Order_Details_Orders" Association="NorthwindModel.Store.FK_Order_Details_Orders">
      <End Role="Orders" EntitySet="Orders" />
      <End Role="Order_Details" EntitySet="Order Details" />
    </AssociationSet>
    <AssociationSet Name="FK_Order_Details_Products" Association="NorthwindModel.Store.FK_Order_Details_Products">
      <End Role="Products" EntitySet="Products" />
      <End Role="Order_Details" EntitySet="Order Details" />
    </AssociationSet>
    <AssociationSet Name="FK_Orders_Shippers" Association="NorthwindModel.Store.FK_Orders_Shippers">
      <End Role="Shippers" EntitySet="Shippers" />
      <End Role="Orders" EntitySet="Orders" />
    </AssociationSet>
    <AssociationSet Name="FK_Products_Suppliers" Association="NorthwindModel.Store.FK_Products_Suppliers">
      <End Role="Suppliers" EntitySet="Suppliers" />
      <End Role="Products" EntitySet="Products" />
    </AssociationSet>
    <AssociationSet Name="FK_Territories_Region" Association="NorthwindModel.Store.FK_Territories_Region">
      <End Role="Region" EntitySet="Regions" />
      <End Role="Territories" EntitySet="Territories" />
    </AssociationSet>
    <AssociationSet Name="FK_CustomerCustomerDemo_CustomerDemographics" Association="NorthwindModel.Store.FK_CustomerCustomerDemo_CustomerDemographics">
      <End Role="CustomerDemographics" EntitySet="CustomerDemographics" />
      <End Role="CustomerCustomerDemo" EntitySet="CustomerCustomerDemo" />
    </AssociationSet>
    <AssociationSet Name="FK_CustomerCustomerDemo_Customers" Association="NorthwindModel.Store.FK_CustomerCustomerDemo_Customers">
      <End Role="Customers" EntitySet="Customers" />
      <End Role="CustomerCustomerDemo" EntitySet="CustomerCustomerDemo" />
    </AssociationSet>
    <AssociationSet Name="FK_EmployeeTerritories_Employees" Association="NorthwindModel.Store.FK_EmployeeTerritories_Employees">
      <End Role="Employees" EntitySet="Employees" />
      <End Role="EmployeeTerritories" EntitySet="EmployeeTerritories" />
    </AssociationSet>
    <AssociationSet Name="FK_EmployeeTerritories_Territories" Association="NorthwindModel.Store.FK_EmployeeTerritories_Territories">
      <End Role="Territories" EntitySet="Territories" />
      <End Role="EmployeeTerritories" EntitySet="EmployeeTerritories" />
    </AssociationSet>
  </EntityContainer>
  <EntityType Name="Categories">
    <Key>
      <PropertyRef Name="CategoryID" />
    </Key>
    <Property Name="CategoryID" Type="int" StoreGeneratedPattern="Identity" Nullable="false" />
    <Property Name="CategoryName" Type="nvarchar" Nullable="false" MaxLength="15" />
    <Property Name="Description" Type="nvarchar(max)" Nullable="true" />
    <Property Name="Picture" Type="varbinary(max)" Nullable="true" />
  </EntityType>
  <EntityType Name="CustomerDemographics">
    <Key>
      <PropertyRef Name="CustomerTypeID" />
    </Key>
    <Property Name="CustomerTypeID" Type="nchar" Nullable="false" MaxLength="10" />
    <Property Name="CustomerDesc" Type="nvarchar(max)" Nullable="true" />
  </EntityType>
  <EntityType Name="Customers">
    <Key>
      <PropertyRef Name="CustomerID" />
    </Key>
    <Property Name="CustomerID" Type="nchar" Nullable="false" MaxLength="5" />
    <Property Name="CompanyName" Type="nvarchar" Nullable="false" MaxLength="40" />
    <Property Name="ContactName" Type="nvarchar" Nullable="true" MaxLength="30" />
    <Property Name="ContactTitle" Type="nvarchar" Nullable="true" MaxLength="30" />
    <Property Name="Address" Type="nvarchar" Nullable="true" MaxLength="60" />
    <Property Name="City" Type="nvarchar" Nullable="true" MaxLength="15" />
    <Property Name="Region" Type="nvarchar" Nullable="true" MaxLength="15" />
    <Property Name="PostalCode" Type="nvarchar" Nullable="true" MaxLength="10" />
    <Property Name="Country" Type="nvarchar" Nullable="true" MaxLength="15" />
    <Property Name="Phone" Type="nvarchar" Nullable="true" MaxLength="24" />
    <Property Name="Fax" Type="nvarchar" Nullable="true" MaxLength="24" />
  </EntityType>
  <EntityType Name="Employees">
    <Key>
      <PropertyRef Name="EmployeeID" />
    </Key>
    <Property Name="EmployeeID" Type="int" StoreGeneratedPattern="Identity" Nullable="false" />
    <Property Name="LastName" Type="nvarchar" Nullable="false" MaxLength="20" />
    <Property Name="FirstName" Type="nvarchar" Nullable="false" MaxLength="10" />
    <Property Name="Title" Type="nvarchar" Nullable="true" MaxLength="30" />
    <Property Name="TitleOfCourtesy" Type="nvarchar" Nullable="true" MaxLength="25" />
    <Property Name="BirthDate" Type="datetime" Nullable="true" />
    <Property Name="HireDate" Type="datetime" Nullable="true" />
    <Property Name="Address" Type="nvarchar" Nullable="true" MaxLength="60" />
    <Property Name="City" Type="nvarchar" Nullable="true" MaxLength="15" />
    <Property Name="Region" Type="nvarchar" Nullable="true" MaxLength="15" />
    <Property Name="PostalCode" Type="nvarchar" Nullable="true" MaxLength="10" />
    <Property Name="Country" Type="nvarchar" Nullable="true" MaxLength="15" />
    <Property Name="HomePhone" Type="nvarchar" Nullable="true" MaxLength="24" />
    <Property Name="Extension" Type="nvarchar" Nullable="true" MaxLength="4" />
    <Property Name="Photo" Type="varbinary(max)" Nullable="true" />
    <Property Name="Notes" Type="nvarchar(max)" Nullable="true" />
    <Property Name="ReportsTo" Type="int" Nullable="true" />
    <Property Name="PhotoPath" Type="nvarchar" Nullable="true" MaxLength="255" />
  </EntityType>
  <EntityType Name="Order Details">
    <Key>
      <PropertyRef Name="OrderID" />
      <PropertyRef Name="ProductID" />
    </Key>
    <Property Name="OrderID" Type="int" Nullable="false" />
    <Property Name="ProductID" Type="int" Nullable="false" />
    <Property Name="UnitPrice" Type="decimal" Nullable="false" Precision="19" Scale="4" />
    <Property Name="Quantity" Type="smallint" Nullable="false" />
    <Property Name="Discount" Type="real" Nullable="false" />
  </EntityType>
  <EntityType Name="Orders">
    <Key>
      <PropertyRef Name="OrderID" />
    </Key>
    <Property Name="OrderID" Type="int" StoreGeneratedPattern="Identity" Nullable="false" />
    <Property Name="CustomerID" Type="nchar" Nullable="true" MaxLength="5" />
    <Property Name="EmployeeID" Type="int" Nullable="true" />
    <Property Name="OrderDate" Type="datetime" Nullable="true" />
    <Property Name="RequiredDate" Type="datetime" Nullable="true" />
    <Property Name="ShippedDate" Type="datetime" Nullable="true" />
    <Property Name="ShipVia" Type="int" Nullable="true" />
    <Property Name="Freight" Type="decimal" Nullable="true" Precision="19" Scale="4" />
    <Property Name="ShipName" Type="nvarchar" Nullable="true" MaxLength="40" />
    <Property Name="ShipAddress" Type="nvarchar" Nullable="true" MaxLength="60" />
    <Property Name="ShipCity" Type="nvarchar" Nullable="true" MaxLength="15" />
    <Property Name="ShipRegion" Type="nvarchar" Nullable="true" MaxLength="15" />
    <Property Name="ShipPostalCode" Type="nvarchar" Nullable="true" MaxLength="10" />
    <Property Name="ShipCountry" Type="nvarchar" Nullable="true" MaxLength="15" />
  </EntityType>
  <EntityType Name="Products">
    <Key>
      <PropertyRef Name="ProductID" />
    </Key>
    <Property Name="ProductID" Type="int" StoreGeneratedPattern="Identity" Nullable="false" />
    <Property Name="ProductName" Type="nvarchar" Nullable="false" MaxLength="40" />
    <Property Name="SupplierID" Type="int" Nullable="true" />
    <Property Name="CategoryID" Type="int" Nullable="true" />
    <Property Name="QuantityPerUnit" Type="nvarchar" Nullable="true" MaxLength="20" />
    <Property Name="UnitPrice" Type="decimal" Nullable="true" Precision="19" Scale="4" />
    <Property Name="UnitsInStock" Type="smallint" Nullable="true" />
    <Property Name="UnitsOnOrder" Type="smallint" Nullable="true" />
    <Property Name="ReorderLevel" Type="smallint" Nullable="true" />
    <Property Name="Discontinued" Type="bit" Nullable="false" />
  </EntityType>
  <EntityType Name="Regions">
    <Key>
      <PropertyRef Name="RegionID" />
    </Key>
    <Property Name="RegionID" Type="int" Nullable="false" />
    <Property Name="RegionDescription" Type="nchar" Nullable="false" MaxLength="50" />
  </EntityType>
  <EntityType Name="Shippers">
    <Key>
      <PropertyRef Name="ShipperID" />
    </Key>
    <Property Name="ShipperID" Type="int" StoreGeneratedPattern="Identity" Nullable="false" />
    <Property Name="CompanyName" Type="nvarchar" Nullable="false" MaxLength="40" />
    <Property Name="Phone" Type="nvarchar" Nullable="true" MaxLength="24" />
  </EntityType>
  <EntityType Name="Suppliers">
    <Key>
      <PropertyRef Name="SupplierID" />
    </Key>
    <Property Name="SupplierID" Type="int" StoreGeneratedPattern="Identity" Nullable="false" />
    <Property Name="CompanyName" Type="nvarchar" Nullable="false" MaxLength="40" />
    <Property Name="ContactName" Type="nvarchar" Nullable="true" MaxLength="30" />
    <Property Name="ContactTitle" Type="nvarchar" Nullable="true" MaxLength="30" />
    <Property Name="Address" Type="nvarchar" Nullable="true" MaxLength="60" />
    <Property Name="City" Type="nvarchar" Nullable="true" MaxLength="15" />
    <Property Name="Region" Type="nvarchar" Nullable="true" MaxLength="15" />
    <Property Name="PostalCode" Type="nvarchar" Nullable="true" MaxLength="10" />
    <Property Name="Country" Type="nvarchar" Nullable="true" MaxLength="15" />
    <Property Name="Phone" Type="nvarchar" Nullable="true" MaxLength="24" />
    <Property Name="Fax" Type="nvarchar" Nullable="true" MaxLength="24" />
    <Property Name="HomePage" Type="nvarchar(max)" Nullable="true" />
  </EntityType>
  <EntityType Name="Territories">
    <Key>
      <PropertyRef Name="TerritoryID" />
    </Key>
    <Property Name="TerritoryID" Type="nvarchar" Nullable="false" MaxLength="20" />
    <Property Name="TerritoryDescription" Type="nchar" Nullable="false" MaxLength="50" />
    <Property Name="RegionID" Type="int" Nullable="false" />
  </EntityType>
  <EntityType Name="CustomerCustomerDemo">
    <Key>
      <PropertyRef Name="CustomerDemographics_CustomerTypeID" />
      <PropertyRef Name="Customers_CustomerID" />
    </Key>
    <Property Name="CustomerDemographics_CustomerTypeID" Type="nchar" Nullable="false" MaxLength="10" />
    <Property Name="Customers_CustomerID" Type="nchar" Nullable="false" MaxLength="5" />
  </EntityType>
  <EntityType Name="EmployeeTerritories">
    <Key>
      <PropertyRef Name="Employees_EmployeeID" />
      <PropertyRef Name="Territories_TerritoryID" />
    </Key>
    <Property Name="Employees_EmployeeID" Type="int" Nullable="false" />
    <Property Name="Territories_TerritoryID" Type="nvarchar" Nullable="false" MaxLength="20" />
  </EntityType>
  <Association Name="FK_Products_Categories">
    <End Role="Categories" Type="NorthwindModel.Store.Categories" Multiplicity="0..1" />
    <End Role="Products" Type="NorthwindModel.Store.Products" Multiplicity="*" />
    <ReferentialConstraint>
      <Principal Role="Categories">
        <PropertyRef Name="CategoryID" />
      </Principal>
      <Dependent Role="Products">
        <PropertyRef Name="CategoryID" />
      </Dependent>
    </ReferentialConstraint>
  </Association>
  <Association Name="FK_Orders_Customers">
    <End Role="Customers" Type="NorthwindModel.Store.Customers" Multiplicity="0..1" />
    <End Role="Orders" Type="NorthwindModel.Store.Orders" Multiplicity="*" />
    <ReferentialConstraint>
      <Principal Role="Customers">
        <PropertyRef Name="CustomerID" />
      </Principal>
      <Dependent Role="Orders">
        <PropertyRef Name="CustomerID" />
      </Dependent>
    </ReferentialConstraint>
  </Association>
  <Association Name="FK_Employees_Employees">
    <End Role="Employees" Type="NorthwindModel.Store.Employees" Multiplicity="0..1" />
    <End Role="Employees1" Type="NorthwindModel.Store.Employees" Multiplicity="*" />
    <ReferentialConstraint>
      <Principal Role="Employees">
        <PropertyRef Name="EmployeeID" />
      </Principal>
      <Dependent Role="Employees1">
        <PropertyRef Name="ReportsTo" />
      </Dependent>
    </ReferentialConstraint>
  </Association>
  <Association Name="FK_Orders_Employees">
    <End Role="Employees" Type="NorthwindModel.Store.Employees" Multiplicity="0..1" />
    <End Role="Orders" Type="NorthwindModel.Store.Orders" Multiplicity="*" />
    <ReferentialConstraint>
      <Principal Role="Employees">
        <PropertyRef Name="EmployeeID" />
      </Principal>
      <Dependent Role="Orders">
        <PropertyRef Name="EmployeeID" />
      </Dependent>
    </ReferentialConstraint>
  </Association>
  <Association Name="FK_Order_Details_Orders">
    <End Role="Orders" Type="NorthwindModel.Store.Orders" Multiplicity="1" />
    <End Role="Order_Details" Type="NorthwindModel.Store.Order Details" Multiplicity="*" />
    <ReferentialConstraint>
      <Principal Role="Orders">
        <PropertyRef Name="OrderID" />
      </Principal>
      <Dependent Role="Order_Details">
        <PropertyRef Name="OrderID" />
      </Dependent>
    </ReferentialConstraint>
  </Association>
  <Association Name="FK_Order_Details_Products">
    <End Role="Products" Type="NorthwindModel.Store.Products" Multiplicity="1" />
    <End Role="Order_Details" Type="NorthwindModel.Store.Order Details" Multiplicity="*" />
    <ReferentialConstraint>
      <Principal Role="Products">
        <PropertyRef Name="ProductID" />
      </Principal>
      <Dependent Role="Order_Details">
        <PropertyRef Name="ProductID" />
      </Dependent>
    </ReferentialConstraint>
  </Association>
  <Association Name="FK_Orders_Shippers">
    <End Role="Shippers" Type="NorthwindModel.Store.Shippers" Multiplicity="0..1" />
    <End Role="Orders" Type="NorthwindModel.Store.Orders" Multiplicity="*" />
    <ReferentialConstraint>
      <Principal Role="Shippers">
        <PropertyRef Name="ShipperID" />
      </Principal>
      <Dependent Role="Orders">
        <PropertyRef Name="ShipVia" />
      </Dependent>
    </ReferentialConstraint>
  </Association>
  <Association Name="FK_Products_Suppliers">
    <End Role="Suppliers" Type="NorthwindModel.Store.Suppliers" Multiplicity="0..1" />
    <End Role="Products" Type="NorthwindModel.Store.Products" Multiplicity="*" />
    <ReferentialConstraint>
      <Principal Role="Suppliers">
        <PropertyRef Name="SupplierID" />
      </Principal>
      <Dependent Role="Products">
        <PropertyRef Name="SupplierID" />
      </Dependent>
    </ReferentialConstraint>
  </Association>
  <Association Name="FK_Territories_Region">
    <End Role="Region" Type="NorthwindModel.Store.Regions" Multiplicity="1" />
    <End Role="Territories" Type="NorthwindModel.Store.Territories" Multiplicity="*" />
    <ReferentialConstraint>
      <Principal Role="Region">
        <PropertyRef Name="RegionID" />
      </Principal>
      <Dependent Role="Territories">
        <PropertyRef Name="RegionID" />
      </Dependent>
    </ReferentialConstraint>
  </Association>
  <Association Name="FK_CustomerCustomerDemo_CustomerDemographics">
    <End Role="CustomerDemographics" Type="NorthwindModel.Store.CustomerDemographics" Multiplicity="1" />
    <End Role="CustomerCustomerDemo" Type="NorthwindModel.Store.CustomerCustomerDemo" Multiplicity="*" />
    <ReferentialConstraint>
      <Principal Role="CustomerDemographics">
        <PropertyRef Name="CustomerTypeID" />
      </Principal>
      <Dependent Role="CustomerCustomerDemo">
        <PropertyRef Name="CustomerDemographics_CustomerTypeID" />
      </Dependent>
    </ReferentialConstraint>
  </Association>
  <Association Name="FK_CustomerCustomerDemo_Customers">
    <End Role="CustomerCustomerDemo" Type="NorthwindModel.Store.CustomerCustomerDemo" Multiplicity="*" />
    <End Role="Customers" Type="NorthwindModel.Store.Customers" Multiplicity="1" />
    <ReferentialConstraint>
      <Principal Role="Customers">
        <PropertyRef Name="CustomerID" />
      </Principal>
      <Dependent Role="CustomerCustomerDemo">
        <PropertyRef Name="Customers_CustomerID" />
      </Dependent>
    </ReferentialConstraint>
  </Association>
  <Association Name="FK_EmployeeTerritories_Employees">
    <End Role="Employees" Type="NorthwindModel.Store.Employees" Multiplicity="1" />
    <End Role="EmployeeTerritories" Type="NorthwindModel.Store.EmployeeTerritories" Multiplicity="*" />
    <ReferentialConstraint>
      <Principal Role="Employees">
        <PropertyRef Name="EmployeeID" />
      </Principal>
      <Dependent Role="EmployeeTerritories">
        <PropertyRef Name="Employees_EmployeeID" />
      </Dependent>
    </ReferentialConstraint>
  </Association>
  <Association Name="FK_EmployeeTerritories_Territories">
    <End Role="EmployeeTerritories" Type="NorthwindModel.Store.EmployeeTerritories" Multiplicity="*" />
    <End Role="Territories" Type="NorthwindModel.Store.Territories" Multiplicity="1" />
    <ReferentialConstraint>
      <Principal Role="Territories">
        <PropertyRef Name="TerritoryID" />
      </Principal>
      <Dependent Role="EmployeeTerritories">
        <PropertyRef Name="Territories_TerritoryID" />
      </Dependent>
    </ReferentialConstraint>
  </Association>
</Schema>A<?xml version="1.0" encoding="utf-8"?>
<Schema Namespace="DXGridServerModeDBModel.Store" Alias="Self" Provider="System.Data.SqlClient" ProviderManifestToken="2008" xmlns:store="http://schemas.microsoft.com/ado/2007/12/edm/EntityStoreSchemaGenerator" xmlns="http://schemas.microsoft.com/ado/2009/02/edm/ssdl">
  <EntityContainer Name="DXGridServerModeDBModelStoreContainer">
    <EntitySet Name="WpfServerSideGridTest" EntityType="DXGridServerModeDBModel.Store.WpfServerSideGridTest" store:Type="Tables" Schema="dbo" />
  </EntityContainer>
  <EntityType Name="WpfServerSideGridTest">
    <Key>
      <PropertyRef Name="OID" />
    </Key>
    <Property Name="OID" Type="int" Nullable="false" StoreGeneratedPattern="Identity" />
    <Property Name="Subject" Type="nvarchar" MaxLength="100" />
    <Property Name="From" Type="nvarchar" MaxLength="100" />
    <Property Name="Sent" Type="datetime" />
    <Property Name="Size" Type="bigint" />
    <Property Name="HasAttachment" Type="bit" />
    <Property Name="OptimisticLockField" Type="int" />
  </EntityType>
</Schema>BSJBv4.0.30319l��#~ ��"#Stringsк�p#US�+#GUID�+�\#BlobW��?	�%3�SR�y����Y�M
HA
}i������
Q9�{�{���{��+W8"�z��"�z"�z�9�A
�&b;s9��*��*��.%�2S6w^���A���������A��'�*<�V9
^iq�}96���9:���>:*M�]AgAsA������B���
i
+iA�V�e�r�I9
kF�9.9>9
Ko9�9
�X Ar ] � A� ��!��!{J2"&"Jn"&"w"A5#���#�$A�%}%�%�o(=,A�-d/A�7�"�8z$9�.S9�.�9�FV:A:Q<2<*�<�
=�&>>;&	?;F�?�?.�@�|AAJ�A&"6F�6�F�6�F�*�F��G�GiI��J�KA.�N�N�QA�QAF�SA:�S�SFuWA:*�W�W
�X�X
Zi6Z�
�[iF]�?&Q`@`�d�d�d�d�f�fgAF�g�Fh�*i�6�i�
�j[lQlylQl�l9unA:<o�*�p�
�qsANQs9s
bs9s
�si
�si
Jti6�t�*M�*su�
�u
�ui
v&�v�v.�v�NROw9w�w�
x9Rx9w:xA>fxF5z��{��|�)}9*��
�i
�ǁƄA*3�
����
�6�6l��B$��J@�&"BN��������*J��
;�iF��&���v_����<��F��?F���?
d�&���v6��Z��*i��F��?�����&���v
��
F�6Ǡ�F<��?FH��*W��6p��
��
d����9V��
B�#�
x�#���
2�*���.��F���?
٭i*��*I��
"�i9�96���6���*��v�9J+�&"6���
[�#�6o��&���v
4��
��
c��
���*ȸ�*h��
F�ǁ
��ǁ&�ۼ&�ۼ**��*[��*��
L�#�
~�#�*��*���*P��*{�����O��
��#�:��:*������*����p�F�����������)���B���]���|�������������������������7���T�g��������dS�����d���d�A
 �;�A
H�~ A
��������QlZ����Z����Z���?�Ad�X�Zv���Z������A���F���?F���?J����J��,��7��H��Y��i��d������A���������"��"��(�AL�������.���N.��N�A.!��N64��D�AF]�A:m�A6�����A����
����F���6b��
��&����
��+�����d�A�A*��4��#i��w�A��A��A"���"�������?�V�A^��l������o�^��l�Z����Z������F��a��f��A6������.���
�8.��.F��.i��F��2<��A���.���&���&+���&I���&V���J��&"J��&"J��&"J��&"6���
�
(�i2J�6h��G���d���d��A��A�����&=�(�
g�R������A
��R���F2�2<F@�2<F`�2<F~�2<F��2<F��2<F������.;��F@�A:FF�A:X��S6����6�����/��g��F���F���f���
q�i
��i���F���?F��?O��f���f
O�i6x����86���*]����A:���:��������#���#N��9sN��9s��9
����N�9sN2�9sNB�9sNV�9s}����b����6��
E�i
n�i��A��A��&".���NR�9wR#�9w=��W��*�9��A>��>0��FY��
l�R�~�}%b������QlG�A6�����������9F�A:F��
N�iv��������Z����Z�������f(��f8��:v�d�fF���:���&��d�:���:���
������M�9���6���
)�H�9��9&+��v6S��6������
5�i*~�������������A�*{�`�*���
�6���6��62��6@��*L�������;�A6���6v��B9�BT�Bk�B���9�����
Mǁ
bǁ
�ǁ.��F��?F�?F�?
�i
ǁ
7ǁFl��9Y�dhA*��
"ǁ
3ǁ
D&��vA�&1�v6]��9Z���
�^6��F�F)�FU�?Fz	2<F�	�F�	�6)
�*s
�
3V�"��
��#�&r@`
�i.?��
�i
5
i
�

�
i�
�
.iI�X�~���F��F��
0i6>�
ni*��*��F �?F1�?6b�6�
(�
V�
q�
���^�^���^^^6*�6P�6v�*��6:�6��&�v
K�*��*��6�
Ai
�ǁ.��?.��?*0�
Oǁ
�ǁ*��6��*?�6��
��
��*��*�
Qi6x�
�ǁ6�*0�*��*��*��*��*�:�w:���Ab���j�b�F^A:s^F��?�)2)	F)`)#"y)#%�)#)�)#-�)#0)#3)#66)$9W)$<v)$?�)$B�)$E�)$H�)$K)$N*)%SA)%V[)&[|)&^�)&a�)'f�)'i�)'m�)!(p)%)v)*|+)*}O)-*~c)4��n)7��)7���18� ��5C� ��5G� ��5R� ��5T� ��5f ��5tA �5yU �5�u �5�} �5�� #�5��-)��T)
��g)=��yE���I���)���)���)���)���)M��)��+)Q��=)��`)Q��l)U�� �)���)���)���)��)��)]��)�%)�()a�08)M�=d)a�?z)e�P�)i�V�)m�[�)�`�)�d�)�g�)y�l	)}�v)�|))U��E)��Q)��a)m��rQ��Q�������)�
��)��)a��)M�)��)	<)}B)
b)�z)��)a�)�"!�)�""�)�"#�)�"$	)�"%@	)�"&R	)�%8�a	)&<u	)&=�	)m'D�	))J�	))K�	)a*N�	)a1`	
)<w
)E!
)aQ�=
)W�V
)Z�m
)\��
)�\��
)\��
)a_���
)e��
)�f��
)�g��
)"h�)h�7)h�R)Mh��l)�i��)j��)j��)j��)j��)j�)aj�;)al�W)�n`)�wo)4y"z)4�&�)<�0�)4�8�)4�?�)4�B�)4�F�)4�J���W

��[2

�`?
W
�wg
)&��w
)����
)]���
)����
)���
�1�� �
�5���
)*��)m��()��=)��P)���s)���)���)����)��)M��)���)��)2 )#�)(!:�)I:6+�a:�9|:�G�:�n���v��|�)���)�)�)�3D4�O)�l)�$�})Q$� �)*��)5���)7���)�9��):	�)B�)�D�)H,�)I1�)J6�)L<)4OC%)4UG3)4`T<)4g[K)4lgY)4twf)4vz})4���)4���)4���)4�������)4���)4���)4���)4���D���
)4��)4�)4�.�
8��
<8)4
@M)4DW)41Ic)4M`t)4Rf)4[l�)4_t�)4n��)4q��)4u��)4x��)4��)4���)<���)<��)4��!)4��0)4��:)4��F)4��S)4��a)4��o)4��|)4���)4��)4��)4	�)4�)4 �)-(�)�-*��-.)4/2%)4;6��EC��GD�IF&�JG�LI�MK'}NK��NK�OM�PO��RQ~���������������	� �3�D�T�]�d�x������������������
��%�+�;������� *� 3!�D!�;�>"z�"��"��"��"�#�C#�3$�J$9h$��M��i%n.%�"�n%y�%��%��%�&�3&�B&W&m&/�&D�&Y�&n�'(�A(�f(Q�(�)�A)�p)��)��)��)��)�*�4*�K*��*�-+��+�+��+��+�,,�d,�,�)��)��)��)�*��,��,��,Q-�3-.Z-��.�(��+.�./6/[/.�/��/��/��/� 0�R0��0��.S2z2��2��2�S2�3��3.�'.4�z2�O4*4*�4*�4�6U6��6)�4*��3)�A)�p)��)��)��)��)�*�4*�K*��6�.7�m7�68�A8*�8��88�19'I9<8��9T�9V��9eV��9e�9V��9tV��9tV��9t6�9~6�9~V;p;.�;��;�;��;��<	�<"	v=b	�=g	�=�=q	�<	�<"	 ?�;?�U?�n?��?�T@�	u@�	�@�	6�@~�A�	<B<zB�B�C<.C<!�C'!�C'�C;
:D;
�D��B��D;
-EzE!wFS
!wFS
>G�TG��G�G�H�+H�
8H�CH�
HH
I"IQ�EI�UIaI�
�I�
6�K~6L~6L~�L�L��L�L�L��L/8�XM��<JQ��MUQ��MUQ��MUQ��MQ��M!N}6N~62N~6JN~6bN~6uN~�N��N�	OO�!O�	(O�dO�;P�9V��QV��QV��Q�9V�K	V�@K	V��Q	yR%�RJQ��RQ��RQ��RQ��RQ��RU6S~6#S~+T�T��T�$U�uU��U�V�_VkTG�CWXW�W�2X�KX�I9<|X�MY�1!O�	6�Y~Z�6�\~6�\~6]~KX��]
�]"
�]
�]�^U-^'
8^,
J^�``�
v`�
�`��`��`��`��`�a�6a�Va�_Vk!�d�
�d�d�
!�d�
1�d�
1�d�e�5eUeQ��eUQ��eU1�A�	�e��eU�eUfU#fU:fUNfnefU8�!�f�
!�f�
!�f�!g�g�
fg�6�g~!h�
#h�
�h��h"I7<i����-ii�	iB�iL4k�	ck�	�k�	!El�!ll�!�l��l'�G�-m�nm��m��mDo7Yo�mo��on�on�o��o��o�p�6kp~\q��q\�q\
r\)r\Or\hr\�r\�r\�r\�r\�r\�ra;�|t\�t\�t��t��t��ra�t�u�u��i�;�62u~�ra�i�~u�;��u��u\�u��u��u\�u\�u�v��ra;�v\�ra�i�;��ra.v�CvaNva\v�jv�uv�;�!�v��v��v��v�x�x/x	�ra;��xD�x7�x��x��x�x�3��x�y�y�8�6)y~6Oy~6fy~6�y~�y<�y<"}��u�;�4}\}�}��}��}��}�	~�	1~�	K~�	6z~6�~�����x����*�00��6D�~iA>G�0��K�'i�U�����k����K��3�v)�5��;����
j��
Մ�.�U>G�W�Q>G������5�N��g����n���o������X�"	6��~6χ~.��
��;�#�<>G�@�Qi�a!��ʊW��7V�7��72�,��`��x����*�00��֍e8�6=�~��~!̎��ra8�6��~��
X��
���
����������;��9V��f�V���V�(��V�/��V��f�6��;�.@��I��O�U��d�0j��w����.8�Yo>G��A�	��}�s�������n��ȗ�җ�ؗ�8������6��~6Ę~ܘ�������G�a�IM��
�ra���������;�6-�Z62u~66�~&��@��T��j���ra~u��i{;���B��m������ra�i{;���z�\�ra�i�;�6��~�����#��?���ra��;��ra;�M�}X�}�A�	CH����	������2��O��c�\x���ra�=�;�����ra����=�;�����ra�i�;�5��;�6F��
6q�~6��~(O�g	"�g	-�!Ƣ�c2��<�j�����\��\ʦ�Ԧ�ߦ������$��-��5��?��J��Z�an��}�����������§�ڧa���������"��3��;�<���\��\ͨ����ra�i�+��;�}�\��\��\���Ʃөaީ����������;�.�\>�\P�\�ra�i�;�e���\����]������ra������ƫ�ѫ�٫����i�;�*��������\̬%;�׬*�;#�D1�6x�~�\��,�vF�{�raީ����������;�CH�������ra�i�;����	�����Ʋ\������(���raީ����������=��;�z���ra������������ȳ����׳����i�;�
�\$�\�r\@�\�r\X�\n�\�r\�r\��\��\��\ʹ\������raީ��������������i�;�6��~˵�ϵ�ӵ��%��\��\̶\�\�\)�*4��E��U���ra������i�p�/��/��/��/Ƿ4Է/;���	��	#��	{�E����ra�i�;����ra������������i�;��ra��;����	ջ�������#�\8�\O�\r�\�ra�������������;��ra�i�;��ra����i{;��ra�i�;�ý��ra���������i�;�ѽ�
F��V��i���ra�i�;���J�\����\�\)�\8�\�ra�i�;�m���t��t��t��ra���������i�;��t��t��t��ra�i�;�
���ra�i�;� ��\����e������ra������ƫ�ѫ�٫�������i�;��\&�\8�\T�\v����\��\���ra������;�*�\3���ra~u��i�;���\����ra���i�;����O��`��t������ra�������������������;�6��~X���ra�����e��n���i�;���\�\�\,��B���ra;���\������ra;�X�\�r\�r\��\�r\�r\��\ʹ\9�\���Q�\��f�a�i�;�o������������ra��������i�;�$�\�r\���5���ra��;������\��&�ra���ƫ����ȳ�����������i�;� �+���������ra���ƫ����������ȳ��������i�;���>�Cv�p���ra�������������������;�6��~6�\~�n����ra���������׳�;����c����<��c�9�<��\�EI=����L������F��LHHP �:�� ��� �9�!!�U�,!�e��"����"����#����#���$���m$��x$�5��$�P��$�o��$����$���	�$���	%���%���
-%���8%����%��H&�J�x&�^��'���@(�eX(���)�	 �Q)� ��)�& ��)�4 �*�@ �*�L ��+�~ �+�� �+�e��+�e��+�� #�+�~  &,�� $-,�e�(5,�� #(8,�~ )K,�� -^,�~ 1q,�� 5},�e�9�,�~ 9�,�� =�,�e�A�,�~ A�,�� E�,�e�I-�~ Is-�e�Mg-�:�M{-�~ M�-�� Q�-�e�U�-�~ U�-�� Y�-�e�]�-�~ ]�-�� a.�e�e.�~ eX.�� i_.�e�mh.�~ m�.�� q�.�e�u�.�~ u/�� y!/�e�})/�~ },/�� �9/�e��D/�� :��/�~ ��/�� �/0�e���/�:��70�~ �b0�� �i0�e��q0�� ��y0�� ���0�~ ��0�� ��0�e���0�~ �{1�� ��1�e���1�~ ��1�� ��1�e���1�.!��1�9!���1�~ ��1�� ��1�e���1�c!�2��!�2�e��2�c!�*2��!�<2�� #�?2�e��G2�e��X2�J���2�^���2��!C��2��!N��2��!Z�X3�
"Z�4�"f��6�es�8�X"��"8�c"��,8��"��9��"��0:��"���:�e��<�e��(<�e��;<��"��\<�X"���<�#���<�(#���<�S#��=�c#��`>�u#��h>�#��t>��#��>��#
��>��#�?��#"��?��#��?�es�`A�e-�,B�$��4B�&$4��<�h�E��<���Y�=B��$a�EB��$g�NB��$��VB��$4�_B�X"��gB�c"��pB�e��xB�f%:��B�~ ��B�� �C�e��C�e��6C�e��PC�e��jC��%���C��%���C��"���C�&���C�!&��D�X"��0D�J&�QD�a&$�rD�v&9��D��&N��D��&c��D��&x��D��&��D��&���D��&��
E�'��E�'��)E�*'��7E�8'��EE�E'��SE�S'��aE�b'��pE��'>��E��'���E��'4��E��'���E�(���E�!(��E�1(�!F�N(F.F�Z(KSF�J&UjF��(`�F�e��F��(|�F��(��F��(��F��(��F�)�G�!)�"G�1)�GG�N)�OG�_)�tG�~)�	|G��)�	�G��)�
�G��)�
�G��)��G��)��G��)�H��)�(H��)�
0H�*�
UH� *�]H�**��H�;*��H�C*��H�X"��H�c"��H��%��H�P*�I�e�I��*�7I��*�?I��*�rI�+�zI�+��I��"��I�;+��I�e��I�e+�J�t+�
J��+4:J��+�BJ��+�gJ��+�oJ��+��J��+��J��+��J�,��J�,��J�H,��J�V,K�o,�"K�|,FK�~)� NK��)� sK��)�!{K��)�!�K��)�"�K��)�"�K��)�#�K��)�#�K��)�$L�*�$'L��,�%/L��,�%TL��,�&\L��,�&�L��,F'�L��,K'�L��,�(�L�-�(�L�-)�L�%-$)M�>-�*M�L-�*9M�e-6+PM�t-A+kM��-M,�M��-�,�M��-S-�M��-^-�M�X"�.�M�c"�.N��&j/N��-u/:N�e�0DN��.�0_N��.�1gN��.41�N��(�2�N��(�2�N�t+3�N��+$3�N��.�4�N��.4O��.�5!O��.5EO�/�6MO�&/6qO�C/7yO�O/$7�O�l/�8�O�x/�8�O��/�9�O��/�9�O��/�:�O��/�:#P��/�;+P��/�;PP�0�<XP�0�<}P�,0�=�P�?0�=�P�b0�>�P�r0�>�P��0�?�P��0�?Q��0�@'Q��0�@BQ��0MA^Q��0�A{Q��0SB�Q�1^B�Q�!&C�Q�1C�Q�-1D�Q�91�DR�E1E/R�Z1)EJR�e�FTR�#2mF�R��.�K�R��.4K�R�72�L�R�E24L�R�^2zM�R�l2�M"S��2�N*S��2�NNS��2�OVS��2�OzS��2�P�S��2�P�S��2�Q�S��2�Q�S�3�RT�3�RT�3�S5T�43�SPT�e�TXT��3T�T�72�W�T�E24W�T��3�X�T��3�X�T��3Y�T��3$YU��'ZU��'$Z;U��3�[CU�4�[hU�^2�\pU�l2�\�U�-4]�U�>4 ]�U�]4^�U�n4 ^�U��4_�U��4 _V��4` V��4�`DV��42a`V��4xa}V�58b�V�5Cb�V�!&c�V�1c�V�35Od�V�@5�dW�M5Ue1W�c5`eLW�e�fTW��5�fvW�6�h~W�64h�W�)6�i�W�?6�i�W��&jj�W��-uj
X�e�kX��6�k6X��6�m>X��64mkX��(�nsX�)�n�X� *�o�X�**�o�X�X"�p�X�c"�p�X�e�qY��6�q"Y��3�s*Y��34sWY��(�t_Y�)�t�Y�!)�u�Y�1)�u�Y�N)�v�Y�_)�v�Y�~)�w�Y��)�wZ��)�xZ��)�x8Z��)�y@Z��)�yeZ��)�zmZ��)�z�Z��)�{�Z�*�{�Z� *�|�Z�**�|�Z�;*�}�Z�C*�}[��6�~![��6�~F[�J&U][��(`x[�e���[��6���[�7���[�7���[�;7���[�T7��\�6��\�64�=\��)��Y\��)��v\��7���\��7���\�&6��\��7A��\�e���\�~ �(]�� �/]�e��7]�e��@]�	8��x]�	*8���]�e���]�L8��^�V8��^�_8��<^�h8��b^�u8��^��8���^�e���^��8��^�e���^��8��^�~ ��^�� ��^�e���^�� ���^�� ���^��8��_��84�_�9��8_�	8��p_�	*8���_�e���_�~ ��_�� ��_�e��`�~ �8`�� �]`�e��e`�e,�t`�:93��`�&A��`�c9G��`�v9M��`�e��@a�	8��xa�	*8���a�9���a�~ ��a�� ��a�e���a�:��ub�:���b�-:���b�\:���b�m:���b�e���b��:���b��:4��b��:��b��:$��b��:���b��:���b��:��c��:�c��:��c��:��c�
;��$c�;��0c�-;���c�e���c�<���c�(<	��c�\<	��c�p<	��c��<	��c�e���c��<3	��c�=9	�d�=@	�d�!=K	�d�*=��!d�==4�*d�P=W	�2d�c=\	�;d�<��Cd�(<	�Ld�\<	�Td�p<	�`d��<	��d�e���d�e�	��d��+��e��+��e��+��e��+��e�~)��'e��)��0e�
>��8e�>��Ae�*>��Ie�4>��Te�H>�	�:f��>�	�wf��>���f��>���f�?�	��f��?�	��f��?�	��f�e��6g��?�	�>g�	@�	�Gg�@�	�Og�-@�	�Xg�B@�	�eg�A�	�rg�/A��g�AA���g�SA���g�e���g�:���g�c!�:h��!Rh�e�Zh��!
fh�J&
th��A
�h��A
i��A
Pj��A
�k�e��k�:��k��AA�k��A 
�k��AA�k�B 
�k�,B'
�k�NBA�k�dB 
�k��B�	l��B4	!l��B
)l��B�
>l�e�kl��B��l�e1
�l�:93
�l��C@
�l�DF
m�]D@
m��DF
:m��DBm��D�cm��Bkm��B��m�	E@
�m�EF
�m�DE��m�_E4�m��E��m��E4�m��E��m��E�
n�e�n�eX
$n��F_
Gn��Fg
Un��F�cn��Fn
qn�Gv
n�eX
�n��Fg
 �n��F�!�n��Fn
"�n�Gv
$�n�G�&�n�#G�&�n�,G�'�n�5G�'�n�e~
(�n�tG�*o�G�*<o��G�
*[o�e�,do�~ ,p�� 0p�e�4#p��G�4+p��G444p�!(�5<p�1(�5Ep�e�6Mp�e�
6|p�NH�
;p�_8�
<�p�V8�
=�p�\H?�p�G�?�p�kH�
?�p�}H�
?�p��H�	?�p��H�
@�p��H�A�p��H4A�p��H�B�p��H4Bq��H�
C4q�I�DCq�e�Dtq��I�
D�q��I�
G�r��I�
Its��I�
J�s��I�
LGt��I�
MNt�9�PVt�J4Ppt�J�Qxt�"J4Q�t�2J�R�t�IJ�
R�t��JS�t�	L8�T�t�	�JTu�	�J
T	u�	\HTu�	�JTu�KTu�KTu�KVu�"K�W"u�(K�
W)u�1KX0u�9K�Y7u�@K�	[>u�GK4\Eu�	PK!]Mu�	{K�^Pu�:�`v�5L�`!v�BL�`4v�OL�aFv�dL�aYv�yL�bkv��L�b~v�e�c�v��L
c�v�e4c�v�Mh�v�M�h�v�M�i�v�&M4i�v�G�jw�#G�j(w�.M�k0w�>M4kNw�5L�lVw�BL4ltw�NM�m�w�<=n�w�(<Cn�w�	8�o�w�	*8�px�e�qx�:�q<y��N�	qly��N�	s�y�e�u�z�:O�v�z�HO�v�z�XO	v�z�wO	xP{��O�zX{��O�z�{��Oz�{��Oz�{��O�z�|��O�z}��O�{}��O�|@}�	P��}�P��~�*P��~�CP���NP����YP����_P����dP��5��xP��G���P��Z���P��l���P�����P������P4�����P�����Q4�ɀ�"Q��ۀ�1Q���e���Q���R��R���R�����.R�����?R=���QRC���cR	�#��e��,��:�����6S�	����OS>�ā�cSD�ҁ�wSA����S 
����SK���6SD�X���SR�`��e��h��T�����e�����&`�����7e����e����GT���cT�����T����T��%���T�-��U��B��?U�J��ZU��_���U�g���U��|���U����V�����3V����IV�����:93���e��$��2J�����I�
�n��e��v��� #�|��c!�����!����e��Ȇ�,G��І�5G��ن�W����"W4���*W����2W4����:W����~ �M��� �T��e��\��e��o���Wt�w���W������W��ه��W
���X�	���X����"X�����e����&A����X�����X��'��e��\���X��d��
Y��m��%Y�p��;Y�	�~��e�����e�����e�����e�����e�����:��>���Y�	�c���Y��v���Y�����$Z�����0Z�����>Z�����e��Љ�LZ����\Z��8��mZ	�@���Z��w��	�Z����	�Z�����"[�����_[������[�����	�[�����:��&���\��9���\��K��e���� �\
�S��:��x��tG�����G�����!]
�͋�,]�	�ߋ�I]�	���e�����e�����X����"X����L8�� ���]4�3��:��]��e��e��e
�t��	�]�w���]A����W^	�����^	�����^1
����e����e�� ���^��r���^9
�z��_?
�����%F
����_����)_��ˍ�C_��Ӎ�f_�����_P
����_V
�U���_]
�]���_c
�����_�����e����&`�����7e���ra�
�
���a�
�"���a�
�*���a�
�?���a�G���a��\��b�d��b��y��2b����Rb�����rb�����b������b�����b��Џ��b�؏�c����c����>c��
��^c���zc��'��=A�0��e�
�x��be��ܐ�e�����ve��T��_P��_��ye�
�k��:������e������e������e������e�����e������e����f��&��f��M��(f��U��1f��|��>f�����Ff�����Sfa����\fg�ڛ�lf����wf����	8��D��	*8��|��e��М��Q��<���f�����f�
���:��,��e����+g�
�D��=g�
�y��be�����Rg4����yg����g����=A͟��Q����g����g	���g�9��:�d��e�~��tG����/h�Š�Ch���Ph�
��`h�
��ph�	��|h�	"���h
*���h�	3���h;���hD��e�	Z��e�b��� #i��e����eg
����H#
����Hg

����h����i�̡�+i)á����-���<Q��=W%���i^-���iiB���i�	J���i�	_���i�	g��j�	p��)j�	x��Pj�	���wj�	����j�	����ju���e����j{���j���k�X��k����e��bl����:W�ǣ�e~
ף�bl���e����bl� ��e� 	��~  &��� $-��e�(5��~ (H��� ,[��e�0d��:930Ĥ��l�2̤��l,2դ�e�3ݤ��l�3����Gz5���G�5�
m�6�m�6��e�7��m�7/��:W�7F��m�7T��e�8\��m�8s��:W�8���m�8���e�9���m�9���:W�9Υ�m�9ܥ�e�:��m�:���:W�:��m�: ��e�;(��m�;?��:W�;V��m�;q��e�<y��e�<���@m�<���Wm�<����m�=����m�=���m>��n�>��/n?��@n?,��e�@P��zn#@X���n)@a���n�Ai���n�Ar���n�Bz���n�B����naC����ngC����naD����ngD����3�E����3�E����n�F����n�Fǧ�oGϧ�o�Gا�&o�H��1o�H��e0I��e�J���:�J*��e�J2��	pJ5���pJ=���p�JF���pBKX��qHKf��LZ�Lp��q
LĨ�&qBL��/qOL��SqM*��e�MH��J�Mx��sfM���^�Ot��tspQ���	�syR���&qBR����s�R���sRx���s�U���"K�V���s�V��t�X
��e�X���syX��e�X(��%t�X���t�X���7t�X���gt�Z̬�J�\���^�\��Ku�^!��_u�`3��e�aD��J�at��sfa���^�cӮ�:�e��e�e��J�eD��^�e���e�g��J�g<��sfgH��^�i���e�k��J�k8��sfkD��^�mܱ�e�o����v�o���pq���	w	q��ew�sT��qw�uq���w�v����w�v����w�x����w�x4���w�z���J�|���^�|�e~��Q��R��R�n��e$����>x+�е�Rx2����yx9����xN�(���x`�C��zn#�K���n)�_���x��g���x��{���n������n������n������n�����n������n�϶��3��׶��3�����n�����n����o����o��#��&o��+��1o��@��	8��x��	*8�����y��ɷ�e��ѷ��yA�ٷ��yA����y���z����c9G���v9M�&��@zi�8��rzo�K���zi�]���zo�p���z��x��	{4����${�����@{4����\{�����v{������{������{������{v�����{|�Ÿ�|�	�͸�|�	�ָ�&|�	�޸�5|�	���D|�	���Q|�	����^|�	���j|�	���e�����v|�	����|�	�X���|�	�����|�	����|�
�����|�
����|��p���|�����
}��`��J�����^��Լ�:�����e��������������������ν����ܽ�e����:��S��e��k��������������������e�����[�����e��)��e��C��e��]������~��������������:������:4�ܿ��n�����n��	���:�����:��6���:��>���:�b����j��!�&�����:������:�����e����e�����?
���	@�	���G����#G������iJ����e����:��<��W���D��e���M��s���U����,�^������f������o�����w�����������^����	�d�����
����%��	����e�����H���L��]�����u����������T���������������������������e4����L8��	���]4�����������F
����-��
����J��
������
�T�����
����������
������:��#��e��2��7���:��G��B��#G��K��N(F�S��Z(K�\��:W��d��M��|��M�����e�����G�����#G������4�����4����p�z����z������:W�����e������������Dž4����Ӆ����߅�������	���������.a����.g�#��
��+��!��4���3��<���3��E���2��M���24�V��p�z�^��z���g��e��o���*�����1����:93���e����)�8�V��:�	�^��I�	�g��e��o��t�B������H�����������Ç�����߇�	�������	����e�����߇��r���������J�����^�����:��t���?U����e�����:�����G�����#G�����.�F���7�K�
��e����[���W����g�h��e�����en�����pB�����<3	������u������{�����������ň�����ވ���������	���&�����3��4���@��F���M��Z���Z��e��n���pB�{���<3	������u������{�����������ň�����ވ�����������	������������4������F���
��Z�����!���1��/���k��G���v��Q���b��e���������T������������ ��*������C�����]������}��������9	����������̋��P���H������>����b����$�������������e����e�����t��6`�����	����7	���7�7
��}�7�������G��������������������������9��3��_��@�����T��Q��p��O����!�����/��4��ތ�������,��e�
����
�����
%���
4��e�
B��e1P��e8Z��e@d��V�Jl��:�x��e�����:�����:4����n�����n����:����:����:����:v������!�&���:����:�8��	�jp��	��j���	8���	*8�����0��)��L��:�]��:����e�����<3	���=9	���_�q��x�w��LZ� ��e� �����!����!��O��!�����"�����#��	���#��A��#���pB$ ��qH$>��eH%P��	8�&���	*8�'���y�(��~ )X��e�-`��e�-h��:�-����	-���e�/�����/�����/��)��
0��?��
1�s��
2%����
3>����
4W�ّ�
5p���6����
6����7��%��7��"��8��<��8��V��9��n��9�����:����:����<�ǒ�>,�J�@\�^�@����B �ȓ�BH�ݓ'
B��e�B���:B���:$B���n�C���n�C��:�D!��:�DD��:�EL��:E���:�F���:�F��G�!�&GZ�
;�Hd�;�H����I����I
���J���$Jd�	8�K��	*8�L��y�M���I�N,�:W�P��e�P4�:�P���n�P���n4P��G�Q��#G�Q��:W�R��e�R��ɔ�R��Ԕ�R��ܔ(R'	��.R`	��=Sq	��AS~	�
��
S�	���
S�	�&�GS`
�6�MS�
�H�TTh�i�[U����bV$
���hV\
�:�W5����	W7���
X:�	ÕX=�	ѕX@�	ޕXC�	�xX\�	)�xYu���Z��Q��[��b��]��s��_��|��`�����b��	��d�����d�����e��	��ve��	���e��	Җe��	�e��	�e��e�e��e�e-��x�i5���i=����iL��ajT��gjc��kl�+��k��8��l��L�4l#�`��m+�i��m:��'�nP�r��n�����p��	8�p$�	*8�qY�y�ru�e�s���x�u���'�u��(�u���v��+��v��8��w��L�4w��e�xg���zt����z���a{���g{���'�|��`��|��i��|��:�}(����}��rK�~���K���e����:�������s�rK����K
���e����:����e����$�#�]�rK)�p��K0������	���;�8��[��
�@�m��
�u�eH�����������N������������(�e��x�J����sf���^��,�:����N�_���Ku����_u����g�f��z�m��e��P���s��������ۚ�������|�J����^����e��������������֛��L������J���^����e��� �����!�����"�ל���"�����"�#���#�>���#�K���,#�����[$�r����$�J���$�^���%����	��%������%�ϝ���%�e���%�/qO�&����$&�)����&�B����&�X����&�q
��&�r����&�����'�J��0'�sf�<'�^��!(�:��`(�e���(�J���(�^��)�e���)�b����)�x���d*���
��*�����+�՟��P+�����+�J��,�^��-�:��.�e��.�J��L.�sf�X.�^���.������.�e��/������0����1�J��D1�^���1�e���1�����1�J���1�sf�2�^��/2�Y���72�e�4�@2�:���2������2������2�ȡ��2����3���� 3��
�43�e��k4�Q�)�t4�l�)�}4���1��4�p��4�q
��4�/qO��4���7�'5���F�D5���7�6���7�6�ע��&6��N�P6��N,7�R�o8�\��
48�u��
P8����
�8���~
f9���o9�ɣ�
�9��O��9�٣�:��.:����T:���:� �;�8�l;�T���;�k�s�;���s�;���s�;���s�;�ݤ
<���
:<��
O<�7�
!d<�o��#�<����%�<����&�<�dP�(=����)N=�˥4*t=���+}=���-�=�6��/�=�R��1�=����3�=�J�4�=�sf4�=�^�6�e8��Q7:�R�<�R@�B�e�A�B���A�B�J�A�B�^�A�C�e�C�C�pC�C�H��C�C�_�$ED�J�GLD�sfGXD�^�IiE�e�KwE���K�E�"K�K�E�#��K�E�J�KF�^�K�F�e�M�F�s��MG����M~G����O�G����Q�G����S�G����S�G�˪�T\H�ڪ�T�H�J�VI�^�V`J��XhJ���
XqJ���YxJ��%Y�J�J&Y�J���Y�J�e�Y(K�K�YL�f��[`L�q
\hL�J�\�L�^�\M���u^%M�N�^7M�c��^JM���_PM�e�_�M����_O����a8O�ʭIcOP��Qe�P�0�Yg�P�]�_gQ�h��
heQ���~
i�Q����k�Q���g
l�Q����mR�Ʈhn/R�خooBR��	pXR�J�r�R�sfr�R�^�t�S�:�v�S�e�v�S����v�U�j��	vxV����w9W�ӯ�yDW����{X�(��{HX�@��	}PX�[��	}\X�J�~�X�^�~$Y��<3	�8Y�e��Z�ذ��VZ������Z������Z����T[�!���\�3���,\�H����\�Z�4��\�g�4��\�v�	��\���	��\���	�
]�ȱ	�-]�߱	�M]���	�x]�ל��^����5^����=^�9���F^�[���O^����|^������^�J���^�sf��^�^���e���Q���R���R���e���Q4��R���R�L`�e���`�J���`�sf��`�^���a�e���a����b�J��<b�sf�Hb�^��	d���	�d���	�d�-��	�"d�>��	�+d�O��	�3d�_��	�<d�����Nd�����\d�e���d������f����	��f����	�,g����	�xg�ל��Gh���dh����h��
�,i�G��hi�l����i�}���i�J���i�^���k�:���k�e��l�~���<l������l���	��l�J���l�^��Fm�e���m�����m�ܸJ�6n����ln�J���n�^��io�e���o�*�R��o�5����o�V��	��o�l��	�p�J��0p�sf�<p�^���p�e��Mq�����Xq������q�߹��:r����Dr�8����r�S���Ts���Y��s������s�Ǻ���s�����s�����s�b�a�Tt���i�|t�ʻq��t�J��u�sf�$u�^���v�e��v�p�v�J�w�^�^w�e�lw�J��w�^��w�e�y�J�Hy�^��y�e��y�����y�ʼ4�z��z	�z����z�D��
P{�{���{�����|����}�J�4}�^�~�e�8~����p��׽�����������(��3�����J�ȁ�sfԁ�^�x��e�!����w�!
���w�#����	%@�����'���"K�)���ľ�)���J�+��^�+���sy-��e�-P��J��-t��t�/���7t�/���gt�1Ȇ�J�3���^�3���sy5��e�5h�����5���t�7���7t�7���gt�9؉�J�;��^�;��e�=�����=^���O�?t��J�@���^�@��e�B0��0��BX�����B������D������FЍ����H�����H(��˪�I���ڪ�I��J�K<��^�K���e�M0�����M�����O�����Q��J�Q8��^�Q��e�ST�����	S����w�T����w�VГ���X����Z���J�ZД�^�Z���e�\���^��\���J�^ܖ�^�^h��e�`������`$�����bD�����b^����cx����e���2��g���J�iԘ�sfi��^�k��:�mD����fmW�����oi��e�p���	�vp�����p���:��p<��J�rl��^�r��e�t(�����tK�����v`��J�x���^�xD��e�zp�����zŝ�]��|��t��|/�����|\�����|l�����|���J�~��^�~k��e���������������П�J����sf���^��L��e��̡�x���<�����������Y������Y������Y�آ�������������!������.�����>���U��j��n��������������J�����sf�̤�^����e����J��@��sf�L��^����e����h��D��J��t��sf����^��p��e��	��"K����B�0�@��[�0�\��t���ԩ�J����sf���^������8���e��!������7�����:�����
�=��e��E��e��P���H����/�N����;�T����e�����O�����J��$��^����:��h��e��̭�����������>����g�`��
������#�s����P��	�
��m��	���,]�	�-��I]�	�<��J��l��^���8�e���8�e���8������9�e���9�e���9�I����>�e���>�c���#�e��#���=�yQ�e���Q���E�@U�e��HU�����|�e���|�o�	����������������������������
�������!�,�6��!�,�6�>��!�,�6��!�,�6�>��!�,�6��!�,�6��!�,�6��!�,�6��!�,�6��!�,�6��!�,�6��!�,�6��!�,�6��!�,�6��!�,�6��!�,�6��!�,�6��!�,�6��!�,�6��!�,�6��!�,�6��!�,�6��!�,�6��!�,�6��!�,�6��!�,�6��!�,�6�N��!�,�6��!�,�6��!�,�6��!�,�6���!�,�6��!�,�6��!�,�6��!�,�6��!�,�6��!�,�6���!�,�6��!�,�6��!�,�6��!�,�6��!�,�6��!�,�6�>���
��X�c�X�c�n�X�v���ix�c�c���c������������v���������!�,�6��!�,�6�����������������������'�2������X�?��������������K����c�Z�c������������������������n����������������������n�m�w��������������m�����������������������������?�������?���������������������������!�,�6��!�,�6���H�H������7�H
��<�H
�<��!�,�6��!�,�6����L���!�,�6��!�,�6��!�,�6��!�,�6�19L�Q�����L�!�,�6��!�,�6���������[�m���������������c�Z�s�{��������H7�7�����7��������,�������!�,�6��!�,�6���������C�CL�Q��������wF����������������wF���������������L������!�,�6��!�,�6���CHHHH+H8H����������������������L�������%�%�+�1�������1�����1�1�1������L�L�L�L�L�����H�����������O������7�8�D�7�O��L7������X�_�f�X�������������o�~�������������L�Q���>��!�,�6��!�,�6�����!�,�6��!�,�6��������������������~���������������������������]���������J^�������������������������������L������������������>�����������������������ElElllEl�l�!�,�6��!�,�6��!�,�6��!�,�6�L�Q���������������������������������h��
����r�t�������������
��������h��
���
���h��
���h��
���������#������������
�X�_�����f�X���+�4�2
?������������O��������������,�,�,�,�,�,��HH���
�������C�Y���������������]�]��Ll�z�������5��������.��������������������L�Q������������������
�������������������i���r�������������������������2���2�����������H��̎&�&�m��,���H�!�,�6�8����������h��������������
������������HH���@�J�M�M�5�L�����HH�HH�V�V�Y�O�]�V�a�J��LNf������dt���HJ��L���t�������dHHHH��dHHHH�HHHH�L�t������r�����h��
���y�������������������������
���������������
��������������������������
������������������������h��
���
��������L��
���h��
������
������h��
�������������������iCH�i���iCH�iCH���iCH���������iCH�������iCH��<���D���O�8����i���������������������������HHHH��HHHHHH����������������h��
�X�_��iCH�iCHf�X����
���������h��
���
����������������
��������
������������������L���L�������������h��
���������������
��������.�<�<�����������������������������������@������h��
�X�_�<�<�f�X��X�_�����f�X����h��
������h��
��������,�,�,������������������
���������
���������
��������h��
��������������������������������������h��
���
���
���
����HH�H��Q������������Z�HH��
�H��������h��
������������������
������������
������������
��������
����������������
���������
�,������������
������
�����l�����������h��
�����������
���������
���������
���������h��
�<���������������c����<�<��8c�������h���h��
���h��
������h��
������������h��
���������
�����������
�����������7���
	


#02A56A78:A<BYENR�R�R�R�TA`bk�q�uA���
�
�
�
�
�
�
�A�
���.�
���A�����A�
�A���������A�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�
�


��!~ !� ��>�	��>�	|J�
�JrK!�K�I�Z�I[�IT[�I�[�I�[�I*\��	���6���}����������0���r��e�	e�e�e�!e�)e�1e�9e�Ae�Ie�Qe�Ye�ae�ie|ye��e��e��e��e��e��e4�e�����,G�!-��|�G��A���Q�
�_��e�!e!g��!s���e��������5G��5G���W
�����X�	��"�����	e�	���		��	G��%��	1���D���_��|e!J���A�����A�)!	m�E)	eK1	��~
9	�g�A	���)��YQ	��_)��eY	e�a	�f�a	���i		�l�	e��	e~
e��	����	e��	�8�	e�A	�+�Q:���	G��W���f���t����������A��a	��Q���K���
�rK��������	�G�������g��	�$�	e�	R*)e��L�;	T�C
e�
e�)
e����M1
��S9
#�Y	:W�)
e��C�p�rKv1~ �K}�e�1e��O���X���v���G��v���G��v���G������K������(K�����e��Kq
e����(����������
$�,9e��
X"
�e��
K�8�rKv�K�
�!
�e�ye�y�)�y�)�y*�y�(��~��y�2�y���yx/�y�.gy�.4y�)�yE24y�3�y�24y�)�y�.gy���y�/�y�/�yr0�y�/�y?0�y0�yl2��KAe�A�(�A�+4Ax/�A�.gA�.4A�.gA�/�A�/�Ar0�A�/�A?0�A0�AO/4A�.�A�(���Qp�
�"
�e��e�KIe�I�)�I�)�I)�I1)�I_)�I*�I�(�IC*�I**�I�)�I�)�I�(�e�_�:Yt+�A�.a�����
��e�
��e�
�W�K&����e4$K&,���4K&<���y�2��,�[y^2z�8�b�D�b�P�n�
�?�DK�L���KL��K�T���\e�
���T���
&
Ye�Y�)�YV,gY�)�Y*�Y�+4Y�,�Y�+�Y|,gY�,�Y�+�Y-�Y�,KY�)�Y�)�Y�+�Y,������H,a��)�������n���+��o,a� *���+����F��)����������$�l��MlK}le�ae~
a��c�
��aeia%�qa5���
e��
e��
e��
����
��
 �
����
�� �
�� �
�� �
&�' >�- S�: ie�	e�e�e�!e�)e� �	���
��T"�
��g"�v"t�G�t�G+��"1e��
���#|�G�|�G��G���G�
���$�
���$�
���$��G���G��G���G�
���%�
���%��G���G��G���G��G���Ge��Y�T(9m�`(�@KT(ye��L8�yu8yh8��G����M�G���K}�e���Q�e�(�e�(�}��Ye�����(�:W�Y��N����(�:W�(�e�i�H#aW��Qe�Q���	Q�<G����(1e��K�1��(qe�(�K�V�ye�	z��(�_8�(�V8�(�e�e����
e�
���������1K))���)��)�
��)�e:�e�eA)�"K����U)�eye^)�e�	�f)�<�l)��G
�ez)Ii���n��)�v��Qe�Q�i�)�K�)Q���)�L8��rK�)rK��K�)�
J&
�K�)Ie�����)�e�q�����)��G
�e��;���e��e��tG�S��e���*���*�G�y��*���	e�YP*���e���H
H*�e(*)e1*�e���K}���M��(9H�H*�������\*�eg*Az��($e�Ie^)Ie�	A��
Q��v*���}*�e��e�����
�	R�*�K&����y-������
�@Kp�@KpYL��*ae�*��*"��*,��iS�+qrK+y��+�rK%+��G�e��e�Q��,+�,�1+���:+e����qKH+�L8��rKd+�9Kp+�"K��YP��_P����M�K}Ie�+A�
��SK)���
$�,L8��
qW�+rKd+)*���e�+�J��+�e,|��+,���+����)e�KGK4,e�i�<Q��BI$Z�����+��G����+)!��+�rK�
1v��+L8��e�+���,1R�	,1x�,rKd+�� ���������rKd+1e����*,���*,Q�W4,�
�8<,9e�$e�����$C�p$rKvA
e$$K}�y�Ie4)��~�f,��(�(�~Iep,)8�
�H�w,Ae��e|,)LZ�)U��,�l��,	
���
	
���
I����
qW�,�
mW�,
���,
e�z��,4S��!
e)
��,)
/��,9G��	4e�Ie�<e�te<L8�<rKd+1
W��,	]��,1
u��,9m��,9z��,	���,Q����_��,	���,e�	e�	YP�4K	��-4L8�Ii�14rKd+9��-	���,��-	_P����(-e3-���Q��v*�	
�:-�e@-���P-YP���x-�Q	yep,� �}-�.�}-�9��
Ye�A
e��-I
�h
<eDe:Le�-Te\ede.leteA)|e�eA)�e�9��S.Y
��	Y
��	�K&�����(Kpa.��1
C��.De��~��.�o��.�:93Ye�.Y���.ie�����.����.����.	�Hf)TL8�TrKd+e�q
e�qe0i���.y
e�ye����y(��.�
�W�.�
>��.y/qOyN�q�<Q9j��9|��
���.����	�
e�.�e�.���/�
rK!�
��/�
�/�
e��
l�+/�e��v��
�%��	�
K����	���2/�
����
@K�	��
�
�g�y"K��
L8��
e��
%t�q$��/q4��/�
a��e����/	������i		��1)���	)����&o2)�2�	R2�GK4�L8��/��,1e;2�K�e��	@�	9�g��	G���	�G��
S��,�e�	{�Z2�e$�e����2�e����2����2	���
Q���2����
1
���2Q�����H�2����2�5��Ye�ae��e��K�e�e.�GK4�@Kp�GK4�K&����1H���rKd+qH���K&����ie�	iep,Le�qe�f3ye�y���y��������������:y����
���3�
���3Te��e��L8�	L8��
�4K�L8��
�%
�
�4�K�L8��
�
�
�4�P�54�K�K������e4�rKd+�rKd+Q,�v*�5�s4K�O�|4t�Q�4e�L8�_�:>��4�e��e��e��V��4�r��4�K�(KpQe��e��i�5�K5�v�����+Q��5�e5�K��K������G��e�A��c5)��*�j5�3�~�e�����	�e��h�|5)���5�	��~�	��~����5�e��e5���5���5de�e�	e�	I��5e�5!e�51���51���5A�"�5�e�lenl����e�I!��I!�6�1�6�U�
I�� 6q�i&6rK56����Y���
q���q��;6Y������a����@6�L8�e�
<�O6�_�`6qz�f6)��
9��l6�
�v6Y��	Y��	q��6�e�6�
�,��4I���a���H�6�>�5����6�e9��6���6��i&���C��YP��9X��6����������6���6������.���P��6$rKd+����6����6���69��a��6�~��49�7q�����9,�=�9O��e��w�������a����I
�I
���"�
93�7����	�r�4�U�
�L8��}�A�������7��$7,rKd+a�874rKd+�rKL7���YV�N�:WR7��G
<L8���4���q��9�b7���h7DrKd+	Y�{7LrKd+qn�
9��7����7����7���I��7��.�4������71�W71
�4���9&�4���!TeIB��79|��e�7q���7����7q��q��q�q��7���7)e9��79,�g
y=��79���7a���
a���2�9e��e8�e@�K18Ae�Ie�\v�\z��	�k8dz�dv�|z�|v���Q�8�e�Qe�)��	����	Y�
�:W�:Y%��	��������$���$��e�lz�lv��%�k8z�v�tz�tv�a��:�rK�:�_8�
�V8�
le�
$�.;\edete�e4�K|e4|K��Q�;�e�;�e�qe��=AK	�H�
q/��?ye��u���?<a	�d�e�<�eye�<���<�e�e�<�K�<�.
YP�<a<~�W�<)b�
ao,a��,a��<��~a�~a��a�,�
�
��Gza4�e��*��M��\��y*=��1=	��
Q������e7�{N=��1��X=������I
��a���K&����q�}=�e��e����=���K�e��M�=�Z��u��~�=���=�����rK
�W�����=��
���	����e�eX=�e}�K�L8��e�	>�L8��rKd+��������HN�
mW�+�%C>��GM>�r�R>!eqKZ>)eq~a>9�~9��>1��1���
��>	���	�>�K�rKd+�L8��e�a*?I
%��	$K����Aa9�G
9,�	9=�$K&aI<?�UB?aU�Ae��X?�U�
q�;6Ie��Q@�Kae��Q�q�}=�L8�q��y��"K�Q9�A�e��e��e��e��MW	�KyJ��ae�m�A�K}���9�����A���q��@�4������A�e:�e�	>�K�������	��	��L8��9Kp+�KQ 	�Y-	��"K�Y<	��D	�)
J	�Q	e	_�L8��rKd+�o	G�,�:B�		��	1�	��rKvq�	CBy�	���	���	a�HNa
�a
B��G�	�rKd+���M�K}�C�p�@Kp�A
��W
`B�d
gByg��ys���eq�
nBq�
�q�
�q�
�q�
�y��9�
��g
9�9"?C�A�)K��h=�v5�	��C���C���C�	���C�	��CA	(<�CA	�9
�C9)D9@~��%
�[=D�e���HD���$K)��	������^D�����K��e��dD�e���+������jD�
��'
��G
qD�Y
��q
��|
��e��
�De��e��
>E�����e�����5�e����GE�!NEK�e�ebE�kmEe��h�tE��~q=W���E���)��E������
�$"K���HN����q�E,Y�`�EA��
���Ea��Eq�;6$K4e�
��E$@Kpa�q,G�Y�F�&�
ae�CFaQ�
am�FI
���aw�<���	�e��
�}����	�����#�e;2��F<z�<v��C�F�e����DK	�"G��(GL"K��7GLK�E��e9eKG�e9�RG�e�YG<e��:W?H���DH<K�1KZHq����49;6q��(vH�e�Y}H9p�9�����q�[I��bI��H#)�H��%��.�
qWb�
mWb��b�K&T������
1rK
9��FDrKd+I-��1�q�I�eq3�IeIa�Iq�[I�t
9�4Y���q�\J��eJe��kJ\edeA)�
��J)�w,���e�����	9(2K9P9K9/�@K�O�FK9cNKalc5a�c5)��VK)�\Ki��q��.�G�hK�vK�vKvKvKAe��|KIeQn�KQeQ��Kle�lKq�tLt"K�q�4���La�L�
�)
|%C>|r�R>�44����i�HNaR�Li�G
�_����Ly��L�|h�	�eq��L�eq6�L�"�
$"K��l�a�QMa��
���)�~Q�oM������HN� �A�e�J�Mq\��{��
�u~��~��~��~��~�	D�$D�7D�ND�iD��,��,��~��~�~~	4	�Kc5�e~���C�e�O�e�O9��O��,��~�,�~
�<2~�e��KQe��S�If�5�s�q�)Q�"K��rKd+�e8Q�K9�g
9����9"�9:�9S��
t
�qb��H
9c�	i�l�Y�Y�
�����~
��H
��H5�e��Q�e	R�e.R�e�8��e5�e�>�S�Q�S�d����S�e�����S�e���S�S�e��e/Tq2�9Bg
Az��,�e�eA)�e�eA)�e;2eFU�ph�	!�UU!�UU!�UU!�UU����j�o�j�o�yizp�

�X
�a
�j�s�xjoyjoy(0,o0y4o
85
�

�
�j�o�y���0�z.C�Z.C[.K�[.C*Z.��V.K$\.S=T.[�\.c�\.��V.CY.�[U.��U.��U.�$V.�KV.�yV.�yV.��V.�#.C�Y.�V.W.#.#W.3*W.;o.C8W.C�W.C*X.C�X��d2��o������o����	H ��	o��	o��	p 	�	� 	�	o)�	o)�	� I�	oI�	oI�	oI�	� i�	H i�	o��	p ��	o��o�s	��c	���	� ��	o��o�c	� �s	���	o��	� �s	��c	�!��	� ��	o�os	�c	"	�	� 	�	o!�o#c	n##s	�)�	o)�	� Cc	�$Cs	�I�	oI�	� cs	�cc	f%i�	� i�	o�s	��c	k&��	� ��	o�s	��c	�&��	� ��	o�s	��c	@'��	o��	5!��	o��	o��o�s	��c	�'��	o��	d!��	o��	o�o	�	o	�	H !�o)�	� )�	oA�oI�	oI�	oI�	�!I�	oa�oi�	oi�	H ��o��	p ��	o��o��	p ��	o��o��	� ��	o��	� ��	o	�	o	�	� )�	o)�	� I�	� I�	oi�	� i�	o��	� ��	o��	o��	� ��	� ��	o��	� ��	o	�	� 	�	o)�	� )�	oI�	� I�	oi�	� i�	o��	o��	� ��	�"��	o��	o��	o��	�"��	o��	o��	o�+
#��	o		�	o		�	o		�	o		�	#)	�	o)	�	:#)	�	o)	�	oI	�	oI	�	H i	�	� i	�	o�	�	� �	�	o�	�	o�	�	� �	�	o�	�	� �	�	o�	�	� 	
�	� 	
�	o)
�	o)
�	� I
�	� I
�	oi
�	� i
�	o�
�	o�
�	� �
�	� �
�	o�
�o�
�	o�
�	� �
�o�
�	� �
�	o	�	�#	�	o	�	o	�	o)+
#)�	oI�	�#I�	oI�	oI�	oi+
#i�	o��	.$��	o��	o��	o��	o��	h$��	o��	o��	o�+
#��	o��	H 	�	H 	�	o �o)�	p )�	o@�oI�	p I�	oi�	oi�	p ��	o��	o��	o��	�$��	o�+
#��	o��	o��	o��	/%��	o�+
#	
�	o	
�	H )
�	p )
�	oI
�	oI
�	� i
�	� i
�	o�
�	o�
�	� �
�	o�
�	� �
�o�
���
�	� �
�	o�
���
���
�o�
�	� �
�	o�o	�	o	�	�  �o)�	p )�	oI�	�%I�	oI�	oI�	oi�	oi+
#��	o��	�%��	o��	o��	o��	7&��	o��	o��o��	o�+
#��o��	H ��	o	�	p 	�	o)�	o)�	o)�	o)�	�&I�	H I�	oi�	oi�	p ��	� ��	o��	'��	o��	o��	o��	H ��	o��	p ��	o	�	o	�	� )�	� )�	oI�	oI�	� i�	oi�	� ��o��	o��	� ��o��	� ��	o��	o��	� ��o��	� ��	o�o	�	o	�	� )�	� )�	oI�	z'I�	oI�	oI�	oi�	oi�	H �c�.��	o��	p ��o��	p ��	o��o��	o��	o��	o��	�'��o��	o�+
#�o��/�S/��/	�	"(	�	o	�	o	�	o �o#��/#�J0#�0@�oC��/C��0C��0C�o0`�oc�/1c��/c��/c��0��o��k1��o���1���1��o��2��2��os	�c	�3!�oA�oa�ocCS5��o��o���5��o��o�o!�oA�oa�o��o��o�[8��o��<8��o�o!�oA�oa�o��o��o��o��o��o���;���;��;C��;C�<c��<c�V<���<��h>���>��>!�o#��?#��?#�f?A�oC�@C��?a�oc�v@c��@c��/c�	Ac��/c��@��o��hA��6A���B��uB�C��B#�KC#��C#��/#��/)+
#A�oC�
Da�oc�
Ec��Dc��D��SF���F��F���G���G��`G���G��H��H��H�/I#��/c�*Jc��I���J��rJ���/���J���/���K��K#�LC�DLa�oc�Mc��L��o���M���M���/���/���M��#N���/���N��ZN��N��N�.O#��O#�sOC��OC�Pc�LPc�|Pc��P���P��DL�JQ�Q#��QC�RC�ORc��Rc��/c��Rc�S��;S��S���/��vS��o��o���S �FT �}T# ��T# ��TC �oc �o� �o� �o� �o� �o!�o!!�o#!�oC!�oc!�o�!�o#�o!#�oA#�oa#�o�#�o�#�o�#�o!$�o%�oI'{�.a'�o))�d2I)�d2i)�d2�)�d2�)�d2�)�d2�)�d2	*�d2)*�d2I*�d2A+�oa+�o�+�o�+�o�+�oA,�oa,�o�,�o-�o!-�o)-�	o)-�	H I-�	� I-�	oi-�	oi-�	� �-�	� �-�	o�-�	� �-�	o�-�o�-�	o�-�	� �-�o.�o!.�oA.�oa.�o�.�o�.�o�.�o/�o	5��8)5��9I5��9i5�:�5�2:�5�W:�6�d2�6�d2�6�d27�d2!7�d2A7�d2a7�d2�7�d2�7�d2�7�d2!9�oA9�oa9�o�9�o�9�o�9�o�9�o:�o!:�o�:�o�:�o�;�o�;�o�;�o<�o!<�oA<�oa<�o�<�o�<�o�<�o=�o =�o@=�o`=�o�=�o�=�o�=�o�=�o�=�o�=�o>�o>�o!>�oA>�o`>�oa>�o�>�o�>�o�>�o�>�o�>�o�>�o�>�o?�o ?�o!?�o@?�oA?�o`?�oa?�o�?�o�?�o�?�o�?�o@�o @�o@@�oA@�oI@�=T`@�oa@�oi@�=T�@�oA�oA�o A�o!A�o@A�oAA�o`A�o�A�o�A�o�A�o�A�oB�o B�o�B�o�B�oC�o@C�o`C�o�C�o�C�oF�o F�o@F�o`F�o�F�o�F�o`K�o�K�o�K�o�K�o�L�oM�o M�o@M�o�N�o�N�oO�o O�o�T�o�T�o�U�oV�o�V�o@[�o`[�o�[�o�[�o�\�o�]�o�]�o�_�o�`�o�`�oa�o a�o@a�o`a�o b�o@b�o�b�o�b�o�b�o�b�o�c�o�c�o�h�o�h�oAi�oai�o�i�o�k�o l�o@l�o`u�o�u�o�u�o�u�o�v�o�v�o�v�o�v�o w�ox�o x�o@x�o`x�o�x�o�x�o`{�o�{�o�{�o|�o@��o`��o���o���o���o��o��o ��o@��o`��o���o���o���o��o��o ��o@��o`��o ��o@��o`��o`������o�������o�����������o������o������`���`��o�������o�������o���������o ��� ��o ���`���`��o�������o���o����������o�����o��� ��o ��� ����������o�����������o`��d2���d2���d2��d2��d2���d2 ��o@��o`��o���o���o���o��o��o ��o@��o`��o���o���o���o��o��o ��o@��o�������o�������o����`��o���o��o ��o@��o`��o���o���o���o��o��o ��o@��o`��o`��o���o���o���o`��o���o���o���o��o��o`��o���o���o���o��o��o ��o@��o`��o���o���o���o��o��o ��o@��o ��o@��o���o�����������o����`��o���o���o���o���o���o��o��o ��o@��o`��o���o���o���o��o��o ��o@��o`��o���o���o`��o���o���o���o���o�����o�����o������o��o��o ��o�������o���o�������o��������@��o@���`���`��o`��� ��� ��o@��o@���@����������o�����������o`��o`������o�������o����������o��� ��o ��� ��� ��� ��o@���@��o@����������o�������o�����������o���o���������������o�����o ��� ��o@���@���@��o`��o���o�������o�������o�������o�������o�����������o����`��o`������o�����������o����@��o@���`��o`���`����������o�������o�������o��o ��� ��o@��o@���@����������o�������o��o������ ��o@��o`���`��o�������o�����������o�������o�����������o ��o ���@���@��o`���`��o`������o�������o������o������ ��o@��o`��o���o���o���o�������o�������o�����������o�������o����@��o@���`���`���`��o���o��o ��o ���@���@��o`��o`���`���`���`��o���o�������o����������o��� ��� ��� ��o`���`��o�������o�������o���������������o ��o ���@���@���@��o ��� ��o@���@��o`��o`���`���`��o`��������������o`��o`��������������o`���`��o�������o���������o ��� ��o ���`��o`����������o���� ��� ��o@��o@���@��� ��� ��o@���@��o@����������o���o�����������o������o�����o��������o��� ��� ��o ������o�����������o�������o������������o`��`�o�����o��������o�����o��o��������o����o�� �� �o@��@��@�o��o�����o�����������o�����o��o�����o�������/o�����o��o������ �o ��@�o@��@�����%1;Sz��6c�����Ro����u�$V /!�!N"�#�$�%�&'t'�'s((�(�(�(�()q)�)�)�)�)*8*Q*b*n*�*�*�*+O+j+w++�+�+,0,N,_,�,�,�,-#-]-l-�-r.�./%/8/M/�1,2A2J2�23*393W3�3�344<4Z4�4�4�45J5r5�5�5�56�6�6�6�7�7u8�8�8�8�:�:�:�:�:�:�:�:4;F;L;V;];};�;�;�;�;�;M<8=`=�=>�>#?1?H?_?X@r@�A�ABBB+BIBTBZBEC�C�CXD�D�D{E�EF�F�FG=G1HLHaHpHUIhI�I�I�I�J*KbKpK:L�L�L�L�L�LXMvM�MeOkOQ#QCQ�Q�Q�Q�Q�Q5S�S�S7TUOU26:Tuv����
������8q8q8q8q8qg
8q�
j�
Մ:֍�8q8qA�
S�
g�
8q:��8qM�
]� !$%&#'0(3)J*_+h,w-z.~/�2�6�:�>�?�@�A�B�C�D�F�G�I�L�O�P�Q�R�S�T�V�Z�[�]�a�c�d�e�k�n�o�qrstuvw!x#{%|'�.�/�1�2�3�4�5�6�8�:�C�F�G�H�I�J�S�b�d�g�h�i�o�r�x�y�z�|�����������������������������������������������������������������������������������I�#!�\!?�!����B���$B�$��$L�$��$W�$�K%sZ%�����s'����������'�'�'�'(�'3�(��(��(��(l�'qi*�t*��*��*��*��*���*���*��*���s'�I+�X+����-��-�.�
.�.�#.�-.��*��*���*��6.�@.�J.lP.�V.�`.�j.�u.�.����'�o1�i*��-�w1��1��1��1��15�1��1��1��1��1��1��@�1F��2��Q\2bo1�I3�S3�]3�f3���o3��~3I3�y5��5��(��5�S35�5l�5l�5l�5?�u�5{�Q��5�h6�q6��'��6�t*��*����5�t*��*��*��*��*���*���*��*��6��'q�7��7�h6���7����8�#!�9��Y}_~:��:��;��;��;��;�<�<��<'	�<-	�=u	�={	�=��=�	�<'	�<-	.��-��*��?��?��@�	�@�	�@�	nA?�!
�'
RCYdCYwC,
�CY�C��C?�EM
FM
%F?�C?=FM
KF�bF�jG�oG�H��(��H?jG��H�
�H�
:I�>I����K��8��K?�K&�H?�K?�K*�L��L��L�tM&|M?�M�jG��M��L��<O@Q�JQ�VQ?cQ?mQ�|Q��Q��Q��Q��R*�RO�ZTY�ozV?�V?�V?�V?�V?�V?W?oG�mW�qW��W�hX&pX��YuY��Y��Y?Z�9\�C\�u\
f]�	pX��8��]?�_j
�p
�_?`�#`z
.`�
�o�c�
�c�
�c?�c?�c?d?d?5d?Ld?hd?�=Y�e�
�e��f��f��f��f��f��f��fs�f��e��d��g?�=Yh�h�	�h&�h>I<[i��=��k��k�	�k�	�k�	l�	5l��l�H�#m�#m�#m�#m�#m�#m��m��mQn?hn*p<.p�1p�9psDpsy5�Np�]p?dp��q?�q?�pV�s��s��q?2
U*p<&y�1p�9p�Dp�y5�Np�]p�dp�d~Yo~Yv~?}_�~��~��~��~��(�=�R�	^�	i�	r�	����3��?��J��p��Ӏ�;�1p��;��;�?�8<��@&jG��kT҂�܂����?��p�&�8�D��jG��(ljG��$���ۆ��?��w1s��$y5�]3����Q<-	QsO���@[jG�V�l�pV�=u	M�3�s�������'	������ʉ�މ�������pV�=u	M�3�s�������'	������ʉ�މ������q�U�;�1p��;��;�?�8<��=u	���y���pV-����{�������������
�,
�;�1p��;��;�<�?�8<�}���.p�jG��?%�?.�?F�?O��]��j�?��?��?&y������s��?�������(�&y��(���?��������s�(�����������BșTי?+���U��k�?`��q?��?�?�q?�/���5�'5��M�Y�??�?���	�=u	I��@��	J��	W��	c�9p�?���	�q?�s��s�G�?z�������[G�a���	f]�	��������V	W	�
�
ba��p
q
tswv��~������������������������ � �!�!�"�"�#�#�$�$�%�%&&�'=(<(�)�*�*�+�-�/�1�3�5�7�9�;�=�=�?�?�A�A�C�C�E�E�G�G�I�I�K�K�M�M�O�O�Q�Q�S�S�U�U�W�W�Y�Y�[�[�]�]�_�_�a�a�c�c�e�e�g�g�i�i�k�k�m�m�o�o�q�q�s�s�u�u�w�w�y�y�{�{�}�}����������	���
�
������������������ �!�#�"�$�%�&�'�(�)�+�*�,�-�/�.�0�1�3�2�4�5�6�7�9�8�:�;�=�<�>�?�C�B�E�D�G�F�I�H�K�J�L�M�O�N�P�Q�R�S�V�W�X�Y�[�Z�]�\�^�_�a�`�c�b�d�e�g�f�i�h�j�k�m�l�o�n�p�q�s�r�w�v�x�y�z�{��~������������������������������	�	���
�
�������������������!�!�#�%�%�'�'�)�+�+�-�-�/�/�1�1�3�3�5�5�7�7�9�9�;�;�=�=�?�?�A�A�C�C�E�EG�GIIKK	MMO
OQ
QSSUUWWYY[[ ]!](_)a1c0c2e3e4g6i5i8k7k:m9m@o?oBqAqDsCsFuEuGwHwJyIyK{L{\}[}]^g�h�i�j�p�q�r�s�w�v�y�x��������������������������������������������������������������������������������������������������������������������������������������������	�
��������������*�,�+�2�3�7�B�A�F�E�G�H�LTUVXWY	Z	\[]
^
bacdfehgijlkmnporqt!s!u#v#w%x'y)�++�-�-�/�/�1�1�3�3�5�5�7�7�9�9�;�=�?�?�A�C�C�E�E�G�G�I�I�K�K�M�M�O�O�Q�Q�S�S�U�U�W�W�Y�Y�[�]�]�_�_�a�c�e�g�i�k�m�m�o�o�q�q�ssuuwwyy{	{
}}
�����������'�0�L�^�b�a�d�c�f�e�h�g�i�j�k�l�m�n�o�p�r�q�w�x�z�y�|�{�~�}�����������������������������������������������������������������������������������������������������������������������������������������������������			


 $#%&,-./!0#1%2'3)4+5-6/7183:5;7<9=;>=??@AACBECGDIEKFMzO}Q~QS�S�U�U�W�W�Y�Y�[�[�]�]�_�_�a�c�c�e�e�g�g�i�i�k�k�m�o�q�s�u�u�w�w�y�y�{�{�}�}����������������������������������
����
������������ �"�!�$�%�&�'�(�)�*�-�.�2�3�8�9�@�A�h�i����������������������������������������������!�I�J�K�L�M�N�P�O�W�o�p�����������/01>	=	?@0�����B&B$	EJELRR
R0R2``knkfkhkjklkd�J�n�z���������<	�<
�0!�2#�4%�6'�8)�:+�<-���������������
�
�
�$
��
��
��
��
��
��
� �8�n�������������
����4�F�X�h�x�������������������
�,�4�>�Nj���$,3;AIQYairz�h�����1BJ�����}��09AIR����:=�"�#�#�$�$�%�%�'�(�(+)3):)L)>*�*�*�*A+�+�+",U,�,�,�-�-�-�-.
.+.2.9.B.K.Y.b.k.22S2�2�23
3!3N3�34-4Q4k4,6F6�6/7C7Z7r7�7�7b8�8�:�:u;A=k=t=�=�=�=�=�=<>?�A�A�A�A�A�A�AOD6EYE�E�E�E�F�F.G�I�J�J2LzL�LHMQ/Q�S"U+U4U=Uy�\M�
)8

O��

]�An

%

�6

�

���&"

s

w

���l�

���

�� � ��, X�X ��� x�� ��� �� ��'!�^!��y!(��!h�!���!�"�E "�I@"XpX"(tw"���"3242WVXVYVZV�������� 	�
�����������
�
U}U�U�U�U�U�U�U�U�U�U�m�o�m�o�m�o�m�o�m�o�����m�o�����m�o��������������}�}���������m(%)M�)M�)M�)M�)9H,M�,�f-��-M�-M�-M�-A/��2p3v3|3U�3��4�6A�6����8	G<�	��E%
�E��S<Module>GridDemo.exeServerModeOptionsGridDemoSQLConnectionWindowServerModeRecordsGenratorMultiSelectModeConverterFocusedToColorConverterPastUnderFocusedRowToSelectedIndexConverterGeneratingDataToWaitIndicatorTypeConverterIssueStatusImageConverterIdToUriConverterCategoryDataToImageSourceConverterBooleanToDefaultBooleanConverterNavigationStyleToTextConverterScrollingAnimationDurationToBooleanConverterShowSearchPanelModeToTextConverterFindModeToTextConverterFilterConditionConverterSearchPanelModeConverterGroupNameToImageConverterHeaderToImageConverterColumnHeaderTextConverterBirthdayImageVisibilityConverterViewToBooleanConverterCountToVisibilityConverterIntToDoubleConverterRoundValueConverterInternetConnectionControlOrdersWithDetailCustomersWithDetailEmployeesWithDetailsEmployeesWithDetailsForEmbeddedViewEmployeeWithDetailsChartPointCountryNameResolverEmployeeToOrdersConverterNorthwindEntitiesGridDemo.ControlsCategoryCustomerCustomerDemographicEmployeeOrderOrder_DetailsProductRegionShipperSupplierTerritoryAutoFilterConditionVisibilityConverterDynamicBindingListDynamicDictionarySetMemberValueBinderGetMemberValueBinderStringStateToBoolConverterNewColumnModelXmlIntegerConverterXmlDateTimeConverterEMailCardRowTemplateSelectorCollectionViewViewModelColumnChooserTypeGridColumnChooserToExpanderVisibleFocusedGridRowsAnimationElementCopyPasteOutlookDataPasteCompetedHelperPasteHelperPersonDragDropViewModelDXExpanderDecoratorDoubleToCriteriaOperatorConverterGroupIntervalDataGroupSummariesAlignmentViewModelConditionalGroupSummaryItemTemplateSelectorGroupSummaryViewModelDemoTableViewHitTestVisitorDemoCardViewHitTestVisitorHitTestInfoHyperLinkAttachedBehaviorCustomerDetailsConverterCountInfoVirtualPropertyDescriptorLocationVirtualListProcessInfoAnimationElementProcessInfoProcessInfoListProcessGeneratorProcessUpdateModeUpdateTypeUpdateDelegateProcessToRemoveLiveDataChartElementCpuUsageHistoryMasterDetailViewModelMultiEditorsTemplateSelectorMultiEditorsListPercentCompleteToFontWeightConverterRangeProductIdToProductNameConverterCustomNodeImageSelectorMultiViewViewItemMultiViewViewModelBaseMultiViewTableViewViewModelMultiViewTreeListViewViewModelMultiViewCardViewViewModelMultiViewBandedTableViewViewModelMultiViewBandedTreeListViewViewModelResizeableDataRowResizeableCardUnsafeNativeMethodsCommandManagerAttachedBehaviorCountItemCountItemCollectionOrderDataListSourcePLinqInstantFeedbackDemoViewModelPrintMasterDetailModuleViewModelChangeThreadMarketDataRealtimeDataSourceViewModelRoutedEventCommandHelperRoutedEventHandlerArgsEditValueChangedEventExtensionSendEmailButtonListColumnGridSearchPanelViewModelLayoutSampleBaseResourceLayoutSampleMemoryStreamLayoutSampleNavigationStyleListNavigationStyleToIsEnabledConverterShowTreeListLinesConverterTotalCellTemplateSelectorDecimalValidationRuleIsGreaterThanValidationRuleIsGreaterThanOrEqualToValidationRuleIsLessThanValidationRuleIsLessThanOrEqualToValidationRuleDoesNotEqualValidationRuleVerticalScrollingOptionsViewModelWCFInstantFeedbackViewModelQuestionGridDemoModuleBandedViewPrintViewGridDemoModulePrintMasterDetailEmbeddedTableViewGridSearchPanelMasterDetailViewMasterDetailWithEFRealtimeDataSourceUpdateGraphDelegateSCEntitiesGridDemo.WcfSCServiceSCIssuesDemoCollectionViewNavigatorDXDemo.ControlsGridSummaryListNameTextControlHintControlDemoValuesProviderEFConnectionStringProviderDXGridServerModeDBEntitiesEFServerModeTestClassGridControlDefinitionCollectionGridControlDefinitionGridColumnDefinitionOrderDataGeneratorGenerateOrderDataProgressEventArgsCategoryDataProductDataOrderDataSalesByYearDataSalesByYearDataColumnTemplateSelectorStoryboardContainerTabHeaderPrintInfoControlCountriesDataCountryXPOServiceHelperGridCheckAllDemosFixtureGridDemo.TestsGridDemoModulesAccessorBaseGridDemoTestingFixtureCheckDemoOptionsFixtureBugFixesFixtureDataGridTestClassesDataContextWpfServerSideGridTestDemoColumnChooserControlDemoColumnChooserGridControlWrapperCountryToFlagImageConverterCommonDemoModuleCommonDemoMultiSelectionOptionsControlDemoDataProviderPriorityOutlookDataUserOutlookDataGeneratorBindingCollectionTaskRelationTasksCategoriesTasksWithCategoriesGroupingControllerTasksWithCategoriesAutoFilterRowCardTemplatesCardViewCellsSelectionColumnChooserBindingToXMLBindingToDynamicObjectCollectionViewGroupSummariesAlignmentMultiViewCopyPasteActionDragDropFilterControlInplaceLookUpEditLinqToEntityServerModeLookUpEditHitTestMultiEditorsMultiSelectionRowFilterPLinqInstantFeedbackTableViewContextMenuMultipleGroupingNewItemRowFixedColumnsInplaceEditorsCurrentDataRowCustomEditTemplateDataErrorInfoGroupIntervalsLargeDataSetLiveDataPrintOptionsPrintTemplatesExpandCollapseGroupsLinqServerModeFilteringRowTemplateGroupSummarySerializationSortBySummaryTotalSummaryGroupingTreeListViewValidationVerticalScrollingOptionsWCFInstantFeedbackXPOInstantFeedbackProgramStartupResourcesDevExpress.Xpf.Demos.PropertiesUnboundColumnsPersistentRowStatemscorlibSystemObjectDevExpress.Xpf.Core.v13.1DevExpress.Xpf.CoreDXWindowSystem.XamlSystem.Windows.MarkupIComponentConnectorPresentationFrameworkSystem.Windows.DataIValueConverterMarkupExtensionDevExpress.Xpf.EditorsBytesToImageSourceConverterSystem.Windows.ControlsUserControlDevExpress.Xpf.DemoBase.v13.1DevExpress.Xpf.DemoBase.NWindOrdersCustomersSystem.Collections.GenericList`1EmployeesSystem.Data.EntitySystem.Data.ObjectsObjectContextSystem.Data.Objects.DataClassesEntityObjectSystem.Collections.ObjectModelObservableCollection`1System.CoreSystem.DynamicDynamicObjectSystem.ComponentModelINotifyPropertyChangedSetMemberBinderGetMemberBinderDataTemplateSelectorEnumSystem.WindowsFrameworkContentElementDevExpress.Data.v13.1DevExpress.XtraEditors.DXErrorProviderIDXDataErrorInfoContentControlDevExpress.Xpf.DemoBase.HelpersDemoViewModelBaseDevExpress.Xpf.Grid.v13.1DevExpress.Xpf.GridTableViewHitTestVisitorBaseCardViewHitTestVisitorBaseWindowsBaseDependencyObjectSystem.Windows.InteractivityBehavior`1System.Windows.DocumentsHyperlinkPropertyDescriptorValueTypeSystem.CollectionsIListICollectionIEnumerableITypedListMulticastDelegateFrameworkElementDevExpress.Xpf.DemoBase.DemosHelpers.GridMultiEditorsListBaseTreeListNodeImageSelectorControlIResizeHelperOwnerIListSourceButtonDevExpress.Xpf.Grid.v13.1.CoreGridViewNavigationStyleValidationRuleDevExpress.Xpo.v13.1DevExpress.XpoXPLiteObjectDevExpress.Xpf.DemoBaseDemoModuleSystem.Data.Services.ClientDataServiceContextGridSummaryItemEventArgsIComparableIComparable`1DevExpress.Xpf.DemoBase.DemoTestingCheckAllDemosFixtureDemoModulesAccessor`1BaseDemoTestingFixtureSystem.Data.LinqDataContextINotifyPropertyChangingIColumnChooserIColumnChooserFactoryDemoDataProviderBaseCollectionBaseIBindingListDemoStartupIsCorrectConnectionSQLConnectionStringfailedConnectionfailedConnectionCaptiondataAddingrecordCountdescriptionSQLConnectiondefaultDBserverParametersget_ConnectionStringParametersget_RecordCountProgressBarget_ProgressBar.ctorEditValueChangedEventArgscbDatabase_EditValueChangedShowParametersCheckRecordsGetDataBaseConnectionStringGetServerConnectionStringPresentationCoreRoutedEventArgsradioGroup1_SelectedIndexChangedUpdateAuthenticationFieldsDisableSQLServerAuthenticationUpdateGenerateDBButtonteServer_EditValueChangedUpdateDatabaseTextEditsbGenerateDB_ClicksbAddRecords_ClickGenerateRecordssbExit_ClickCloseFormCorrectConnectionTextBlocktbDescriptionGridDBSettingsLabellabel1TextEdittbServerlabel2cbDatabaseGroupBoxstackPanel1RadioButtonrbWindowsAuthenticationrbSQLServerAuthenticationlabel6tbLoginlabel7PasswordBoxEdittbPasswordlRecordslabel5tbRecordsbGenerateDBbAddRecordsbExitprogressBarCore_contentLoadedInitializeComponentSystem.Windows.Markup.IComponentConnector.ConnectConnectConnectionStringParametersRecordCountCalcRecordCountgeneratedItemsCountparentWindowclearRecordsdataContextValidateDatabaseCreateTableCreateIndicesCreateIndexTableExistsCreateItemsTypeSystem.GlobalizationCultureInfoConvertConvertBackIServiceProviderProvideValueDictionary`2cachedImagesimagesGetImagePathByGroupNameget_ColumnNameset_ColumnName<ColumnName>k__BackingFieldColumnNameget_Invertset_Invert<Invert>k__BackingFieldInvertSystem.Windows.Data.IValueConverter.ConvertSystem.Windows.Data.IValueConverter.ConvertBackIList`1Invoicesget_Invoicesset_InvoicesCreateOrdersForMasterDetailViewCreateOrdersCreateInvoicesSystem.DataDataRowView<Invoices>k__BackingFieldget_Ordersset_OrdersDataViewPredicate`1ExistsCreateCustomersForMaterDetailViewCreateCustomers<Orders>k__BackingFieldcustomersCoreget_CustomersordersCoremdcustomersCoreget_MDCustomersmdordersCoreget_MDOrdersIEnumerable`1chartSourceCoreget_ChartSourceCreateChartSourceget_EMailset_EMailCreateMasterDetailSourceget_SubEmployeesset_SubEmployeesInitSubordinateEmployeeCreateEmbeddedViewSourceDevExpress.Xpf.DemoBase.DataClassesget_ParentIdset_ParentId<EMail>k__BackingField<SubEmployees>k__BackingField<ParentId>k__BackingFieldMDCustomersMDOrdersChartSourceEMailSubEmployeesParentIdDateTimeget_ArgumentMemberset_ArgumentMemberget_ValueMemberset_ValueMember<ArgumentMember>k__BackingField<ValueMember>k__BackingFieldArgumentMemberValueMemberResolveemployeeOrdersSystem.Data.EntityClientEntityConnectionObjectSet`1get_Categories_Categoriesget_CustomerDemographics_CustomerDemographics_Customersget_Employees_Employeesget_Order_Details_Order_Details_Ordersget_Products_Productsget_Regions_Regionsget_Shippers_Shippersget_Suppliers_Suppliersget_Territories_TerritoriesAddToCategoriesAddToCustomerDemographicsAddToCustomersAddToEmployeesAddToOrder_DetailsAddToOrdersAddToProductsAddToRegionsAddToShippersAddToSuppliersAddToTerritoriesCustomerDemographicsProductsRegionsShippersSuppliersTerritoriesCreateCategoryget_CategoryIDset_CategoryID_CategoryIDget_CategoryNameset_CategoryName_CategoryNameget_Descriptionset_Description_Descriptionget_Pictureset_Picture_PictureEntityCollection`1set_ProductsCategoryIDCategoryNameDescriptionPictureCreateCustomerget_CustomerIDset_CustomerID_CustomerIDget_CompanyNameset_CompanyName_CompanyNameget_ContactNameset_ContactName_ContactNameget_ContactTitleset_ContactTitle_ContactTitleget_Addressset_Address_Addressget_Cityset_City_Cityget_Regionset_Region_Regionget_PostalCodeset_PostalCode_PostalCodeget_Countryset_Country_Countryget_Phoneset_Phone_Phoneget_Faxset_Fax_Faxset_CustomerDemographicsCustomerIDCompanyNameContactNameContactTitleAddressCityPostalCodePhoneFaxCreateCustomerDemographicget_CustomerTypeIDset_CustomerTypeID_CustomerTypeIDget_CustomerDescset_CustomerDesc_CustomerDescset_CustomersCustomerTypeIDCustomerDescCreateEmployeeget_EmployeeIDset_EmployeeID_EmployeeIDget_LastNameset_LastName_LastNameget_FirstNameset_FirstName_FirstNameget_Titleset_Title_Titleget_TitleOfCourtesyset_TitleOfCourtesy_TitleOfCourtesyNullable`1get_BirthDateset_BirthDate_BirthDateget_HireDateset_HireDate_HireDateget_HomePhoneset_HomePhone_HomePhoneget_Extensionset_Extension_Extensionget_Photoset_Photo_Photoget_Notesset_Notes_Notesget_ReportsToset_ReportsTo_ReportsToget_PhotoPathset_PhotoPath_PhotoPathget_Employees1set_Employees1get_Employee1set_Employee1EntityReference`1get_Employee1Referenceset_Employee1Referenceset_TerritoriesEmployeeIDLastNameFirstNameTitleTitleOfCourtesyBirthDateHireDateHomePhoneExtensionPhotoNotesReportsToPhotoPathEmployees1Employee1Employee1ReferenceCreateOrderget_OrderIDset_OrderID_OrderIDget_OrderDateset_OrderDate_OrderDateget_RequiredDateset_RequiredDate_RequiredDateget_ShippedDateset_ShippedDate_ShippedDateget_ShipViaset_ShipVia_ShipViaDecimalget_Freightset_Freight_Freightget_ShipNameset_ShipName_ShipNameget_ShipAddressset_ShipAddress_ShipAddressget_ShipCityset_ShipCity_ShipCityget_ShipRegionset_ShipRegion_ShipRegionget_ShipPostalCodeset_ShipPostalCode_ShipPostalCodeget_ShipCountryset_ShipCountry_ShipCountryget_Customerset_Customerget_CustomerReferenceset_CustomerReferenceget_Employeeset_Employeeget_EmployeeReferenceset_EmployeeReferenceset_Order_Detailsget_Shipperset_Shipperget_ShipperReferenceset_ShipperReferenceOrderIDOrderDateRequiredDateShippedDateShipViaFreightShipNameShipAddressShipCityShipRegionShipPostalCodeShipCountryCustomerReferenceEmployeeReferenceShipperReferenceCreateOrder_Detailsget_ProductIDset_ProductID_ProductIDget_UnitPriceset_UnitPrice_UnitPriceget_Quantityset_Quantity_Quantityget_Discountset_Discount_Discountget_Orderset_Orderget_OrderReferenceset_OrderReferenceget_Productset_Productget_ProductReferenceset_ProductReferenceProductIDUnitPriceQuantityDiscountOrderReferenceProductReferenceCreateProductget_ProductNameset_ProductName_ProductNameget_SupplierIDset_SupplierID_SupplierIDget_QuantityPerUnitset_QuantityPerUnit_QuantityPerUnitget_UnitsInStockset_UnitsInStock_UnitsInStockget_UnitsOnOrderset_UnitsOnOrder_UnitsOnOrderget_ReorderLevelset_ReorderLevel_ReorderLevelget_Discontinuedset_Discontinued_Discontinuedget_Categoryset_Categoryget_CategoryReferenceset_CategoryReferenceget_Supplierset_Supplierget_SupplierReferenceset_SupplierReferenceProductNameSupplierIDQuantityPerUnitUnitsInStockUnitsOnOrderReorderLevelDiscontinuedCategoryReferenceSupplierReferenceCreateRegionget_RegionIDset_RegionID_RegionIDget_RegionDescriptionset_RegionDescription_RegionDescriptionRegionIDRegionDescriptionCreateShipperget_ShipperIDset_ShipperID_ShipperIDShipperIDCreateSupplierget_HomePageset_HomePage_HomePageHomePageCreateTerritoryget_TerritoryIDset_TerritoryID_TerritoryIDget_TerritoryDescriptionset_TerritoryDescription_TerritoryDescriptionget_RegionReferenceset_RegionReferenceset_EmployeesTerritoryIDTerritoryDescriptionRegionReferencePropertyChangedEventHandlerPropertyChangedadd_PropertyChangedremove_PropertyChangeddictionaryget_CountSetValueGetValueTryGetMemberTrySetMemberNotifyPropertyChangedCountDynamicMetaObjectFallbackSetMemberFallbackGetMembercolumnNametypeIndexget_TypeIndexset_TypeIndexRaisePropertyChangedTypeIndexDataTemplatetemplateSelectTemplateemployeesICollectionViewget_CollectionViewset_CollectionView<CollectionView>k__BackingFieldvalue__DefaultCustomFirstSecondNoneDependencyPropertyNewRowsProgressPropertyNewRowsColorProperty.cctorget_NewRowsProgressset_NewRowsProgressSystem.Windows.MediaColorget_NewRowsColorset_NewRowsColorNewRowsProgressNewRowsColorget_UniqueIDset_UniqueIDget_OIDset_OIDget_Fromset_Fromget_Sentset_Sentget_HasAttachmentset_HasAttachmentget_HoursActiveset_HoursActiveConvertOutlookDataToCopyPasteOutlookData<UniqueID>k__BackingField<OID>k__BackingField<From>k__BackingField<Sent>k__BackingField<HasAttachment>k__BackingField<HoursActive>k__BackingFieldUniqueIDOIDFromSentHasAttachmentHoursActiveget_Ownerset_OwnerSystem.Windows.Media.AnimationStoryboardget_ColorStoryboardset_ColorStoryboardColorStoryboardCompleted<Owner>k__BackingField<ColorStoryboard>k__BackingFieldOwnerColorStoryboardGridViewBaseget_Viewset_ViewBindingList`1get_Listset_Listget_PositionNewRowset_PositionNewRowget_ObjectsForCopyset_ObjectsForCopy<View>k__BackingField<List>k__BackingField<PositionNewRow>k__BackingField<ObjectsForCopy>k__BackingFieldViewListPositionNewRowObjectsForCopyget_PhoneNumberset_PhoneNumberget_Emailset_EmailErrorInfoDevExpress.XtraEditors.DXErrorProvider.IDXDataErrorInfo.GetPropertyErrorGetPropertyErrorDevExpress.XtraEditors.DXErrorProvider.IDXDataErrorInfo.GetErrorGetErrorIsStringEmptyIsEmailCorrectErrorTypeSetErrorInfo<FirstName>k__BackingField<LastName>k__BackingField<Address>k__BackingField<PhoneNumber>k__BackingField<Email>k__BackingFieldPhoneNumberEmailSystem.Windows.InputICommandget_ClearRecycleBinset_ClearRecycleBinget_DataSourceset_DataSourceget_RecycleBinSourceset_RecycleBinSourceOnClearRecycleBin<ClearRecycleBin>k__BackingField<DataSource>k__BackingField<RecycleBinSource>k__BackingFieldClearRecycleBinDataSourceRecycleBinSourceIsItemVisiblePropertyDependencyPropertyChangedEventArgsOnIsItemVisibleChangedget_IsItemVisibleset_IsItemVisibleOnIsItemVisibleChangedCoreIsItemVisibleRandomrndGetDateGetCountDataTableCreateInvoicesDataTableCreateProductsDataTableget_SalesByYearReportset_SalesByYearReportget_SalesByMonthReportset_SalesByMonthReportget_ReportTypesactualSalesReportget_ActualSalesReportset_ActualSalesReportreportTypeIndexget_ReportTypeIndexset_ReportTypeIndexallowCascadeUpdateget_AllowCascadeUpdateset_AllowCascadeUpdateUpdateActualSalesReport<SalesByYearReport>k__BackingField<SalesByMonthReport>k__BackingFieldSalesByYearReportSalesByMonthReportReportTypesActualSalesReportReportTypeIndexAllowCascadeUpdatesmallValueTemplatelargeValueTemplatedefaultDisplayModeSummariesget_DefaultDisplayModeSummariesset_DefaultDisplayModeSummariesalignByColumnsDisplayModeSummariesget_AlignByColumnsDisplayModeSummariesset_AlignByColumnsDisplayModeSummariesalignSummariesByColumnsget_AlignSummariesByColumnsset_AlignSummariesByColumnssummarySourceget_SummarySourceset_SummarySourcecityColumnVisibleIndexget_CityColumnVisibleIndexset_CityColumnVisibleIndexcityColumnGroupIndexget_CityColumnGroupIndexset_CityColumnGroupIndexUpdateSummarySourceUpdateCityColumnDefaultDisplayModeSummariesAlignByColumnsDisplayModeSummariesAlignSummariesByColumnsSummarySourceCityColumnVisibleIndexCityColumnGroupIndexhitTestIndicatorStateVisitRowIndicatorColumnBaseVisitTotalSummaryVisitFixedTotalSummaryGridColumnDataVisitGroupValueGridGroupSummaryDataVisitGroupSummaryget_Nameset_Nameget_Textset_Text<Name>k__BackingField<Text>k__BackingFieldNameTextOnAttachedOnDetachingSystem.Windows.NavigationRequestNavigateEventArgsOnRequestNavigateget_Valueset_Value<Value>k__BackingField<Description>k__BackingFieldValuepropertyNamepropertyTypeisReadOnlylistindexCanResetValueget_IsReadOnlyget_ComponentTypeget_PropertyTypeResetValueShouldSerializeValueIsReadOnlyComponentTypePropertyTypeget_Rowset_Rowget_Columnset_ColumnEqualsGetHashCode<Row>k__BackingField<Column>k__BackingFieldRowColumnBaseColumnCountcolumnCountfValuesPropertyDescriptorCollectioncolumnCollectionSetPropertyValueGetPropertyValueGetPropertyNameGetFullPropertyNameGetPropertyTypeGetPseudoRandomValueset_RecordCountget_ColumnCountset_ColumnCountCreateColumnCollectionSystem.ComponentModel.ITypedList.GetItemPropertiesGetItemPropertiesSystem.ComponentModel.ITypedList.GetListNameGetListNameget_IsSynchronizedget_SyncRootget_IsFixedSizeIEnumeratorGetEnumeratorArrayCopyToAddClearContainsIndexOfInsertRemoveRemoveAtSystem.Collections.IList.get_Itemget_ItemSystem.Collections.IList.set_Itemset_ItemColumnCountIsSynchronizedSyncRootIsFixedSizeSystem.Collections.IList.ItemCpuUsagePropertyMemoryUsageColorPropertyRevealProgressPropertyget_CpuUsageset_CpuUsageget_MemoryUsageColorset_MemoryUsageColorget_RevealProgressset_RevealProgressCpuUsageMemoryUsageColorRevealProgresspidnamememoryUsagecpuUsageisNewhistoryget_Historyget_IsDeletingset_IsDeletingget_PIDset_PIDget_MemoryUsageset_MemoryUsageOnChanged<IsDeleting>k__BackingFieldHistoryIsDeletingPIDMemoryUsageDefaultUpdateIntervalDefaultUpdateDurationDefaultUpdateHistoryIntervalDefaultProcessMaxCountDefaultProcessMinCountProcessNamesUpdateIntervalPropertyProcessMaxCountPropertyProcessMinCountPropertyUpdateModePropertyUpdateHistoryIntervalPropertyOnUpdateIntervalChangedOnUpdateHistoryIntervalChangedprocessesSystem.Windows.ThreadingDispatcherTimerupdateTimerrealProcessCountmodulerandomanimationElementsget_Processesget_UpdateTimerOnTimerTickupdateHistoryTimerOnHistoryTimerTickUpdateProcessListGetUpdateTypeget_CanAddRemoveget_CanUpdatePerformRandomUpdateRemoveProcessGetStoryboardBeginStoryboardModifyMemoryUsageModifyCpuUsageGetRandomProcesscounterAddProcessInitializeStartStopGetAnimationElementget_UpdateIntervalset_UpdateIntervalget_UpdateHistoryIntervalset_UpdateHistoryIntervalget_ProcessMaxCountset_ProcessMaxCountget_ProcessMinCountset_ProcessMinCountget_UpdateModeset_UpdateModeProcessesUpdateTimerCanAddRemoveCanUpdateUpdateIntervalUpdateHistoryIntervalProcessMaxCountProcessMinCountUpdateModeAddRemoveUpdateAddRemoveUpdateChangeInvokeIAsyncResultAsyncCallbackBeginInvokeEndInvokeget_ProcToRemoveset_ProcToRemoveget_ProcGeneratorset_ProcGeneratorOnStoryboardCompleted<ProcToRemove>k__BackingField<ProcGenerator>k__BackingFieldProcToRemoveProcGeneratorBarWidthBarSpaceSegmentHeightSegmentSpaceMaxBarHeightCpuUsageHistoryPropertyBarBrushesPropertyOnCpuUsageHistoryChangedget_CpuUsageHistoryset_CpuUsageHistoryget_BarBrushesset_BarBrushesDrawingContextOnRenderSystem.Collections.SpecializedNotifyCollectionChangedEventArgsOnCpuUsageHistoryCollectionChangedBarBrushesAddHistoryValueshowOrdersColumnHeadersCoreget_ShowOrdersColumnHeadersset_ShowOrdersColumnHeadersshowOrdersSummariesCoreget_ShowOrdersSummariesset_ShowOrdersSummariesshowCustomersColumnHeadersCoreget_ShowCustomersColumnHeadersset_ShowCustomersColumnHeadersshowCustomersSummariesCoreget_ShowCustomersSummariesset_ShowCustomersSummariesshowInvoicesColumnHeadersCoreget_ShowInvoicesColumnHeadersset_ShowInvoicesColumnHeadersshowInvoicesSummariesCoreget_ShowInvoicesSummariesset_ShowInvoicesSummariesshowDetailButtonsCoreget_ShowDetailButtonsset_ShowDetailButtons<Employees>k__BackingFieldShowOrdersColumnHeadersShowOrdersSummariesShowCustomersColumnHeadersShowCustomersSummariesShowInvoicesColumnHeadersShowInvoicesSummariesShowDetailButtonsget_Minset_Minget_Maxset_MaxToString<Min>k__BackingField<Max>k__BackingFieldMinMaxImageSourceget_ImageCacheset_ImageCacheDevExpress.Xpf.Grid.TreeListTreeListRowDataSelect<ImageCache>k__BackingFieldImageCacheget_Contentset_Contentget_DisplayNameset_DisplayName<Content>k__BackingField<DisplayName>k__BackingFieldContentDisplayNamecolumnInfoFieldNameget_ColumnInfoFieldNameset_ColumnInfoFieldNameDevExpress.Xpf.Core.CommandsDelegateCommand`1get_ChangeFieldNameCommandset_ChangeFieldNameCommandget_CanExecuteCommandOnChangeFieldName<ChangeFieldNameCommand>k__BackingFieldColumnInfoFieldNameChangeFieldNameCommandCanExecuteCommandRowHeightPropertyOnScrollViewerVerticalOffsetChangedSetRowHeightGetRowHeightResizeHelperresizeHelperRowDataget_RowDataget_RowHeightset_RowHeightOnApplyTemplateOnRowDataChangedRowData_ContentChangedInitializeRowHeightDevExpress.Xpf.Core.IResizeHelperOwner.get_ActualSizeget_ActualSizeDevExpress.Xpf.Core.IResizeHelperOwner.set_ActualSizeset_ActualSizeDevExpress.Xpf.Core.IResizeHelperOwner.ChangeSizeChangeSizeDevExpress.Xpf.Core.IResizeHelperOwner.OnDoubleClickOnDoubleClickDevExpress.Xpf.Core.IResizeHelperOwner.SetIsResizingSetIsResizingSizeHelperBaseDevExpress.Xpf.Core.IResizeHelperOwner.get_SizeHelperget_SizeHelperRowHeightDevExpress.Xpf.Core.IResizeHelperOwner.ActualSizeDevExpress.Xpf.Core.IResizeHelperOwner.SizeHelperScaleFactorPropertySetScaleFactorGetScaleFactorSetCursorPosCanExecuteHandlerCommandPropertyCanExecuteRoutedEventArgsCanExecuteget_CanExecuteHandlerCommandset_CanExecuteHandlerCommandCanExecuteHandlerCommandCountPropertyset_CountorderDataGeneratorget_ContainsListCollectionGetListContainsListCollectionorderDataListSourceisGeneratingOrderDatagenerateOrderDataProgressValuecountItemsselectedCountItemisDesignTimeorderDataGenerator_GenerateOrderDataStartedorderDataGenerator_GenerateOrderDataCompletedorderDataGenerator_GenerateOrderDataProgressRecreateListSourceget_ListSourceset_ListSourceget_IsGeneratingOrderDataset_IsGeneratingOrderDataget_GenerateOrderDataProgressValueset_GenerateOrderDataProgressValueget_CountItemsset_CountItemsget_SelectedCountItemset_SelectedCountItemSetIsDesignTimeListSourceIsGeneratingOrderDataGenerateOrderDataProgressValueCountItemsSelectedCountItemDevExpress.UtilsDefaultBooleanallowPrintDetailsCoreprintAllDetailsCoreprintOrdersColumnHeadersCoreprintOrdersSummariesCoreprintCustomersColumnHeadersCoreprintCustomersSummariesCoreprintInvoicesColumnHeadersCoreprintInvoicesSummariesCoreprintEmployeesColumnHeadersCoreprintEmployeesSummariesCoreget_AllowPrintDetailsset_AllowPrintDetailsget_PrintAllDetailsset_PrintAllDetailsget_PrintOrdersColumnHeadersset_PrintOrdersColumnHeadersget_PrintOrdersSummariesset_PrintOrdersSummariesget_PrintCustomersColumnHeadersset_PrintCustomersColumnHeadersget_PrintCustomersSummariesset_PrintCustomersSummariesget_PrintInvoicesColumnHeadersset_PrintInvoicesColumnHeadersget_PrintInvoicesSummariesset_PrintInvoicesSummariesget_PrintEmployeesColumnHeadersset_PrintEmployeesColumnHeadersget_PrintEmployeesSummariesset_PrintEmployeesSummariesAllowPrintDetailsPrintAllDetailsPrintOrdersColumnHeadersPrintOrdersSummariesPrintCustomersColumnHeadersPrintCustomersSummariesPrintInvoicesColumnHeadersPrintInvoicesSummariesPrintEmployeesColumnHeadersPrintEmployeesSummariescollectionInterEventDelaySystem.Runtime.CompilerServicesIsVolatileNeedStopSystem.DiagnosticsStopwatchswbackgroundSwsyncObjectUserRealtimeSourceget_backgroungTimerElapsedchangesFromPriopChangePerSecondpriorChangesget_ChangePerSecondDoOnIdlebackgroungTimerElapsedChangePerSecondMAXMINtickerget_Tickerset_Tickerlastget_Lastset_LastchgPercentget_ChgPercentset_ChgPercentopenget_Openset_Openhighget_Highset_Highlowget_Lowset_Lowdateget_Dateset_DatedayValget_DayValset_DayValUpdateInternalNextRndTickerLastChgPercentOpenHighLowDateDayValchangeThreadSystem.ThreadingThreadthreadtimerShowbackgroundTimerEventHandlerTimerShowTickadd_TimerShowTickremove_TimerShowTickset_InterEventDelaywithRealTimeSourceget_WithRealTimeSourceset_WithRealTimeSourceDisposeTimerShowCallbackRaiseTimerShowTickEventWithRealTimeSourceCommandPropertyRoutedEventHandlerhandlerRoutedEventroutedEventUpdateSubsrcribtionOnRaiseEventget_RoutedEventset_RoutedEventget_Commandset_CommandCommandget_Senderset_Senderget_Argsset_Args<Sender>k__BackingField<Args>k__BackingFieldSenderArgsget_HeaderCaptionset_HeaderCaptionGridColumnCollectionCreateCollection<HeaderCaption>k__BackingFieldHeaderCaptionselectAllItemsCommandcolumnsDataViewBaseviewget_Columnsset_Columnsget_SelectAllItemsCommandset_SelectAllItemsCommandget_ChangeAllowSearchPanelCommandset_ChangeAllowSearchPanelCommandget_ChangeSearchPanelVisibilityCommandset_ChangeSearchPanelVisibilityCommandget_PopulateColumnsCommandset_PopulateColumnsCommandChangeSelectionActionget_SelectAllActionCanUpdateAllowSearchPanelPopulateColumnsChangeSearchPanelVisibilityUpdateAllowSearchPanel<ChangeAllowSearchPanelCommand>k__BackingField<ChangeSearchPanelVisibilityCommand>k__BackingField<PopulateColumnsCommand>k__BackingFieldColumnsSelectAllItemsCommandChangeAllowSearchPanelCommandChangeSearchPanelVisibilityCommandPopulateColumnsCommandSelectAllActiondescriptionSystem.IOStreamGetStreamresourcePathMemoryStreamstreamget_TotalCellTemplateset_TotalCellTemplate<TotalCellTemplate>k__BackingFieldTotalCellTemplateValidationResultValidateget_ErrorTextIsValueValidErrorTextselectedDefinitionget_SelectedDefinitionset_SelectedDefinitioncontrolDefinitionsget_ControlDefinitionsset_ControlDefinitionsSelectedDefinitionControlDefinitionsisUseExtendedDataQuerywcfSCServiceget_IsUseExtendedDataQueryset_IsUseExtendedDataQueryget_WcfSCServiceset_WcfSCServiceIsUseExtendedDataQueryWcfSCServiceGuidget_Oidset_Oidget_Idset_Idget_Subjectset_Subjectget_ModifiedOnset_ModifiedOnget_CreatedOnset_CreatedOnget_TechnologyNameset_TechnologyNameget_Urgentset_Urgentget_Statusset_StatusSession<Oid>k__BackingField<Id>k__BackingField<Subject>k__BackingField<ModifiedOn>k__BackingField<CreatedOn>k__BackingField<ProductName>k__BackingField<TechnologyName>k__BackingField<Urgent>k__BackingField<Status>k__BackingFieldOidIdSubjectModifiedOnCreatedOnTechnologyNameUrgentStatusGridControlPropertyget_IsGridBorderVisibleget_UseGridControlWrapperAsDataContextset_UseGridControlWrapperAsDataContextGridControlget_GridControlset_GridControlGetModuleDataContextFindGridRaiseIsPopupContentInvisibleChangedCanLeave<UseGridControlWrapperAsDataContext>k__BackingFieldIsGridBorderVisibleUseGridControlWrapperAsDataContextCheckEditshowBandsPanelCheckEditallowChangeColumnParentCheckEditallowChangeBandParentCheckEditshowBandsInCustomizationFormCheckEditallowBandMovingCheckEditallowBandResizingCheckEditautoWidthCheckEditallowPerPixelScrollingCheckEditshowAutoFilterRowCheckEditallowMovingCheckEditallowResizingCheckEditgridDelegate_CreateDelegateDevExpress.Xpf.Printing.v13.1DevExpress.Xpf.PrintingLinkPreviewModelIPrintableControlCreateLinkPreviewModelDXTabControlget_DXTabControlShowPrintPreviewShowPrintPreviewInNewTabDXTabItemDisposePrintPreviewTabContentnewWindowButton_ClickShowPreviewInNewTabRaiseActualLoadednewTabButton_ClickTabControlTabHiddenEventArgstabControl_TabHiddenAllowPrintDetailsCheckEditPrintAllDetailsCheckEditnewTabButtonnewWindowButtontabControlDataControlDetailDescriptorMDOrdersDescriptorMDInvoicesDescriptorMDCustomersDescriptorSelectedTabIndexPropertySetSelectedTabIndexGetSelectedTabIndexGridColumncolEMailrootcbShowSearchPanelListBoxEditlbShowModelbSearchModecbShowFindButtoncbShowCloseButtonGroupFramegroupFrameColumnsComboBoxEditcolumnsListDetailContentCheckgridDetailDescriptordetailGridsubDetailGridsubDetailViewdetailViewmasterViewviewModelDevExpress.DataRealTimeSourcerealTimeSourceDispatcherOperationupdateGraphOperationRealtimeDataSource_UnloadedupdateGraphmodel_TimerShowTickDevExpress.Xpf.Charts.v13.1DevExpress.Xpf.ChartsSeriesPointCollectionUpdateGraphCreateRealTimeSourceDisposeRealTimeSourceRoutedPropertyChangedEventArgs`1slider_ValueChangedPatchIntervalCheckBox_UncheckedCheckBox_CheckedgroupBox1SlidersliderLineScatterSeries2DUPSDiagramUriResolveTypeFromNameResolveNameFromTypeDataServiceQuery`1get_SCIssuesDemo_SCIssuesDemoAddToSCIssuesDemoCreateSCIssuesDemo_Oidget_IDset_ID_ID_Subject_ModifiedOn_CreatedOn_TechnologyName_Urgent_StatusOnPropertyChangedIDIsSynchronizedWithCurrentItemPropertyCollectionViewPropertyIsSynchronizedWithCurrentItemEditorVisibilityPropertyEditableCollectionViewVisibilityPropertydirectionsfieldsget_Directionsget_Fieldsget_IsSynchronizedWithCurrentItemset_IsSynchronizedWithCurrentItemVisibilityget_IsSynchronizedWithCurrentItemEditorVisibilityset_IsSynchronizedWithCurrentItemEditorVisibilityget_EditableCollectionViewVisibilityset_EditableCollectionViewVisibilityget_CurrentSortDescriptionset_CurrentSortDescriptionget_CurrentGroupDescriptionset_CurrentGroupDescriptionget_CurrentGroupFieldNameset_CurrentGroupFieldNameget_CurrentSortFieldNameset_CurrentSortFieldNameListSortDirectionget_CurrentSortDirectionset_CurrentSortDirectionget_DeleteGroupset_DeleteGroupget_DeleteSortset_DeleteSortget_AddGroupset_AddGroupget_AddSortset_AddSortOnDeleteGroupOnDeleteSortOnAddGroupOnAddSortCanDeleteGroupCanDeleteSortContainsGroupDescriptionPropertyGroupDescriptionFindGroupDescriptionContainsSortDescriptionsourceStackPanel<CurrentSortDescription>k__BackingField<CurrentGroupDescription>k__BackingField<CurrentGroupFieldName>k__BackingField<CurrentSortFieldName>k__BackingField<CurrentSortDirection>k__BackingField<DeleteGroup>k__BackingField<DeleteSort>k__BackingField<AddGroup>k__BackingField<AddSort>k__BackingFieldDirectionsFieldsIsSynchronizedWithCurrentItemIsSynchronizedWithCurrentItemEditorVisibilityEditableCollectionViewVisibilityCurrentSortDescriptionCurrentGroupDescriptionCurrentGroupFieldNameCurrentSortFieldNameCurrentSortDirectionDeleteGroupDeleteSortAddGroupAddSortNameValuePropertyTextValuePropertyget_NameValueset_NameValueget_TextValueset_TextValueNameValueTextValueCardLayoutget_CardLayoutsAlignmentget_Alignmentsget_NavigationStylesCardLayoutsAlignmentsNavigationStylesget_ConnectionStringConnectionStringget_EFServerModeTestClasses_EFServerModeTestClassesAddToEFServerModeTestClassesEFServerModeTestClassesCreateEFServerModeTestClass_OID_From_Sentget_Sizeset_Size_Size_HasAttachmentSizeDataSourcePropertyget_FieldNameset_FieldNameget_CellTemplateset_CellTemplateget_Widthset_Widthget_FixedWidthset_FixedWidthDevExpress.Xpf.Editors.SettingsBaseEditSettingsget_EditSettingsset_EditSettingsget_Headerset_Header<FieldName>k__BackingField<CellTemplate>k__BackingField<Width>k__BackingField<FixedWidth>k__BackingField<EditSettings>k__BackingField<Header>k__BackingFieldFieldNameCellTemplateWidthFixedWidthEditSettingsHeadercustomerNamescategoryDataproductDatacountcachedOrdersExtractCustomerNamesExtractCategoryDataListExtractProductDataListFindCategoryGenerateOrdersOnGenerateOrderDataStartedOnGenerateOrderDataCompletedOnGenerateOrderDataProgressGetOrdersGetCategoriesGenerateOrderDataStartedadd_GenerateOrderDataStartedremove_GenerateOrderDataStartedGenerateOrderDataCompletedadd_GenerateOrderDataCompletedremove_GenerateOrderDataCompletedEventHandler`1GenerateOrderDataProgressadd_GenerateOrderDataProgressremove_GenerateOrderDataProgressprogressget_ProgressProgressCompareTo<Picture>k__BackingFieldget_Priceset_Price<Category>k__BackingField<Price>k__BackingFieldPriceget_OrderIdset_OrderIdget_IsReadyset_IsReadyget_CustomerNameset_CustomerNameget_ProductCategoryset_ProductCategory<OrderId>k__BackingField<IsReady>k__BackingField<CustomerName>k__BackingField<OrderDate>k__BackingField<ProductCategory>k__BackingField<Quantity>k__BackingFieldOrderIdIsReadyCustomerNameProductCategoryGetColumnTypeGetSalesByYearDataCreateStoryboardget_Storyboardset_Storyboard<Storyboard>k__BackingFieldget_LinkPreviewModelset_LinkPreviewModelLinkPreviewModelPropertyget_TabNameset_TabNameTabNamePropertyOnLinkPreviewModelChangedOnTabNameChangedtabNameTextBlockTabNamedataSourceget_Flagset_Flag<Flag>k__BackingFieldFlagSetupXpoLayerskipMemoryLeaksCheckModulesCheckMemoryLeaksget_TableViewget_CardViewget_TableViewModuleget_MultiSelectionModuleget_CopyPasteModuleget_LargeDataSetModuleget_DragDropModuleget_FilterControlModuleget_HitTestModuleget_FilteringModuleget_UnboundColumnsModuleTableViewModuleMultiSelectionModuleCopyPasteModuleLargeDataSetModuleDragDropModuleFilterControlModuleHitTestModuleFilteringModuleUnboundColumnsModulemodulesAccessorCreateActionsCreateCheckDemosActionsIsListBoxGetListBoxEditCountCreateCheckUnboundColumnsDemoActionsDevExpress.Xpf.Editors.ExpressionEditorExpressionEditorControlexpressionEditorControlAssertShowExpressionEditorIsGroupGridRowCreateCheckHitTestDemoActionsAssertAdditionalElementsGetHitInfoNameTextControlCreateCheckTableViewDemoActionsCreateCheckMultiSelectionDemoActionsAssertMuliSelectionAssertMultiSelectModeCreateCheckCopyPasteDemoActionsClickOnGridAssertGridsAndButtonStateCreateCheckFilterControlDemoActionsDevExpress.Xpf.Editors.FilteringFilterEditorFromGridFilterEditorEventArgsView_FilterEditorCreatedCreateCheckFilteringDemoActionsCreateCheckFixedColumnsDemoActionsCreate_B144178_ActionsAssertPrioritySortingSystem.Data.Linq.MappingMappingSourcemappingSourceIDbConnectionTable`1get_WpfServerSideGridTestsWpfServerSideGridTestsPropertyChangingEventArgsemptyChangingEventArgsPropertyChangingEventHandlerPropertyChangingadd_PropertyChangingremove_PropertyChangingSendPropertyChangingSendPropertyChangedViewPropertyColumnChooserControlget_ColunmChooserControlset_ColunmChooserControl<ColunmChooserControl>k__BackingFieldColunmChooserControlcolumnChooserControlDevExpress.Xpf.Core.IColumnChooser.ShowShowDevExpress.Xpf.Core.IColumnChooser.HideHideIColumnChooserStateDevExpress.Xpf.Core.IColumnChooser.ApplyStateApplyStateDevExpress.Xpf.Core.IColumnChooser.SaveStateSaveStateDevExpress.Xpf.Core.IColumnChooser.DestroyDestroyUIElementDevExpress.Xpf.Core.IColumnChooser.get_TopContainerget_TopContainerDevExpress.Xpf.Core.IColumnChooserFactory.CreateCreateDevExpress.Xpf.Core.IColumnChooser.TopContainerComboBoxItemsSourcePropertyComboBoxItemsSourceChangedget_ComboBoxItemsSourceset_ComboBoxItemsSourceselectButtonClickHandleradd_SelectButtonClickremove_SelectButtonClickunselectButtonClickHandleradd_UnselectButtonClickremove_UnselectButtonClickreselectButtonClickHandleradd_ReselectButtonClickremove_ReselectButtonClickOnComboBoxItemsSourceChangedRaiseButtonClickget_ComboBoxDisplayMemberset_ComboBoxDisplayMemberget_ComboBoxValueMemberset_ComboBoxValueMemberget_ComboBoxSelectButtonClickInClassUnselectButtonClickInClassReselectButtonClickInClassgroupBoxControlcomboBoxControlSelectButtonUnselectButtonReselectButtonComboBoxItemsSourceSelectButtonClickUnselectButtonClickReselectButtonClickComboBoxDisplayMemberComboBoxValueMemberComboBoxget_UsersSummaryItemTypeget_SummaryItemTypesget_SummaryFieldNamesUsersSummaryItemTypesSummaryFieldNamesBelowNormalNormalAboveNormalfOidfSubjectfFromfSentfHasAttachmentfSizefHoursActivefPriorityfUserIdget_Priorityset_Priorityget_UserIdset_UserIdUserIdSubjectsGetSubjectGetFromGetSentDateGetSizeGetHasAttachmentGetPriorityGetHoursActiveGetFromIdCreateNewObjectCreateOutlookDataCreateOutlookDataTableArrayListCreateOutlookArrayListCreateNewServerObjectCreateServerObjectsListOnListChangedAddNewget_AllowEditget_AllowNewget_AllowRemoveListChangedEventHandlerlistChangedHandleradd_ListChangedremove_ListChangedListChangedEventArgsOnRemoveCompleteOnInsertCompleteAddIndexApplySortFindget_IsSortedRemoveIndexRemoveSortget_SortDirectionget_SortPropertyget_SupportsChangeNotificationget_SupportsSearchingget_SupportsSortingAllowEditAllowNewAllowRemoveListChangedIsSortedSortDirectionSortPropertySupportsChangeNotificationSupportsSearchingSupportsSortingfIDfNamefDatefPercentCompletefCompletefNotefRelationCollectionget_TaskNameset_TaskNameget_DueDateset_DueDateget_Completeset_Completeget_PercentCompleteset_PercentCompleteget_Noteset_NoteGetCategoryByTaskTaskNameDueDateCompletePercentCompleteNoteCompletePropertyPercentCompletePropertyfTaskfCategoryMaxTasksGetTasksItemMaxCategoriesfTasksfCategoriesGetTasksWithCategoriesHasCategoryfGridAfterGroupingadd_AfterGroupingremove_AfterGroupingGrid_Groupingget_CategoryColumnget_IsCategoryGroupingSetDataSourceCategoryColumnIsCategoryGroupinggridViewcolPrioritycolHoursActivecolHasAttachmentRoutedCommandSendMailIsNotesExpandedPropertyOnSelectedTabIndexCoerceSetIsNotesExpandedGetIsNotesExpandedExecutedRoutedEventArgsOnSendMailcardHeaderTemplateListBox_SelectionChangedeMailTemplateListBox_SelectionChangedcardTemplateListBox_SelectionChangedcardHeaderTemplateListBoxcardTemplateListBoxeMailTemplateGroupBoxeMailTemplateListBoxmaxCardCountInRowSpinEdit_EditValueChangedmaxCardCountInRowNoLimitRadioButton_CheckedmaxCardCountInRowValueRadioButton_CheckedComboBoxEdit_EditValueChangedmaxCardCountInRowNoLimitRadioButtonmaxCardCountInRowValueRadioButtonSpinEditmaxCardCountInRowSpinEditNavigationStyleComboBoxSelectCellsAssignDataSourcesumCustomSummaryEventArgsgrid_CustomSummaryGridSelectionChangedEventArgsTableView_SelectionChangedCheckEdit_EditValueChangedButton_ClickButton_Click_1KeyValuePair`2GridCellComparecheckEditColumnChooserTypePropertyOnColumnChooserTypeChangedget_ColumnChooserTypeset_ColumnChooserTypeKeyboardFocusChangedEventArgscolumnChooser_PreviewGotKeyboardFocusColumnChooserTypeChangedshowHideButton_ToggleUpdateToggleButtonContentcustomColumnChooserExpander_ExpandedcustomColumnChooserExpander_CollapsedSystem.Windows.Controls.PrimitivesToggleButtonshowHideButtoncolumnChooserTypesListBoxDemoExpandercustomColumnChooserExpandercolumnChooserFirstNamesLastNamesCreateNewColBtn_ClickCreateNewColumnGetDefaultValueUnboundColumnTypeGetNewColunUnboundTypeValidationEventArgsFieldNameBox_ValidateIsValidFieldNameoptionsPanelFieldNameBoxTypeBoxDefaultValueBoxSpinDefaultValueBoxTextDateEditDefaultValueBoxDateDefaultValueBoxCheckCreateNewColBtnnavigatorcolCountryget_ViewModelPopulateColumnsAndSummariesItemsSourceChangedEventArgsgrid_ItemsSourceChangedreportTypesListViewModelMultiView_BeforeModuleDisappearmultiViewListBoxPasteCompetedEventget_Counterset_CounterPastUnderFocusedRowPropertyFocusedGridPropertyadd_PasteCompetedremove_PasteCompetedget_PastUnderFocusedRowset_PastUnderFocusedRowget_FocusedGridset_FocusedGridfirstListsecondListGridDictionaryMouseButtonEventArgsfirstGrid_PreviewMouseDownsecondGrid_PreviewMouseDownCompareForDeleteListCopyingRowsRemoveRowDeleteRowsCutRowsmaxAnimationRowsget_MaxAnimationRowsPasteRowsWithoutAnimationPasteRowsWithAnimationpositionsNewRowsListisPastingpasteWithoutAnimationPasteRowsStartPasteForCanCommandsEndPasteForCanCommandsAnimationRowsOfPastedStartAnimationRaisePasteCompetedEventStartStoryboardCommandExecuteIsFocusedTextEditIsSelectRowsCanExecuteOutputCommandsCanExecuteInputCommandsCanCopyCommandsIDataObjectGetClipboardDataObjectCopyCommandBinding_ExecutedCutCommandBinding_ExecutedPasteCommandBinding_ExecutedDeleteCommandBinding_ExecutedCopyCommandBinding_CanExecuteCutCommandBinding_CanExecutePasteCommandBinding_CanExecuteDeleteCommandBinding_CanExecuteGridColumnDataEventArgsGrid_CustomUnboundColumnDataGetIndexForAnimationElementsanimationGetAnimationElementCoreRemoveAnimationElementallowCopyingtoClipboardCheckEdit_CheckedallowCopyingtoClipboardCheckEdit_UncheckedcopyHeaderCheckEdit_CheckedcopyHeaderCheckEdit_UncheckedClipboardCopyModeSetPropertyToGridsallowCopyingtoClipboardCheckEditcopyHeaderCheckEditPasteRuleCopyButtonCutButtonPasteButtonDeleteButtonDevExpress.Xpf.BarsBarButtonItemgridCopygridCutgridPastegridDeleteDemoContentGridfirstGridPopupMenufirstPopupMenuviewFirstCopyviewFirstCutviewFirstPasteviewFirstDeleteTabControlCopyPasteDemoTabControlsecondGridsecondPopupMenuviewSecondCopyviewSecondCutviewSecondPasteviewSecondDeletetextEdit<Counter>k__BackingFieldCounterPasteCompetedPastUnderFocusedRowMaxAnimationRowsget_AllowRtlmultiselectionCheckEditallowScrollingCheckEditemptyRecycleBinButtonrecycleBinListDevExpress.Xpf.Grid.v13.1.ExtensionsGridDragDropManagergridDragDropManagerAllowRtlApplyFilterButtonClickTableView_FilterEditorCreatedshowGroupCommandsIconshowOperandTypeIconshowToolTipsApplyFilterButtonfilterEditorfilterGridcolIDcolProductcolUnitPricecolQuantitycolTotalRaiseModuleAppearShowLookUpchkShowSizeGripchkImmediatePopupchkAllowAutoCompleteobjectContextCreateObjectContextIfNullOnLoadedChangeInstantFeedBackConfigureShowConnectionWizardValidateSourceCustomizeWaitIndicatorchkInstantFeedBackbtnConfigurewaitIndicatorListDevExpress.Xpf.Core.ServerModeEntityServerModeDataSourceentityServerModeDataSourceEntityInstantFeedbackDataSourceentityInstantFeedbackDataSourcecolidcolFromcolSubjectcolSentcolSizeNWindDataLoaderget_NWindset_NWindget_GenericXamlNameget_NewItemRowIDcontrolProcessNewValueEventArgslookUpEdit_ProcessNewValueCloseAddNewRecordHandlertxtDisplayMembertxtValueMemberchProcessNewValueDevExpress.Xpf.Grid.LookUplookUpEdit<NWind>k__BackingFieldNWindGenericXamlNameNewItemRowIDhitInfoListPointstartPositionfloatingContainerIsOpenCountget_AllowShowHitInfoset_AllowShowHitInfoAllowShowHitInfoPropertygrid_LoadedviewsListBox_SelectionChangedMouseEventArgsgrid_MouseMoveFloatingContainerEventArgsOnFloatingContainerIsOpenChangedGridViewHitTestVisitorBaseCreateDemoHitTestVisitorGridViewHitInfoBaseGetHitInfoGetRowHandleDescriptionAddHitInfoRemoveHitInfoAddTotalSummaryInfoAddFixedTotalSummaryInfoAddGroupValueInfoAddGroupSummaryInfohitInfoPopup_OpenedshowHitInfoCheckEditviewsListBoxPopupBasehitInfoPopupItemsControlhitIfoItemsControlAllowShowHitInfoPART_Editor_DefaultButtonClickGridMenuEventArgsTableView_ShowGridMenuFocusedRowHandleChangedEventArgsTableView_FocusedRowChangedlastDescriptionUpdateDescriptionShowingEditorEventArgsTableView_ShowingEditorget_ButtonEditClickCommandset_ButtonEditClickCommandRichTextBoxdescriptionRichTextBox<ButtonEditClickCommand>k__BackingFieldButtonEditClickCommandView_ShowGridMenudataTableFromGridget_DataTableFromGridFillComboBoxesRunActionDataRowSelectProductsFilterSelectRangeFilterSelectActionUnselectActionSelectProductsButtonClickUnselectProductsButtonClickReselectProductsButtonClickSelectPriceButtonClickUnselectPriceButtonClickReselectPriceButtonClickUpdateSummarygridView_SelectionChangedEnableMultiSelectCheckEditCheckedEnableMultiSelectCheckEditUncheckedSetMultiSelectModeCurrentItemChangedEventArgsgrid_CurrentItemChangedenableMultiSelectCheckEditProductsMultiSelectionOptionsControlPriceMultiSelectionOptionsControlSelectionRowsListBoxdefaultViewDataTableFromGridPLinqInstantFeedbackDataSourcepLinqInstantSourcecolOrderIdcolCustomerNamecolOrderDatecolProductCategorycolProductNamecolPricecolIsReadylbSummary_SelectedIndexChangedallowFixedGroupsCheckEditallowCascadeUpdateCheckEditallowScrollingAnimationallowSortingCheckEditallowGroupingCheckEditallowBestFitCheckEditshowIndicatorCheckEditshowVerticalLinesCheckEditshowHorizontalLinesCheckEditlbSummarycolCityCellMenuInfoPropertyget_DeleteRowset_DeleteRowget_CopyCellInfoset_CopyCellInfoget_CopyRowInfoset_CopyRowInfoGridCellMenuInfoget_CellMenuInfoset_CellMenuInfoOnDeleteRowOnCopyCellInfoOnCopyRowInfomaxmincustomItemCoreget_CustomItemGetCustomItemCustomSummaryExistEventArgsgrid_CustomSummaryExistsItemClickEventArgscustomSummaryMenuItem_CheckedChangedSetClibboardTextGetCellTextContextMenuModulecolumnMenuRemoveItemCheckcolumnMenuAddItemCheckgroupPanelMenuRemoveItemCheckgroupPanelMenuAddItemChecktotalMenuRemoveItemCheckBarManagerbarManagercopyCellDataItemcopyRowDataItemdeleteRowItemBarCheckItemallowSortingItemallowGroupingItemallowAllSortingItemallowAllGroupingItemBarSubItemcopyInfoItemcustomSummaryMenuItem<DeleteRow>k__BackingField<CopyCellInfo>k__BackingField<CopyRowInfo>k__BackingFieldDeleteRowCopyCellInfoCopyRowInfoCellMenuInfoCustomItemgcInitButtonCaptiongroupButton_Clickgc_AfterGroupinggroupButtonnewRowIDInitNewRowEventArgsview_InitNewRownewItemRowPositionChangedcolOrderIDcolProductIDcolDiscountClosePopupRadioButtonList_SelectionChangedget_ClosePopupCommandset_ClosePopupCommand<ClosePopupCommand>k__BackingFieldClosePopupCommandeditorShowModeCombobox_EditValueChangedbooleanColumnEditorListBox_EditValueChangededitorButtonShowModeListBox_EditValueChangedUpdateEditorButtonShowModeUpdateEditorShowModeGridCellValidationEventArgscolHoursActive_ValidatealternativeDisplayTemplateCheckBox_CheckedalternativeDisplayTemplateCheckBox_UncheckedalternativeEditTemplateCheckBox_CheckedalternativeEditTemplateCheckBox_UncheckedGetIsActivatingKeyEventArgsTextEditSettings_GetIsActivatingKeyProcessActivatingKeyEventArgsTextEditSettings_ProcessActivatingKeyGetCommandeditorShowModeComboboxeditorButtonShowModeListBoxbooleanColumnEditorListBoxautoCompleteCheckBoximmediatePopupCheckBoxalternativeDisplayTemplateCheckBoxalternativeEditTemplateCheckBoxcolIdcolUserIdcolTitlegroupModeList_SelectionChangedSetGroupIntervalDevExpress.XtraGridColumnGroupIntervalSetIntervalColumnSortModeSetSortModeCustomColumnSortEventArgsgrid_CustomColumnGroupCustomGroupDisplayTextEventArgsview_CustomGroupDisplayTextview_ShowGridMenuSetContextMenuItemCommandgroupModeListvListClearCursorPropertyCreateEditSettingssetRowColumnCountButton_ClickCustomBestFitEventArgsview_CustomBestFitrowCountListBoxcolumnCountListBoxsetRowColumnCountButtongeneratormaxCountSlider_ValueChangedgrid_CustomUnboundColumnDataupdateModeList_EditValueChangedchkAllowUpdatingupdateModeListmemoryUsageCheckBoxcpuUsageCheckBoxnewRowCheckBoxdeleteRowCheckBoxprintStyleChooser_SelectionChangedprintStyleChoosercountryColumncityColumnunitPriceColumntemplateNamesListBox_SelectionChangedtemplateNamesListBoxanimationTypeComboBox_SelectionChangedanimationTypeComboBoxlinqDataContextCreateLinqDataContextIfNullLinqServerModeDataSourcelinqServerModeDataSourceLinqInstantFeedbackDataSourcelinqInstantFeedbackDataSourcecolDaysActiveshowFilterPanelModeListBox_SelectionChangedUpdateShowFilterPanelModeallowFilteringCheckEditallowFilterEditorallowMRUFilterListCheckEditallowColumnMRUFilterListCheckEditshowFilterPanelModeListBoximmediateUpdateCountryColumnFilterCheckEditimmediateUpdateQuantityColumnFilterCheckEditRowTemplateComboBox_SelectionChangedget_ShouldUseModifiedThemeCheckBoxrowTemplateComboBoxShouldUseModifiedThemesummaryItemTemplateComboBox_SelectionChangedalignByColumnsCheckEditsummaryItemTemplateComboBoxcurrentLayoutStreamSerialization_LoadedSaveLayoutRestoreLayoutsaveLayoutButton_ClickrestoreLayoutButton_ClickloadSampleLayoutButton_ClicksaveLayoutButtonrestoreLayoutButtonlayoutSamplesComboBoxloadSampleLayoutButtoncolCompanyNamecolContactNamecolContactTitlecolAddressIsSelectedPropertySetIsSelectedGetIsSelectedget_CurrentSortOrderget_CurrentSummaryItemIndexsortModeList_SelectionChangedsortModeListcolCountcolOrderSumCurrentSortOrderCurrentSummaryItemIndexbtnTotalSummaryEditor_ClickbtnFixedTotalSummaryEditor_ClickcbTotalSummaryPanelsContextMenuEndbledcbShowFootercbShowFixedTotalSummarybtnTotalSummaryEditorbtnFixedTotalSummaryEditorGroupByCountryThenCityGroupByCountryThenCityThenOrderDateGroupByCityThenOrderDateClearGroupinggroupList_SelectionChangedallowFixedGroupsCheckBoxgroupListchkEnableContextMenu_CheckedchkEnableContextMenu_UncheckedshowTreelLinesCheckEditchkEnableContextMenutreeListdataViewGetSubTotalGridRowValidationEventArgsview_ValidateRowcolUnitPrice_ValidatecolQuantity_ValidatecolDiscount_ValidateDoValidationvalidationComboBox_SelectionChangedUpdateErrorsUpdateRowErrorsUpdateColumnErrorCellValueChangedEventArgsview_CellUpdatedRowEventArgsview_RowCanceledGetRowunitPriceConditionListBoxquantityConditionListBoxdiscountConditionListBoxcolQuantityPriceSliderControldurationSlideranimationEffectListBoxEditgridDataSourceListBoxEditPropertyChangedEventArgsviewModel_PropertyChangedfilterUseExtendedDataQueryCheckEditWcfInstantFeedbackDataSourcewcfInstantSourcecolTechnologyNamecolStatuscolCreatedOncolUrgentXPInstantFeedbackSourceinstantDSResolveSessionEventArgsinstantDS_DismissSessioninstantDS_ResolveSessionwaitIndicatorList_EditValueChangedanimationStyleMainInitDemoGetDebugGetFixtureTypeForXBAPOrSLTestingSystem.ResourcesResourceManagerresourceManresourceCultureget_ResourceManagerget_Cultureset_CultureCultureshowExpressionEditorButton_ClickshowExpressionEditorButtoncolDiscountAmountcolTotalScaleSetCursorPositionCommandPropertyviewListBox_SelectionChangedUpdateViewSetCursorPositionsenderSetCursorPositionCoreOnDescriptionTextBoxCommandPreviewCanExecuteget_SetCursorPositionCommandset_SetCursorPositionCommandviewListBoxcolTrademarkcolModelcolCategorySetCursorPositionCommanddemoStringedisableserverConnectionStringconnectionIdtargetfieldNamevaluetargetTypeparametercultureserviceProvidergroupNamecustomerIDemployeeIDorderIDoconditioncnewOrdersrescountryNameconnectionStringconnectioncategorycustomerDemographiccustomeremployeeorder_DetailsorderproductregionshippersupplierterritorycategoryIDcategoryNamecompanyNamecustomerTypeIDlastNamefirstNameproductIDunitPricequantitydiscountproductNamediscontinuedregionIDregionDescriptionshipperIDsupplierIDterritoryIDterritoryDescriptionbinderresultSystem.Runtime.InteropServicesOutAttributeinfoerrorSuggestionitemcontaineroutlookDataObjectowneraddressphoneNumberemailstrerrorTexterrorTypedrangerowHandleindicatorStatecolumnsummaryTextcolumnDatasummaryDatatextcomponentvalobjrowIndexcolumnIndexmaxValuedescsarrayfIndexresourceKeystoryboardpropertyobjectmethodcallbackdrawingContextoldValuerowDataparamelementnewValuedeltaisResizingxygridColumnsselectionargscultureInfosessiondelegateTypeprintableControltabNametabItempointsserviceRoottypeNameclientTypeoideFServerModeTestClassoIDcategoriesListgenerateCountstartFromotherbyMonthReportresourceHolderresourceNamemoduleTylefixturelistBoxEditexpectedExpressionintdexisMultiSelectfocusedGridcopyBtncutBtnpasteBtndelBtnstategridControldObjectlargeDataidrowCountpddirkeyrelationCollectiontaskbaseValueshouldSelectTopValuesnewChooserTypepositionNewRowobjectsForCopystartendindexElementactionForCommandisSecondGridcopyModewindowTitlecloserowHanleFilterDelegateactionForRowsrowenabledintervalsortModeitemNamerulerowViewSystem.Runtime.VersioningTargetFrameworkAttributeSystem.Windows.ResourcesAssemblyAssociatedContentFileAttributeSystem.ReflectionAssemblyTitleAttributeAssemblyDescriptionAttributeAssemblyProductAttributeAssemblyTrademarkAttributeAssemblyConfigurationAttributeAssemblyCompanyAttributeAssemblyCopyrightAttributeAssemblyCultureAttributeProductIDAttributeComVisibleAttributeThemeInfoAttributeResourceDictionaryLocationAssemblyVersionAttributeAssemblyFileVersionAttributeEdmSchemaAttributeEdmRelationshipAttributeSystem.Data.Metadata.EdmRelationshipMultiplicityDebuggableAttributeDebuggingModesCompilationRelaxationsAttributeRuntimeCompatibilityAttributeStringEmptyTextEditBaseget_IsCheckedInt32FormatBaseEditget_EditValueToInt32add_Checkedadd_UncheckedEditValueChangedEventHandleradd_EditValueChangedButtonBaseadd_ClickConcatFileset_IsEnabledSystem.XmlXmlDocumentLoadXmlElementget_DocumentElementXmlNodeop_Equalityget_InnerTextCharSplitset_IsCheckedSystem.TextEncodingget_UTF8XmlTextWriterXmlWriterWriteElementStringIDisposableWindowCloseCursorget_CursorCursorsget_Waitset_CursorSystem.Data.SqlClientSqlConnectionSystem.Data.CommonDbConnectionMessageBoxMessageBoxResultMessageBoxButtonMessageBoxImageDebuggerNonUserCodeAttributeSystem.CodeDom.CompilerGeneratedCodeAttributeUriKindApplicationLoadComponentEditorBrowsableAttributeEditorBrowsableStateSystem.LinqQueryableIQueryable`1RuntimeTypeHandleGetTypeFromHandleMemberInfoExecuteCommandSubmitChangesDatabaseExistsCreateDatabaseget_ConnectionGetSchemaget_DefaultViewget_CurrentMoveNextInsertOnSubmitRangeBaseUpdateLayoutDispatcherObjectDispatcherget_DispatcherDispatcherPriorityMultiSelectModeBooleanGetNameFromArgbSolidColorBrushNotImplementedExceptionWaitIndicatorTypeNotSupportedExceptionReplaceAssemblyGetExecutingAssemblyDevExpress.Xpf.Core.NativeImageHelperSystem.Windows.Media.ImagingBitmapImageCreateImageFromEmbeddedResourceContainsKeyToDoubleToBooleanShowSearchPanelModeget_HasValueFindModeDevExpress.Data.FilteringFilterConditionListBoxEditItemToLowerEnumeratorCompilerGeneratedAttributeget_NowAddMonthsget_Monthget_DayDoubleMathRoundNWindDataEmployeesWithPhotoDataget_OrdersRelationsDictionaryICollection`1SingleToDecimalset_ExtendedPriceInt16set_Salesperson<>c__DisplayClass1dict<>c__DisplayClass3CS$<>8__locals2<CreateCustomersForMaterDetailView>b__0<>c__DisplayClass6<>c__DisplayClass8CS$<>8__locals7<CreateCustomers>b__5AddRange<CreateChartSource>b__1Func`2CS$<>9__CachedAnonymousMethodDelegate3IGrouping`2<CreateChartSource>b__2cpCS$<>9__CachedAnonymousMethodDelegate4get_KeyEnumerableToListGroupByIEnumerator`1op_Implicitop_Multiplyop_Additionop_ExplicitemplId<InitSubordinateEmployee>b__5Whereget_AddressLine1get_CountryRegionNameget_ImageDataget_EmailAddressget_JobTitleTryGetValueObjectContextOptionsget_ContextOptionsset_LazyLoadingEnabledCreateObjectSetAddObjectEdmEntityTypeAttributeSerializableAttributeSystem.Runtime.SerializationDataContractAttributeStructuralObjectReportPropertyChangingSetValidValueReportPropertyChangedGetValidValueIEntityWithRelationshipsRelationshipManagerget_RelationshipManagerGetRelatedCollectionInitializeRelatedCollectionEdmScalarPropertyAttributeDataMemberAttributeSystem.Xml.SerializationXmlIgnoreAttributeSoapIgnoreAttributeEdmRelationshipNavigationPropertyAttributeop_InequalityGetRelatedReferenceInitializeRelatedReferenceBrowsableAttributeCombineInterlockedCompareExchangeIsNullOrEmptyIFormatProviderParseget_InvariantCultureGridCellDataCollectionViewSourceset_SourceGroupDescriptionget_GroupDescriptionsCollection`1SortDescriptionCollectionget_SortDescriptionsSortDescriptionMoveCurrentToFirstPropertyMetadataRegisterTimelineremove_CompletedTrimget_Lengthset_ErrorTextset_ErrorTypeCastAction`1VisualStateManagerGoToStatePropertyChangedCallbackBinaryOperatorReferenceEqualsCriteriaOperatorRightOperandOperandValueBinaryOperatorTypeNextAddDaysget_TableDataColumnCollectionDataColumnDataRowCollectionget_RowsInternalDataCollectionBaseChangePropertyget_SummaryItemSummaryItemBaseget_SummaryTypeEditableDataObjectHitTestVisitorBaseStopHitTestingBehaviorget_AssociatedObjectRequestNavigateEventHandleradd_RequestNavigateremove_RequestNavigateget_Uriget_AbsoluteUriProcessStartInfoProcessset_HandledDBNullAttributeStructLayoutAttributeLayoutKindget_TodayDevExpress.Data.MaskEnumHelperGetValuesDevExpress.Xpf.UtilsDependencyPropertyManagerFrameworkPropertyMetadataget_NewValueTimeSpanFromMillisecondsset_Intervaladd_Tickadd_CompletedDependencyPropertyExtensionsPropertyPathSetTargetPropertySetTargetBeginTimelineGroupTimelineCollectionget_ChildrenDoubleAnimationUsingKeyFramesDoubleKeyFrameCollectionget_KeyFramesDoubleKeyFrameDoubleAnimationZeroDurationset_Durationset_ToFrameworkPropertyMetadataOptionsget_OldValueget_ActualWidthFloorget_ActualHeightRectBrushPenDrawRectangleNotifyCollectionChangedEventHandlerremove_CollectionChangedadd_CollectionChangedInvalidateVisualget_GridDevExpress.Xpf.DataRowHandleget_RowHandleDataControlBaseGetCellValueResourceDictionaryget_ResourcesMultiEditorsListPropertyDescriptorset_ColumnCollectionFieldDescriptionget_FieldDescriptionsget_EditorDisplayNameget_TemplateNameFontWeightsFontWeightget_Normalget_Boldget_GroupNameDefaultStyleKeyPropertyOverrideMetadataRegisterAttachedRowDataPropertyget_DataContextget_RowStateGetTemplateChildThumbInitDataObjectBaseremove_ContentChangedadd_ContentChangedNextDoubleVerticalSizeHelperInstanceDllImportAttributeuser32.dllCanExecuteRoutedEventHandlerCommandManagerAddCanExecuteHandlerRemoveCanExecuteHandlerExecuteMonitorEnterget_ElapsedMillisecondsExitExchangeget_Elapsedget_TotalSecondsRestartStartNewIncrementget_ElapsedTicksSleepThreadStartCreateDelegateset_IsBackgroundFromSecondsget_CurrentDispatcherRemoveHandlerAddHandlerEditValueChangedEventDefaultStyleKeyHelperSetDefaultStyleKeyBaseColumn<CreateCollection>b__0colCS$<>9__CachedAnonymousMethodDelegate1ReadOnlyObservableCollection`1DataViewCommandsBaseget_Commandsget_ShowSearchPanelget_HideSearchPanelset_AllowSearchPanelGetManifestResourceStreamTreeListLineStyleop_GreaterThanOrEqualFormatExceptionget_ValidResultop_GreaterThanop_LessThanop_LessThanOrEqualPersistentAttributeget_DefaultSessionKeyAttributeset_ShowBorderDemoModuleControlget_DemoModuleControlFindDemoContentget_IsPopupContentInvisibleHideColumnChooserCommitEditingCarsDataCarsget_NewDataSourceset_ItemsSourcePrintableControlLinkLinkBaseItemCollectionget_ItemsLayoutHelperFindParentObjectPrintHelperShowPrintPreviewDialogDocumentPreviewDocumentPreviewBaseIDocumentPreviewModelset_Modelset_AllowHideset_SelectedItemget_LinkCreateDocumentCodeFileAttributeDevExpress.DemoData.v13.1.CoreDevExpress.DemoData.HelpersUniversalUserControlDetailDescriptorBaseExpandMasterRowGetVisibleDetailTabControlTabShownEventArgsget_TabIndexTabControlTabHiddenEventHandleradd_TabHiddenEnvironmentget_NewLineExceptionget_MessageEntityExceptionset_DataContextadd_UnloadedDispatcherOperationStatusSeriesget_PointsSeriesPointget_TimeOfDayComponentget_MaximumPowRoutedPropertyChangedEventHandler`1add_ValueChangedset_ResolveNameset_ResolveTypeStringComparisonStartsWithGetTypeget_AssemblySubstringget_NamespaceCreateQuerySystem.Data.Services.CommonEntitySetAttributeDataServiceKeyAttributeget_PropertyNameUIPropertyMetadataControlExtensionsEntityConnectionStringBuilderset_Metadataset_ProviderDataFilesHelperget_DataPathFindFilePathGetFullPathset_ProviderConnectionStringset_Capacityget_CategoryProductsFromDaysSubtractGetRangeStringComparerget_CurrentCultureset_DataTypeget_YearDaysInMonthNewRowColumnGeneratorItemContextget_PropertyDescriptorMemberDescriptorContentPropertyAttributeControlTemplateset_TemplateApplyTemplateVisualTreeHelperGetChildVisibilityPropertyBindingBoolToVisibilityConverterset_ConverterBindingExpressionBaseBindingBaseSetBindingMaximumPropertyValuePropertyBindingModeset_ModeXmlRootAttributeXmlSerializerDemoHelperGetPathDeserializeSystem.ServiceModelEndpointAddressBasicHttpBindingset_MaxReceivedMessageSizeDevExpress.Xpo.DBDataStoreClientSystem.ServiceModel.ChannelsSimpleDataLayerIDataStoreXpoDefaultIDataLayerset_DataLayerset_SessionEnumeratorHelperget_DemoModuleBaseTestingFixtureAddSimpleActionCreateSetCurrentDemoActionsListBoxget_ItemsSource<CreateCheckUnboundColumnsDemoActions>b__0Assertget_AssertColumnCollectionBase`1get_GroupIndexAreEqualget_GroupCountIsGroupRowExpandedIsTrueget_IsEnabledget_AllowUnboundExpressionEditorListItemCollectionFindElementItemContainerGeneratorget_ItemContainerGeneratorContainerFromIndexListBoxItemget_TagGetCellElementByRowHandleAndColumnFindElementByNameIsNullIsNotNullAbsset_SelectedIndexUpdateLayoutAndDoEventsset_UnboundExpressionUnboundErrorObjectAddLoadModuleActionsUnboundExpressionEditorEventArgs<AssertShowExpressionEditor>b__1get_ExpressionEditorControlUnboundExpressionEditorEventHandleradd_UnboundExpressionEditorCreatedUIAutomationActionsClickButtonget_IsVisibleget_ExpressionDialogControlCancelButtonIsFalseremove_UnboundExpressionEditorCreatedGroupGridRow<CreateCheckHitTestDemoActions>b__2get_SelectedIndexPopupget_PlacementTargetPlacementModeget_PlacementMouseActionsMouseMoveget_IsOpenget_HorizontalOffsetget_VerticalOffsetEditorsActionsToggleCheckEditDevExpress.Xpf.Grid.NativeGridControlHelperGridColumnHeaderGetColumnHeaderElementsLeftMouseDownLeftMouseUpShowColumnChooserset_CardLayout<AssertAdditionalElements>b__3CS$<>9__CachedAnonymousMethodDelegate6<AssertAdditionalElements>b__4CS$<>9__CachedAnonymousMethodDelegate7<AssertAdditionalElements>b__5CS$<>9__CachedAnonymousMethodDelegate8TextPropertyset_GroupIndexGetRowElementByRowHandle<CreateCheckTableViewDemoActions>b__9get_AutoWidthget_AllowSortingget_AllowGroupingget_AllowColumnMovingget_AllowResizingget_AllowBestFitget_ShowHorizontalLinesget_ShowVerticalLinesget_ActualAllowSortingget_ActualAllowGroupingget_ActualAllowMovingget_ActualAllowResizingLookUpEditBaseget_SelectedItemget_NavigationStyle<CreateCheckMultiSelectionDemoActions>b__aSelectItemget_SelectedItemsUnselectAllSelectRangeget_VisibleColumnsGridTotalSummaryDataget_TotalSummariesget_DisplayFormatget_VisibleRowCountDetailRowsContainerget_RootRowsContainerRowsContainerRowDataBaseGroupRowDataget_GroupSummaryDataget_SummaryValueget_DataControlget_SelectionMode<CreateCheckCopyPasteDemoActions>b__b<CreateCheckCopyPasteDemoActions>b__c<CreateCheckCopyPasteDemoActions>b__d<CreateCheckCopyPasteDemoActions>b__e<CreateCheckCopyPasteDemoActions>b__f<CreateCheckCopyPasteDemoActions>b__10<CreateCheckCopyPasteDemoActions>b__11get_ClipboardCopyModeSelectorIDemoBaseTestingget_DemoBaseTestingget_CurrentDemoModuleFocusset_CaretIndexSelectAllset_FocusedRowHandleFunc`1AddEventAction<CreateCheckFilterControlDemoActions>b__12get_AllowFilterEditorget_FilterCriteriaget_ShowGroupCommandsIconget_ShowOperandTypeIconget_ShowToolTipsset_FilterCriteriaFilterEditorEventHandleradd_FilterEditorCreatedShowFilterEditorget_FilterControl<CreateCheckFilteringDemoActions>b__13ShowFilterPanelModeget_ShowFilterPanelModeget_AllowColumnFilteringget_ImmediateUpdateColumnFilter<Create_B144178_Actions>b__0<Create_B144178_Actions>b__1<Create_B144178_Actions>b__2SortByDatabaseAttributeGetTableAttributeMappingSourceTableAttributeGetValueOrDefaultColumnAttributeset_DefaultStyleKeyHeaderedContentControlget_DisplayMemberset_DisplayMemberTypeDescriptorGetPropertiesListChangedTypeDefaultMemberAttributeadd_EndGroupingget_IsGroupedComboBoxEditSettingsButtonEditSettingsset_IsTextEditableLookUpEditSettingsBaseSetupComboBoxSettingsEnumItemSourceCoerceValueCallbackCommandBindingCollectionget_CommandBindingsExecutedRoutedEventHandlerCommandBindingget_ParameterCardHeaderTemplatePropertyClearValueFindResourceset_CardHeaderTemplateset_CardRowTemplateSelectorCardsPanelFixedSizePropertyCardTemplatePropertyset_FixedSizeset_CardTemplateget_NewDataViewset_MaxCardCountInRowMemoEditSettingsset_ShowIconPopupBaseEditSettingsset_PopupWidthset_PopupHeightTextWrappingset_MemoTextWrappingScrollBarVisibilityset_MemoVerticalScrollBarVisibilityset_MaxWidthBeginSelection<PrivateImplementationDetails>{384A6B85-3D31-4930-80F1-FDF8075A0F9D}__StaticArrayInitTypeSize=400$$method0x600062f-1RuntimeHelpersRuntimeFieldHandleInitializeArrayGetSelectCellGetLengthEndSelectionset_Visibleset_ShowInColumnChooserGridSummaryItemCollectionget_TotalSummaryset_SummaryTypeset_DisplayFormatSpinEditSettingsTextEditSettingsMaskTypeset_MaskTypeset_MaskUseAsDisplayFormatset_Maskset_MaskCultureCustomSummaryProcessget_SummaryProcessIsCellSelectedget_FieldValueset_TotalValueUpdateTotalSummary<SelectCells>b__2Comparison`1SortComparer`1get_DefaultCustomSummaryEventHandleradd_CustomSummaryGridSelectionChangedEventHandleradd_SelectionChangedColumnChooserFactoryPropertyset_ColumnChooserFactoryExpanderadd_Expandedadd_CollapsedGetDataStreamXmlNodeListSelectNodesset_Bindingget_DateTimeset_ErrorContentset_IsValidget_Bindingget_PathDevExpress.Xpf.Editors.ValidationValidateEventHandleradd_ValidateExpandGroupRowItemsSourceChangedEventHandleradd_ItemsSourceChangedget_GroupSummaryUngroupByadd_BeforeModuleDisappearEventManagerRoutingStrategyRegisterRoutedEventToArrayMouseButtonEventHandleradd_PreviewMouseDownCopySelectedItemsToClipboardget_FocusedRowHandleCopyRowsToClipboardCopyGetListIndexByRowHandleBeginDataUpdateGetSelectedRowHandlesEndDataUpdateDeleteget_FullNameGetDataPresentGetDataPasteInvalidateRequerySuggestedget_ArrowRaiseEventHandoffBehaviorCloneget_IsKeyboardFocusWithinget_SelectionLengthClipboardGetDataObjectDataObjectGetTextset_CanExecuteget_CanExecuteget_ListSourceRowIndexget_SourceColumnDataEventArgsBaseset_ClipboardCopyModeadd_Executedadd_CanExecuteGridColumnDataEventHandleradd_CustomUnboundColumnDataApplyFilterset_ShowGroupCommandsIconset_ShowOperandTypeIconset_ShowToolTipsCloseEditorset_CurrentColumnShowEditorget_ActiveEditorPopupBaseEditShowPopupadd_LoadedDemoTestingHelperget_IsTestingset_ElementTypeAsQueryableIQueryableset_QueryableSourceDevExpress.Xpf.Core.DataSourcesListSourceDataSourceBaseget_Dataget_MainWindowShowDialogset_WaitIndicatorTypeStyleset_WaitIndicatorStyleWaitIndicatorStylePropertyget_MergedDictionariesAssemblyHelperGetPartialNameset_TagBeginInitget_DisplayTextDialogClosedDelegateget_EmptyFloatingContainerParametersset_AllowSizingset_ClosedDelegateset_ContainerFocusableset_ShowModalFloatingContainerShowDialogContentset_PostponedValidationCancelEditEndInitProcessNewValueEventHandleradd_ProcessNewValueFloatingContainerEventHandlerAddFloatingContainerIsOpenChangedHandlerMultiBindingset_ElementNameset_Pathget_BindingsNegationConverterExtensionRelativeSourceRelativeSourceModeset_RelativeSourceAndConverterIMultiValueConverterIsOpenPropertyIInputElementGetPositionget_XFlowDirectionget_FlowDirectionset_HorizontalOffsetget_Yset_VerticalOffsetGetCellDisplayTextHitInfoBase`1DataViewHitTestVisitorBaseAcceptget_ContainerBaseFloatingContainerget_OriginalSourceTableViewHitInfoCalcHitInfoCardViewHitInfoIsGroupRowHandle<>c__DisplayClass5<RemoveHitInfo>b__4FirstOrDefaultget_TotalSummaryTextMouseadd_OpenedMouseEventHandleradd_MouseMoveset_AllowEditingFixedStyleset_Fixedset_CellTemplateSelector<>c__DisplayClass4<>4__this<PART_Editor_DefaultButtonClick>b__3dialogResultset_EditValueCountriesArrayget_CurrentColumnGridMenuTypeget_MenuTypeBarManagerActionCollectionget_CustomizationsRemoveBarItemAndLinkActionBarItemActionBaseset_ItemNameIBarManagerControllerActionFlowDocumentget_DocumentBlockCollectionget_BlocksParagraphContainerTextElementCollection`1BlockParagraphget_ParagraphShowingEditorEventArgsBaseset_CancelGridMenuEventHandleradd_ShowGridMenuFocusedRowHandleChangedEventHandleradd_FocusedRowHandleChangedShowingEditorEventHandleradd_ShowingEditorGetRowHandleByListIndexUnselectItemIsRowSelectedUpdateGroupSummaryset_SelectionModeCurrentItemChangedEventHandleradd_CurrentItemChangedset_ShowTotalSummaryset_ShowFixedTotalSummaryadd_SelectedIndexChangedGridMenuInfoget_MenuInfoop_Divisionget_TotalSummaryMenuCustomizationsset_ExistsSetTextCustomSummaryExistEventHandleradd_CustomSummaryExistsItemClickEventHandleradd_CheckedChangedget_OrderDetailsNewScrollIntoViewSetCellValueNewItemRowPositionget_NewItemRowPositionInitNewRowEventHandleradd_InitNewRowFindRootget_Parentset_IsOpenEditorButtonShowModeset_EditorButtonShowModeEditorShowModeset_EditorShowModeSetErrorset_DisplayTemplateset_EditTemplateActivatingKeyEventArgsKeyModifierKeysget_Modifiersset_IsActivatingKeyget_EditCoreget_IncreaseLargeget_IncreaseSmallget_DecreaseLargeget_DecreaseSmallGridCellValidationEventHandlerGetIsActivatingKeyEventHandleradd_GetIsActivatingKeyProcessActivatingKeyEventHandleradd_ProcessActivatingKeyGridSortInfoCollectionget_SortInfoGridSortInfoset_GroupCountset_GroupIntervalset_SortModeget_Value1get_Value2set_ResultCellValueEventArgsget_SortModeset_DisplayText<SetContextMenuItemCommand>b__2DataControlPopupMenuget_MenuCustomizablePopupMenuBaseBarItemGetBarItemByNameCustomColumnSortEventHandleradd_CustomColumnGroupCustomGroupDisplayTextEventHandleradd_CustomGroupDisplayTextObservableCollectionCore`1BeginUpdateBestFitAreaset_BestFitAreaset_AllowColumnFilteringEndUpdateCursorPropertyEditSettingsHorizontalAlignmentset_HorizontalContentAlignmentCustomBestFitEventArgsBaseset_BestFitRowsCustomBestFitEventHandleradd_CustomBestFitset_AllowLiveDataShapingPrintColumnHeaderStylePropertyPrintCellStylePropertyPrintGroupRowStylePropertyPrintTotalSummaryStylePropertyPrintFixedTotalSummaryStylePropertyset_PrintColumnHeaderStyleset_PrintCellStyleset_PrintGroupRowStyleset_PrintTotalSummaryStyleset_PrintFixedTotalSummaryStyleset_PrintHeaderTemplateset_PrintRowTemplatePrintHeaderTemplatePropertyPrintRowTemplatePropertyCollapseStoryboardPropertyExpandStoryboardPropertyset_ExpandStoryboardset_CollapseStoryboardset_RowDecorationTemplateRowDecorationTemplatePropertyset_ShowFilterPanelModeset_DataRowTemplateDataRowTemplatePropertyset_GroupSummaryItemTemplateGroupSummaryItemTemplateSelectorPropertyset_GroupSummaryItemTemplateSelectorGroupSummaryItemTemplatePropertySaveLayoutToStreamset_PositionRestoreLayoutFromStreamGridGroupSummarySortInfoCollectionget_GroupSummarySortInfoGridGroupSummarySortInfoShowTotalSummaryEditorShowFixedTotalSummaryEditorExpandAllNodesset_IsColumnMenuEnabledset_IsRowCellMenuEnabledset_IsTotalSummaryMenuEnabledop_Subtractionget_IsValidget_ErrorContentBeginEditEndEditSetColumnErrorGridRowValidationEventHandleradd_ValidateRowCellValueChangedEventHandleradd_CellValueChangedRowEventHandleradd_RowCanceledadd_ResolveSessionadd_DismissSessionset_DefaultSortingDevExpress.Xpo.HelpersISessionProviderget_SessionUnitOfWorkSTAThreadAttributeStartupBaseRunDevExpress.DemoData.v13.1DevExpress.DemoDataAssemblyMarkerLoaderset_DemoDataAssemblyExpandAllGroupsShowUnboundExpressionEditorVisualPointToScreenEditingCommandsRoutedUICommandget_MoveDownByLineget_MoveUpByLineget_MoveUpByPageget_MoveDownByPageset_ContinueRoutingGridDemo.g.resourcesGridDemo.Properties.Resources.resourcesGridDemo.Images.RealtimeDataSource.down.pngGridDemo.Images.RealtimeDataSource.up.pngGridDemo.Images.IssueIcons.Active.pngGridDemo.Images.IssueIcons.Answered.pngGridDemo.Images.IssueIcons.CustomerClosed.pngGridDemo.Images.IssueIcons.Duplicate.pngGridDemo.Images.IssueIcons.InsufficientInformation.pngGridDemo.griddemo.manifestGridDemo.Data.LayoutSamples.BriefView.xmlGridDemo.Data.LayoutSamples.FullView.xmlGridDemo.Data.Countries.xmlGridDemo.Data.EmbeddedData.txtControls.NWindModel.csdlControls.EFServerModeModel.csdlControls.NWindModel.mslControls.EFServerModeModel.mslControls.NWindModel.ssdlControls.EFServerModeModel.ssdlAFailed to connect to the server.!Connection Error=Adding next portion of data...5Current record count = {0}��This demo demonstrates the DXGrid control's capabilities when it is bound to a large amount of data. In this demo the DXGrid control needs to be connected to a data table on an MS SQL server. Please use this Configuration Window to configure data and connection settings.



On the first run:

1) Specify the name of an existing SQL Server, which will contain the target database;

2) Specify the amount of records in the target table and click the "Generate Table and Start Demo" button. A new table will be generated and the demo will start with the DXGrid control bound to the generated recordset.



On subsequent runs, you can add more records to the database or just start the demo without generating additional data.{0};{1};{2};{3}%DXGridServerModeDB#SQLParameters.xmlParameters#;initial catalog=Qdata source={0};integrated security=SSPIQdata source={0};user id={1};password={2}k/GridDemo;component/controls/sqlconnectionwindow.xamlDELETE FROM  WHERE Oid>=0�w

CREATE TABLE {0}(

OID Int NOT NULL IDENTITY,

Sent DateTime,

HasAttachment Bit,

Size BigInt,

[From] NVarChar(100),

Subject NVarChar(100),

CONSTRAINT {0}_pk PRIMARY KEY (OID)

);

	SentHasAttachment	Size	FromSubjectICREATE INDEX {1}_idx ON {0} ([{1}]);
TablesTABLE_NAME?This method shouldn't be called 7GridDemo.Images.IssueIcons.	.pngOhttp://devexpress.com/Support/Center/p/.aspxBy Cell
By RowDefault
AlwaysNeverFind on ClickContainsStarts With	Like_/GridDemo;component/Images/MultiView/GroupName/administrationinventorymanufacturingqualityresearchsalesK/GridDemo;component/Images/MultiView/
Normal	Boldw/GridDemo;component/controls/internetconnectioncontrol.xamlCustomerIDOrderIDEmployeeIDAddress	CityCountryDiscountExtendedPriceFreightOrderDatePostalCodeProductIDProductNameQuantity
RegionRequiredDateSalespersonShipAddressShipCityShipCountryShipNameShipPostalCodeShipRegionUnitPriceShipViaOrderIdCompanyNameContactNameContactTitleFaxPhoneBirthDateExtensionFirstNameHireDateHomePhoneLastNameNotesPhotoTitleTitleOfCourtesyUSAUKUnited StatesUnited Kingdom-name=NorthwindEntities#NorthwindEntitiesCategories)CustomerDemographicsCustomersEmployeesOrder_Details
OrdersProductsRegionsShippersSuppliersTerritoriesCategoryIDCategoryNameDescriptionPictureKNorthwindModel.FK_Products_CategoriesENorthwindModel.FK_Orders_CustomersGNorthwindModel.CustomerCustomerDemoCustomerTypeIDCustomerDescReportsToPhotoPathKNorthwindModel.FK_Employees_EmployeesEmployees1ENorthwindModel.FK_Orders_EmployeesENorthwindModel.EmployeeTerritoriesShippedDateMNorthwindModel.FK_Order_Details_OrdersCNorthwindModel.FK_Orders_ShippersQNorthwindModel.FK_Order_Details_ProductsSupplierIDQuantityPerUnitUnitsInStockUnitsOnOrderReorderLevelDiscontinuedINorthwindModel.FK_Products_SuppliersRegionID#RegionDescriptionINorthwindModel.FK_Territories_RegionShipperIDHomePageTerritoryID)TerritoryDescription	ToIdIdColumnNameTypeIndexEMailJobTitleNewRowsProgressNewRowsColorEmail+ field can't be empty7Address hasn't been entered3Email hasn't been entered	none'Wrong email addressaEither Phone Number or Email should be specified@HiddenInGroupVisibleInGroupIsItemVisibleGroupIntervalCountOrderSum+[UnitPrice] * [Count]by Yearby Month#ActualSalesReportReportTypeIndex%AllowCascadeUpdate7DefaultDisplayModeSummariesEAlignByColumnsDisplayModeSummaries/AlignSummariesByColumnsSummarySource-CityColumnVisibleIndex)CityColumnGroupIndex#RowIndicatorState{0}, 5{0}{1}, {2}, {3}

{4}, {5}ID(1)ToPriority()CpuUsage!MemoryUsageColorRevealProgressPID	NameMemoryUsageUpdateInterval+UpdateHistoryIntervalProcessMaxCountProcessMinCountUpdateModewininit.exesvchost.exe
Systemdevenv.exeintetinfo.exelsm.exelsass.exewinlogon.exeservices.exe!newRowStoryboard'deleteRowStoryboardGmemoryUsageDecreasedColorStoryboardGmemoryUsageIncreasedColorStoryboard1cpuUsageChangeStoryboardCpuUsageHistoryBarBrushes/ShowOrdersColumnHeaders'ShowOrdersSummaries5ShowCustomersColumnHeaders-ShowCustomersSummaries3ShowInvoicesColumnHeaders+ShowInvoicesSummaries#ShowDetailButtonsTemplateNameFieldProduct #EditorTypeProductID = 'ColumnInfoFieldNameRowHeightPART_ResizerScaleFactor1CanExecuteHandlerCommandListSource+IsGeneratingOrderData=GenerateOrderDataProgressValueCountItems#SelectedCountItem#AllowPrintDetailsPrintAllDetails1PrintOrdersColumnHeaders)PrintOrdersSummaries7PrintCustomersColumnHeaders/PrintCustomersSummaries5PrintInvoicesColumnHeaders-PrintInvoicesSummaries7PrintEmployeesColumnHeaders/PrintEmployeesSummariesANRFEGT	PRGOAPDPPLAESAVBIBMGASEFXGPCICEIVZKOCCESOSTIBWAHRLWFMLM	TROWK	EXPE	PCAR	TRIPWHRWMTNUHSTCVHLMTMARCVCRFVMCPHMMUIRMAMTBXPSTT	PBCT	FISVBLLMTBDISLH	AKAMCPBMYL	LIFELEGSCGCNXCOL	MCHPGRDUKBACNUEUNM	DLTRABCTEGRRDEQREXCBACME	NTRSVTR	FITBPGKRMSNIETNCLFPHKEYSHWHDAFLTSSCMI	HBANAEPBIGLTD	ESRXGLWWPIMON	AAPLDFTCMATHCLUVTXNTIEPX
Ticker	LastChgPercent	Open	High	Date
DayValDo
OnIdle%WithRealTimeSourceCommand	ViewColumns+SelectAllItemsCommand?The value must be greater than !is greater than WThe value must be greater than or equal to 9is greater than or equal to 9The value must be less than is less than QThe value must be less than or equal to 3is less than or equal to 9The value must be not equal does not equal %SelectedDefinition-IsUseExtendedDataQueryWcfSCService��http://demos.devexpress.com/Services/WcfLinqSC/WcfSCService.svc/GridControlW/GridDemo;component/modules/bandedview.xamlGrid DocumentPreviewe/GridDemo;component/modules/printmasterdetail.xamle/GridDemo;component/modules/embeddedtableview.xaml!SelectedTabIndexa/GridDemo;component/modules/gridsearchpanel.xamlc/GridDemo;component/modules/masterdetailview.xamlIConnection could not be established.g/GridDemo;component/modules/masterdetailwithef.xamlUpdateGraphg/GridDemo;component/modules/realtimedatasource.xamlSCModel+GridDemo.WcfSCServiceSCModel.SCIssuesDemoOidIDModifiedOnCreatedOnTechnologyName
Urgent
Statuss/GridDemo;component/controls/collectionviewnavigator.xaml;IsSynchronizedWithCurrentItemCollectionView[IsSynchronizedWithCurrentItemEditorVisibilityAEditableCollectionViewVisibilityNameValueTextValue��res://*/Controls.NWindModel.csdl|res://*/Controls.NWindModel.ssdl|res://*/Controls.NWindModel.msl+System.Data.SqlClient�data source=.\SQLEXPRESS;AttachDbFilename={0};integrated security=True;User Instance=True;multipleactiveresultsets=True;App=EntityFrameworkNWind.mdf?name=DXGridServerModeDBEntities5DXGridServerModeDBEntities/EFServerModeTestClassesOIDDataSourceIcon_25DateMonth-EmployeeColumnTemplate%DateColumnTemplate%ProgressVisibilityProgressMaximumProgressValuew/GridDemo;component/controls/tabheaderprintinfocontrol.xaml!LinkPreviewModelTabNameGridDemo.Data.Countries.xmlyhttp://demos.devexpress.com/Services/WcfXpoSC/XPOService.svcTotalDiscountAmountDiscount AmountTotal ScaleTotalScalearrowSRound([UnitPrice] * [Quantity] - [Total])[([UnitPrice] * [Quantity]) * (1 - [Discount])��Iif([Total] < 1000, 0.4, Min((0.5 + ([Total] - 1000) / 1000), 1.2))��[Unit Price] * [Quantity] * (1 - [Discount])+[Discount][[Discount]]HitTestColumnHeader
ColumnRowHandle
No rowCellValuePART_NewItemRowNew Item RowPART_FilterRowAuto Filter Row0 (data row)10248PART_IndicatorFocusedID: 10248Count=3Count=2155-1 (group row)GroupValueOrderID: 10248GroupSummary#FixedTotalSummary%Grand Total=${0:N}QId From Sent Hours Active Has AttachmentASent Hours Active Has Attachment
QWERTYPriority(7)3PART_ColumnChooserControl'ComboBoxItemsSource}/GridDemo;component/controls/miltiselectionoptionscontrol.xamlHoursActive
UserIdPeter DolanRyan FischerRichard FisherTom HamlettMark HamiltonSteve LeeJimmy Lewis#Jeffrey W McClainAndrew MillerDave MurrelBert ParkinsMike RollerRay ShipmanPaul BaileyBrad BarnesCarl LucasJerry Campbell��Integrating Developer Express MasterView control into an Accounting System.��Web Edition: Data Entry Page. There is an issue with date validation.[Payables Due Calculator is ready for testing.]Web Edition: Search Page is ready for testing.��Main Menu: Duplicate Items. Somebody has to review all menu items in the system.yReceivables Calculator. Where can I find the complete specs?KLedger: Inconsistency. Please fix it.cReceivables Printing module is ready for testing.UScreen Redraw. Somebody has to look at it._Email System. What library are we going to use?aCannot add new vendor. This module doesn't work!gHistory. Will we track sales history in our system?mMain Menu: Add a File menu. File menu item is missing.��Currency Mask. The current currency mask in completely unusable.��Drag & Drop operations are not available in the scheduler module.cData Import. What database types will we support?QReports. The list of incomplete reports.��Data Archiving. We still don't have this features in our application.��Email Attachments. Is it possible to add multiple attachments? I haven't found a way to do this.��Check Register. We are using different paths for different modules.��Data Export. Our customers asked us for export to Microsoft ExcelCompletePercentComplete
{0}{1}, 
<None>	TaskBusinessCompetitorFavoritesGiftsGoalsHolidayIdeasInternationalPersonal]/GridDemo;component/modules/autofilterrow.xamlSendMailIsNotesExpandedmailto:-headerTemplateFullName=headerTemplateFullNameWithIcon%eMailTemplateCardscardTemplate1cardTemplate2]/GridDemo;component/modules/cardtemplates.xamlS/GridDemo;component/modules/cardview.xaml
${0:N}cen-US_/GridDemo;component/modules/cellsselection.xaml'Show Column Chooser'Hide Column Chooser]/GridDemo;component/modules/columnchooser.xaml#ColumnChooserType'/Employees/Employee[/GridDemo;component/modules/bindingtoxml.xamlRowData.Row.��A column bound to the same field in the data source already exists.o/GridDemo;component/modules/bindingtodynamicobject.xaml	AnneBobMichael	MikeBryanSteve	AlexDonDavid
SandraSamanthaJimJoDodsworthSmith
Miller
VargasMaresRallsSeamans	MyerMoreland
WaltonMastersBerryHines_/GridDemo;component/modules/collectionview.xamlq/GridDemo;component/modules/groupsummariesalignment.xamlU/GridDemo;component/modules/multiview.xaml'PastUnderFocusedRowFocusedGridPasteCompeted+newRowColorStoryboard!AnimationElementU/GridDemo;component/modules/copypaste.xamlS/GridDemo;component/modules/dragdrop.xaml]/GridDemo;component/modules/filtercontrol.xamle/GridDemo;component/modules/inplacelookupedit.xaml��res://*/Controls.EFServerModeModel.csdl|res://*/Controls.EFServerModeModel.ssdl|res://*/Controls.EFServerModeModel.msl
ReturnStart Demo
Custom1CustomWaitIndicatorStyleo/GridDemo;component/modules/linqtoentityservermode.xamlGeneric.xaml3/{0};component/Themes/{1}NWindDataLoader)addNewRecordTemplateAdd New RecordW/GridDemo;component/modules/lookupedit.xaml	gridIsMouseOver)IsMouseCaptureWithin)showHitInfoCheckEditIsChecked!AllowShowHitInfocardViewtableViewNo column{0} ({1})data rowgroup rowTotalSummary{0}: {1}Q/GridDemo;component/modules/hittest.xamlSelect CountryItemGroupBox#ItemSortAscending%ItemSortDescending!ItemClearSortingItemGroupColumnProgressBarEdit[/GridDemo;component/modules/multieditors.xaml#ItemSortBySummary$	 - $_/GridDemo;component/modules/multiselection.xamlCPLinqInstantFeedbackDemoViewModelk/GridDemo;component/modules/plinqinstantfeedback.xamlU/GridDemo;component/modules/tableview.xaml!allowSortingItem#allowGroupingItem#ItemClearGrouping'allowAllSortingItem)allowAllGroupingItemItemCustomize+customSummaryMenuItemcustomItemY/GridDemo;component/modules/contextmenu.xamlCellMenuInfo'Group by 'Category'- Ungroup by 'Category'c/GridDemo;component/modules/multiplegrouping.xamlW/GridDemo;component/modules/newitemrow.xaml[/GridDemo;component/modules/fixedcolumns.xamlcolumnView��The Hours Active value must be greater than zero and less than or equal to 1000KalternativeHoursActiveDisplayTemplateEalternativeHoursActiveEditTemplate_/GridDemo;component/modules/inplaceeditors.xaml_/GridDemo;component/modules/currentdatarow.xamlg/GridDemo;component/modules/customedittemplate.xaml	John3123 Home Lane, Homesville(555)956-15-47HenryMcAllister-436 1st Ave, Cleveland(555)941-24-32@hotbox.comFrankFrankson9349 Graphic Design L, Newman(555)155-05-02
FreddyKruegerElm StreetLeticia	Ford?93900 Carter Lane, Cartersville(555)776-15-66Karen
Holmes(555)342-25-74RogerMichelson=3920 Michelson Dr., Bridgeford(555)954-51-88]/GridDemo;component/modules/dataerrorinfo.xaml-{0:$0.00} - {1:$0.00} >= {0:$0.00} 	NoneDayMonth	YearSmart_/GridDemo;component/modules/groupintervals.xaml#,0
## ##0[/GridDemo;component/modules/largedataset.xamlS/GridDemo;component/modules/livedata.xaml9customPrintColumnHeaderStyle)customPrintCellStyle'customGroupRowStyle9customPrintTotalSummaryStyleCcustomPrintFixedTotalSummaryStyle#{0} Style Preview[/GridDemo;component/modules/printoptions.xaml3detailPrintHeaderTemplate-detailPrintRowTemplate3mailMergePrintHeaderStyle3mailMergePrintRowTemplate{0} Preview_/GridDemo;component/modules/printtemplates.xaml!expandStoryborad%collapseStoryboradfadeInTemplateblindsTemplatek/GridDemo;component/modules/expandcollapsegroups.xaml_/GridDemo;component/modules/linqservermode.xamlBergamoU/GridDemo;component/modules/filtering.xamleMailTemplate7expandableRowDetailTemplate#rowDetailTemplate%rowToolTipTemplateY/GridDemo;component/modules/rowtemplate.xamlMcustomTemplateWithSummaryCustomization%smallValueTemplate%largeValueTemplatecustomTemplate[/GridDemo;component/modules/groupsummary.xamlOriginalBrief view9GridDemo.Data.LayoutSamples.BriefView.xmlFull viewFullView.xml]/GridDemo;component/modules/serialization.xamlIsSelected]/GridDemo;component/modules/sortbysummary.xaml[/GridDemo;component/modules/totalsummary.xamlS/GridDemo;component/modules/grouping.xaml[/GridDemo;component/modules/treelistview.xamlmThe SubTotal value must be greater than or equal to 0.W/GridDemo;component/modules/validation.xamls/GridDemo;component/modules/verticalscrollingoptions.xamlg/GridDemo;component/modules/wcfinstantfeedback.xamlCreatedOn descg/GridDemo;component/modules/xpoinstantfeedback.xamlSDevExpress.Xpf.Demos.Properties.Resources_/GridDemo;component/modules/unboundcolumns.xaml1SetCursorPositionCommandgridViewg/GridDemo;component/modules/persistentrowstate.xaml�kJ81=0I��Z��z\V4���T��1�8V�6N5)��9��qu9�P9
q��)��)��)��)������)�����4   �  �  �	  �
�����!�%��� (((� ��  �)�- �1�5)(
 �9�= �9�=�9p �9�= �A	�9�=
(�9�=	 �9p
 �9p�E�I�A
�9t �A�9p	(�9p�9t	 �9t	�M��
 �M��
�9��	 )��
 )��
)�� �Q )��	(�9t
(�M��	()�� �U �U�U(�U�5�Q�M! �Y
 �]��	�]��
 �]��	�]��
 �]��	�]��
 �]��	�]��
 �]��	�]��
 �]��	�]��
 �]��	�]��
 �]��	�]��
 �]��	�]��
 �]��	�]��
 �]��	�]�� �� �� �� �� �� �� �� �� �� �� ��
(�]��
(�]��
(�]��
(�]��
(�]��
(�]��
(�]��
(�]��
(�]��
(�]��
(�]����  
 �a�� �a��(
(�a����
 �a�� �a��
 �a�� �a��
(�a��
(�a����
 �a�� �a��
(�a����
 �e�U �e�U	�e�U �e	 �e�e
 �a�� �a�� ��
 �i�� �i��
 �a�� �a��
(�e�U(�e
(�a��(��
(�i��
(�a����
 �e�m �e�m	�e�m ��
 �i�� �i��
 �a�� �a�� ��
 �i�� �i��
(�e�m(��
(�i��
(�a��(��
(�i�����m �m �m�m     ��
 �i�� �i�� ��
 �i�� �i��(�m(((��
(�i��(��
(�i���� �e	 �e�e ��
 �i�� �i�� ��
 �i�� �i��(�e(��
(�i��(��
(�i���������� ��
 �i�� �i��(��
(�i���q �q   I E �u�u�u�u �u�u�u�y �y �ym�� �� �} �}�}(��(�}������ 
 
 �� ��(
(�� �e	 �e �e
	 �e
�����P�e�e
(�e(�e
 �P �P �� �� ���P��(�P(�� �� ��
 ���� ����  ��	����(��
(����(  �� ��
 ���� �� ��	 9��
 9�� ��9��(��	(9��m�����E�U�m���E �� (	 �y�y�h �h �h(�h�l �l �� �� �� ��  ���)�H �H�)    �)(�)
�5�D��     �)  ��y y  �� ��  ((�p  �X �X�X(�X
i@��@@�@
�T����
�5�L �� �T �� �` �P �� ���P�� �P �P �L�P �\ �\(�T(��(�\�\�` 	 ���� ���P(�P3@ �p �p �� ��(�p x xx(x �5�� �5�� ����
�5��(�5�� ��	 ����(��m

m�� ��	 ���� ��(��(�� ���� �������� �� �� ��	 )�� �� �� �� ��(��	()��(��(���� �� ��(��9��������@�u@
���	�
 �
�� � �(� �	 �	�	(�	 ��
�9�����(��	�9��� � �
 �9�� �9�� �! 9 � 9(�
(�9��(�! �%�) �) �y(�y	 �-�- �m�� �� ���� �� ��(��(���\ �\ �\(�\ �1 �1 �5�1(�1 �9 �9 ��(�9�=�9	 �A�)�E�I �M
 �9�M �Q(�M �U�M�Y�]mm�a�H�e�i�m���q�u�X�y
�q��
 �}
���� �y

 ���y
�� �� �) �)
 ���`	���` �`
(���`�`�1 �� �� �� �� ���d����(��(��
 �M��
 �M��
 �M��
(�M��
(�M��
(�M��
 �]��	�]�� ��
(�]���� �e
	 �e
�e
(�e
)��	 )��	()�� �� ����(��)��)���)��)	)��)��)��
��)�� )�� �� ��	 )��	���� �������� �� �� ����(���)��	���� �E �E(�E�����) �) �� �] �� �� �t �� �X �\ �l �� �(�](��(��(�t(��(�X(�\(�l(��(��� �� �e�� �l ��
 ���� ���� �� ��	 ����
 ����
(�������� �� �� ����(���� �� �� �� ����(�� �� �� �m(��(�m � ��(�(�����	�e��
 �e�� �e��
(�e���U�e�e������������
)���� �� �� y y�� y y(y� ��U	� � ��	 ����  � �(���  � �(����  � �	 ��(��  �a(�a��mmm ������ �� ���	��	 �� �� �
��(���� � ��! � �%(� � �� ��
�5���5���9 �)  �]���� �] ������)� ������ �
 ���� �T �] �- �1   �� �5�9�=�A(�� ���]�������E�|�I�M �Q �Q �E�� m�U�Y�Q(�Q(�E9�0�] �a �e �i �m�	 �� ���q�u�| �y �} ������ ��	 �x�| �� ����(�� ������ ��
 ������ �� ���� �� �� �� ����������(��(���$ �� �� �� �� �� ���� �� �� �� �� �y �� ������ �) �%���E �m�A ��	 ���� ��
 ���� �� �� ���A�� ������ �����-���-�-���- ���� ��	 �9�9 	�M�)�M�) �M�)�M�) �U�e 
�e �u ��  ���e	�e	�e�� ���� ���� ��
������	����#PresentationBuildTasks4.0.0.0 ������ ����
�����)��  �� �����A�������� �� �u���A�)	�� �	�!��5   ��
�e�%�e�%�%�%�e�)�e�)�)�)�e�-�e�-�-�-)	 �5�5
�5) �U�U�U�U�U�U�U

)p	�5�5�Mp�E�9p�5�A�����E�9p�A����)�=�m�M�=�E�9�=�A�=�����I�A�A�����5��A �A)t�Mt�E�E�9t�A��������E�E�9t�A������
 �M�Up�Yp�U���]�Up�Y�]�Up��
�]�Up)�M
p��
�Yp�U!�M�]�M�Y
p�U�Y�]�Up���M�M�Y
�]�Up��
���M��	 �e�e���Mp�ep�M�=�e�=�m�m�m�m�m,�9�����mp�=�e���ep�e�=	)�Q)�Q�5�Q)�Q)���Q�5�Q ���5��	�Y���M�M�Y
������5���E)���A�����5�Q�M! �Q�M! �i �Y0�]
��
��
��
��
��
��
��
��
��
��
��3T
NamespaceNameNorthwindModelTNameCategoryTIsReference�� ��0�a
0�a'TEntityKeyPropertyT
IsNullable'TEntityKeyPropertyT
IsNullable'TEntityKeyPropertyT
IsNullable 3NorthwindModelFK_Products_CategoriesProducts3T
NamespaceNameNorthwindModelTNameCustomer��.NorthwindModelFK_Orders_CustomersOrders=NorthwindModelCustomerCustomerDemoCustomerDemographics>T
NamespaceNameNorthwindModelTNameCustomerDemographic��2NorthwindModelCustomerCustomerDemo	Customers3T
NamespaceNameNorthwindModelTNameEmployee���e�U�e�U�e�e0�i�i��
0�i5NorthwindModelFK_Employees_Employees
Employees14NorthwindModelFK_Employees_Employees	Employees.NorthwindModelFK_Orders_EmployeesOrders3NorthwindModelEmployeeTerritoriesTerritories0T
NamespaceNameNorthwindModelTNameOrder���e�m�e�m�i���i��1NorthwindModelFK_Orders_Customers	Customers1NorthwindModelFK_Orders_Employees	Employees9NorthwindModelFK_Order_Details_Orders
Order_Details/NorthwindModelFK_Orders_ShippersShippers8T
NamespaceNameNorthwindModelTName
Order_Details���m�m�i���i��2NorthwindModelFK_Order_Details_OrdersOrders6NorthwindModelFK_Order_Details_ProductsProducts2T
NamespaceNameNorthwindModelTNameProduct���e�e�i���i��5NorthwindModelFK_Products_Categories
Categories;NorthwindModelFK_Order_Details_Products
Order_Details3NorthwindModelFK_Products_Suppliers	Suppliers1T
NamespaceNameNorthwindModelTNameRegion��5NorthwindModelFK_Territories_RegionTerritories2T
NamespaceNameNorthwindModelTNameShipper��-NorthwindModelFK_Orders_ShippersOrders3T
NamespaceNameNorthwindModelTNameSupplier��2NorthwindModelFK_Products_SuppliersProducts4T
NamespaceNameNorthwindModelTName	Territory���i��0NorthwindModelFK_Territories_RegionRegion1NorthwindModelEmployeeTerritories	Employees�A�A�A
�q�q�q�q ���-	�U���U ����	 9������ �� �����������)�)�� �� ����  ��
�M��
��9������
 �������� �������� 
�� �U
�U ��	 ���) �� �� ��������
 ���)
0
��

 ����

�h � ���	��
���A � ��D	�5�D���)
�D�U y�@�)
 �)�X	�5�L
 �u�A�����P�e�P
�P�e�P �P�����h�h�`�e�e�� m�1mm�P
���e �9 �� �A �E�)�M�) �M�e
 ���P���=�I�e �P �P�L �Q��
 



 �Y�]�U
�U �a �e  �m	���9
 )�5)�5	 �� ���q	 )�u)�u�}
 ���M
����	�5����	 �)�� �� m �� m ����


�����)�)	����
�� 
 �)
�)9����������



�A�) ���� �)���
���A�)�)���

�
�
�
�
��	 ��A�����a�Y�a���Y�a��
�a��9������	 9	9��
�

�9��
��
��9�Y9
��9 ���Y����������)�� ���M���e����
���e�� �%�m	�m�m���m�y �-dbo.SCIssuesDemo�5 �� ��	m�)m	)�� �I ���� ��m
��
���I�� �� �����E���Q���Q��4/ModuleResources/PrintMasterDetailViewModel.(cs)$Controls/DemoModuleControl.(cs)Controls/Converters.(cs) �� �i �.)ModuleResources/SharedResources(.SL).xaml94ModuleResources/EmbeddedTableViewTemplates(.SL).xaml$Controls/MasterDetailItems.(cs).)ModuleResources/SearchPanelViewModel.(cs),'ModuleResources/SearchPanelClasses.(cs)3.ModuleResources/SearchPanelTemplates(.SL).xaml/*ModuleResources/MasterDetailViewModel.(cs);6Controls/ControlStyles/MasterDetailTemplates(.SL).xaml'"Controls/NWindModel1.Designer.(cs)
�������
50ModuleResources/RealtimeDataSourceViewModel.(cs)3.ModuleResources/RealtimeDataSourceClasses.(cs) � �y �u���A
��� 

�U�)�q�q�!
	 �!
&System.Data.Services.Design1.0.0	�Y�) �Y�)	�Y�) �Y�) �) � �)0��
�`SCIssuesDemoOid�`)���Y)��)�e�����e���������e���e�����e��	���)
��
��
���=
��IT
NamespaceNameDXGridServerModeDBModelTNameEFServerModeTestClass���e
�e
�e�e)�����A����)�����A������)���m
�����A�������5�������5��)�� �U�)
.)��))��)�����������U 
 ))��

�����������������I  �) �� �� .)���������������5�U�M�9
Storyboard �Ymm	]��]  �i���m �q�a�a�a	Countries� �%�y� 
	 ���� �����5������
�M
�)�) ��  �� ����a   ���I�������I�� �� m	 ����	���� �a ���� �� �� ���y
���� ����

�=���a���i�� ���e��	�I�� �� �� 
 �9�a�9�a
 �9���9�� ��
��)�� ��	 9����
 �9���9�� �i � �5 �
 ��� �������� �� �� �� ����� �� ��a�=�e�eTNameDXGridServerModeDB
0��%TNamedbo.WpfServerSideGridTest�e�U	�U�U�e�U�e�U�e
�e
�e
�e�e
�������� �̀�TStorage_OIDTUvSystem.Data.Linq.Mapping.AutoSync, System.Data.Linq, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089AutoSyncTDbTypeInt NOT NULL IDENTITYTIsPrimaryKeyT
IsDbGenerated.TStorage_SubjectTDbType
NVarChar(100)9TName[From]TStorage_FromTDbType
NVarChar(100)&TStorage_SentTDbTypeDateTime$TStorage_SizeTDbTypeBigInt*TStorage_HasAttachmentTDbTypeBit�����������e�e�e�e
�e
�e���e���e���� yy9������������������

���e�e
��	���������e�e�e
)��
)���� �� �5�a�a	Item
����U
�
� ���50ModuleResources/AutoFilterRowTemplates(.SL).xaml.)ModuleResources/AutoFilterRowClasses.(cs)�E
���=�=.)ModuleResources/CardTemplatesClasses.(cs)50ModuleResources/CardTemplatesResources(.SL).xaml �)
 ���I �M	 ���Q �U�	 �� M0+ModuleResources/CardViewTemplates(.SL).xaml �e �i�]�]� 	���q �a
�M�a�e�a �u ������ �� �-�a���y�e�a �� �� ��	��	
)��		��	�M�a����	
 ��')��	�$��	��	��	��   �� ��.)ModuleResources/ColumnChooserClasses.(cs) ��-(ModuleResources/BindingToXMLClasses.(cs)�% ���%��72ModuleResources/BindingToDynamicObjectClasses.(cs)������ �m
�a�a �m �1�a�e�a ��*%Controls/CollectionViewNavigator.xaml/*Controls/CollectionViewNavigator.xaml.(cs)1,ModuleResources/CollectionViewViewModel.(cs)"Controls/SalesByYearData.(cs):5ModuleResources/GroupSummariesAlignmentViewModel.(cs) ����y�a�y��������1,ModuleResources/MultiViewTemplates(.SL).xaml50ModuleResources/MultiViewViewTemplates(.SL).xaml*%ModuleResources/MultiViewClasses.(cs),'ModuleResources/MultiViewViewModel.(cs)1,ModuleResources/CopyPasteTemplates(.SL).xaml*%ModuleResources/CopyPasteClasses.(cs)����)�)	�5�������5���9)���� ����	 �M ���5)�5������-������ U���-
�-�-�-�� �Q �� ��0+ModuleResources/DragDropTemplates(.SL).xaml+&ModuleResources/DragDropViewModel.(cs)94ModuleResources/InplaceLookUpEditResources(.SL).xaml2-ModuleResources/InplaceLookUpEditClasses.(cs) �m�Y>9ModuleResources/LinqToEntityServerModeTemplates(.SL).xaml.)Controls/EFServerModeModel1.Designer.(cs)�=�|���M �� ���� �� ���| � ��2-ModuleResources/LookUpEditTemplates(.SL).xaml
 ���m����m�m �A�� �������������A����]���e�A ��50Controls/ControlStyles/NameTextControl(.SL).xaml/*ModuleResources/HitTestTemplates(.SL).xaml(#ModuleResources/HitTestClasses.(cs)9�0m�� �1
 ���m���m
 ��) � �
	���a�a�a�a�a�a�a�a �]� ����0 �a��	�]
�m �� �%m �)m �0	�Y�0
�0�M�0�(�]� �13.Descriptions/MultiEditorDescriptions(.SL).xaml4/ModuleResources/MultiEditorsTemplates(.SL).xaml-(ModuleResources/MultiEditorsClasses.(cs) �5�xy�a�a�����p���e���,
 �e�9�e�9 �=���I�A�A�A�A�A�e�9 �M �Q�Y�] �a
�Q]�U] �i �m �q4/Controls/MiltiSelectionOptionsControl.xaml.(cs)4/Controls/MiltiSelectionOptionsControl(.SL).xaml/*ModuleResources/MultiSelectionClasses.(cs)61ModuleResources/MultiSelectionTemplates(.SL).xaml
�A�e�9
)���� ������������ � �u72ModuleResources/PLinqInstantFeedbackViewModel.(cs)50ModuleResources/PLinqInstantFeedbackClasses.(cs)<7ModuleResources/PLinqInstantFeedbackTemplates(.SL).xaml% Controls/OrderDataGenerator.(cs)�� �a �yK�A�A�A�A�A�A�A�A�e�9�9�e�e�e�e�e�e�9���m�m�e�������e�� �} ��83ModuleResources/MultipleGroupingTemplates(.SL).xaml1,ModuleResources/MultipleGroupingClasses.(cs) �a �� ��,'ModuleResources/RoutedEventsHelper.(cs)4/ModuleResources/FixedColumnsTemplates(.SL).xaml��������mm��61ModuleResources/InplaceEditorsTemplates(.SL).xaml�= �� �� �-
�� �� �� ���� ����� �� �� ��61ModuleResources/CurrentDataRowTemplates(.SL).xaml:5ModuleResources/CustomEditTemplateResources(.SL).xaml.)ModuleResources/DataErrorInfoClasses.(cs))�	)�/*ModuleResources/GroupIntervalsClasses.(cs) ������ �� ���a�e�a��


 ��
�A�A�e�9�� �� �����0 �� ��'"Controls/OutlookDataGenerator.(cs)-(ModuleResources/LargeDataSetClasses.(cs)���a ����y�a���]���� ���=�}�}	) ��)$ModuleResources/LiveDataClasses.(cs)0+ModuleResources/LiveDataTemplates(.SL).xaml4/ModuleResources/PrintOptionsTemplates(.SL).xaml61ModuleResources/PrintTemplatesResources(.SL).xaml<7ModuleResources/ExpandCollapseGroupsTemplates(.SL).xaml50ModuleResources/ExpandCollapseGroupsClasses.(cs)0+Controls/SQLConnectionWindow(.SL).xaml.(cs)/*Controls/DataGridTestClasses.designer.(cs)61ModuleResources/LinqServerModeTemplates(.SL).xaml����1,ModuleResources/FilteringTemplates(.SL).xaml*%ModuleResources/FilteringClasses.(cs) ��
 �U�� �,'ModuleResources/RowTemplateClasses.(cs)3.ModuleResources/RowTemplateTemplates(.SL).xaml/*ModuleResources/GroupSummaryViewModel.(cs)-(ModuleResources/GroupSummaryClasses.(cs)4/ModuleResources/GroupSummaryTemplates(.SL).xaml.)ModuleResources/SerializationClasses.(cs))��)����) ������
 ������4/ModuleResources/TreeListViewTemplates(.SL).xaml-(ModuleResources/TreeListViewClasses.(cs)+&ModuleResources/ValidationClasses.(cs)�m�-�������- �� �� ��;6ModuleResources/VerticalScrollingOptionsViewModel.(cs)@;ModuleResources/VerticalScrollingOptionsTemplates(.SL).xaml50ModuleResources/WcfInstantFeedbackViewModel.(cs):5ModuleResources/WcfInstantFeedbackTemplates(.SL).xaml3.ModuleResources/HyperLinkAttachedBehavior.(cs)�,:5ModuleResources/XPOInstantFeedbackTemplates(.SL).xaml3.ModuleResources/XPOInstantFeedbackClasses.(cs)���� ���� ���� ���5��
���@3System.Resources.Tools.StronglyTypedResourceBuilder2.0.0.0 ���61ModuleResources/UnboundColumnsTemplates(.SL).xaml/*ModuleResources/UnboundColumnsClasses.(cs):5ModuleResources/PersistentRowStateTemplates(.SL).xaml3.ModuleResources/PersistentRowStateClasses.(cs)�)���������������� �]�]�]�e).NETFramework,Version=v4.0,Profile=ClientTFrameworkDisplayName.NET Framework 4 Client Profile4/devexpress.build.xamlresourceprocessing.targets-(controls/datagridtestclasses.dbml.layout&!controls/datagridtestclasses.dbml-(dll/wpf/system.windows.interactivity.dll(#DevExpress DXGrid for WPF Main DemoDevExpress DXGrid for WPFDeveloper Express Inc.3.Copyright (c) 2000-2013 Developer Express Inc.DXGrid
13.1.4.0|NorthwindModelFK_Products_Categories
CategoriesGridDemo.Controls.CategoryProductsGridDemo.Controls.ProducttNorthwindModelFK_Orders_Customers	CustomersGridDemo.Controls.CustomerOrdersGridDemo.Controls.Order~NorthwindModelFK_Employees_Employees	EmployeesGridDemo.Controls.Employee
Employees1GridDemo.Controls.EmployeetNorthwindModelFK_Orders_Employees	EmployeesGridDemo.Controls.EmployeeOrdersGridDemo.Controls.Order��NorthwindModelFK_Order_Details_OrdersOrdersGridDemo.Controls.Order
Order_DetailsGridDemo.Controls.Order_Details��NorthwindModelFK_Order_Details_ProductsProductsGridDemo.Controls.Product
Order_DetailsGridDemo.Controls.Order_DetailsqNorthwindModelFK_Orders_ShippersShippersGridDemo.Controls.ShipperOrdersGridDemo.Controls.OrderzNorthwindModelFK_Products_Suppliers	SuppliersGridDemo.Controls.SupplierProductsGridDemo.Controls.ProductzNorthwindModelFK_Territories_RegionRegionGridDemo.Controls.RegionTerritoriesGridDemo.Controls.Territory��NorthwindModelCustomerCustomerDemoCustomerDemographics%GridDemo.Controls.CustomerDemographic	CustomersGridDemo.Controls.Customer|NorthwindModelEmployeeTerritories	EmployeesGridDemo.Controls.EmployeeTerritoriesGridDemo.Controls.TerritoryTWrapNonExceptionThrows�E�Q�"��!RSDS1<���p�L�"[$)���c:\Projects\13.1\BuildLabel\Temp\NetStudio.v13.1.2005\WpfGridDemo\GridDemo\obj.Wpf\Release\GridDemo.pdb�"�" �"_CorExeMainmscoree.dll�% @0�X�p�������������0@P`p��%"�%�K"�8\"h�`"0�!"X�`"�X4VS_VERSION_INFO��

?DVarFileInfo$Translation��StringFileInfo�000004b0`$CommentsDevExpress DXGrid for WPF Main DemoPCompanyNameDeveloper Express Inc.p$FileDescriptionDevExpress DXGrid for WPF Main Demo4	FileVersion13.1.4.0<
InternalNameGridDemo.exe�/LegalCopyrightCopyright (c) 2000-2013 Developer Express Inc.\LegalTrademarksDevExpress DXGrid for WPFD
OriginalFilenameGridDemo.exeTProductNameDevExpress DXGrid for WPF8	ProductVersion13.1.4.0<	Assembly Version13.1.4.0(0` ��������������������������	�

��
������������ �!! �##"�$$#*��������������������������	�	
	��
�

������������!! �""!�$$#�&&%�''&*��������������������������	�	
	�

�
�

������������  �""!�#$#�%%$�''&�(('���������������������������	
	�

��

������������  �!"!�##"�%%$�''&�(('�**)��������������������������	�

��

������������ �!! �##"�$%$�&&%�(('�**)�++*�������������������������	�

��
�������������!! �"#"�$$#�&&%�''&�))(�++*�--,���������������������������	�	
	��
�

������������ ! �""!�$$#�%%$�''&�))(�++*�,,+�..-�����565���������������������	�	
	�

�
�

������������  �""!�##"�%%$�''&�(('�**)�,,+�.-,�//.����������������������������	
	�

��

������������  �!! �##"�%%$�&&%�(('�**)�++*�--,�//.�10/�������������������������������	�

��
������������ �!! �##"�$$#�&&%�(('�))(�++*�--,�..-�00/�221���������������������������������	�	
	��
�

������������!! �""!�$$#�&&%�''&�))(�++*�,,+�..-�00/�210�332�����������������������������������	�	
	�

�
�

������������  �""!�#$#�%%$�''&�(('�**)�,,+�..-�//.�110�332�543���������������������ddd��������������	
	�

��

������������  �!"!�##"�%%$�''&�(('�**)�,,+�--,�//.�110�321�443�665�������������������������ddd������������	�

��

������������ �!! �##"�$%$�&&%�(('�**)�++*�--,�/.-�10/�221�443�654�776�����������������������������ddd����������	�

��
�������������!! �"#"�$$#�&&%�''&�))(�++*�--,�..-�00/�221�432�554�776�987���������������������������������ddd��������	�	
	��
�

������������ ! �""!�$$#�%%$�''&�))(�++*�,,+�..-�0/.�110�332�554�765�887�::9����������������������������������������������	�	
	�

�
�

������������  �""!�##"�%%$�''&�(('�**)�,,+�.-,�//.�110�321�443�665�887�:98�;;:�������������������������������������������������	
	�

��

������������  �!! �##"�%%$�&&%�(('�**)�++*�--,�//.�10/�221�443�665�876�998�;;:�=<;���������������������������������������������������	�

��
������������ �!! �##"�$$#�&&%�(('�))(�++*�--,�..-�00/�221�432�554�776�998�;:9�=<;�>>=����������������������������������������������������676�	
	��
�

������������!! �""!�$$#�&&%�''&�))(�++*�,,+�..-�00/�210�332�554�765�987�::9�<<;�>=<�@?>�~�����������������������������������������������������fgf�
�

������������  �""!�#$#�%%$�''&�(('�**)�,,+�..-�//.�110�332�543�765�887�::9�<;:�>=<�??>�A@?�0N�}���������������������������������������������������������������������  �!"!�##"�%%$�''&�(('�**)�,,+�--,�//.�110�321�443�665�876�:98�;;:�==<�?>=�A@?�BBA�/N�/O�c|�����������������������������������������������������>?>��������� �!! �##"�$%$�&&%�(('�**)�++*�--,�/.-�10/�221�443�654�776�998�;:9�=<;�>>=�@@?�BA@�DCB�/N�/P�/Q�Us������������������������������������������������������������������!! �"#"�$$#�&&%�''&�))(�++*�--,�..-�00/�221�432�554�776�987�::9�<<;�>=<�@?>�BA@�CCB�EED�/O�/P�/Q�.R�;^���������������������������������������������������������RSR����� ! �""!�$$#�%%$�''&�))(�++*�,,+�..-�0/.�110�332�554�765�887�::9�<;:�>=<�??>�AA@�CBA�EDC�GFE�/O�/P�.Q�.R�.S�-U���������������������������������������������������������������++*��  �""!�##"�%%$�''&�(('�**)�,,+�.-,�//.�110�321�443�665�887�:98�;;:�==<�??>�A@?�CBA�EDC�FFE�HGF�/P�/Q�.R�.S�.T�-U�-V�b�������������������������������������������������������������//.�##"�%%$�&&%�(('�**)�++*�--,�//.�10/�221�443�665�876�998�;;:�=<;�?>=�A@?�BBA�DCB�FED�HGF�JIH�/P�/Q�.R�.S�.T�-U�-V�-W�9c��������������������������������������������������������������vvv�&&%�(('�))(�++*�--,�..-�00/�221�432�554�776�998�;:9�=<;�>>=�@@?�BA@�DCB�FED�GFE�IHG�KJI�/P�.Q�.R�.S�-U�-V�-W�,X�,Y�,Z�`���������������������������������������������������������������zzy�887�,,+�..-�00/�210�332�554�765�987�::9�<<;�>=<�@?>�BA@�CCB�EDC�GFE�IHG�JJI�LKJ�/Q�.R�.S�.T�-U�-V�-W�,X�,Y�,Z�+[�+\������������������������������������������������������������������<<;�110�332�543�765�887�::9�<;:�>=<�??>�A@?�CBA�EDC�FFE�HGF�JIH�LKJ�NML�/Q�.R�.S�.T�-U�-V�-W�,Y�,Z�,[�+\�+]�+^�Es����������������������������������������������������������������������ggf�665�876�:98�;;:�==<�?>=�A@?�BBA�DCB�FED�HGF�JIH�KKJ�MLK�ONM�.Q�.R�.S�-U�-V�-W�,X�,Y�,Z�+[�+\�+]�*^�*_�*`�Du��������������������������������������������������������������������������TSR�=<;�>>=�@@?�BA@�DCB�FED�GGF�IIH�KJI�MLK�ONM�QPO�.R�.S�.T�-U�-V�-W�,X�,Y�,Z�+[�+\�+]�*_�*`�*a�)b�)c�_�����������������������������������������������������������������������������ZYX�CCB�EED�GFE�IHG�KJI�MLK�NML�PON�RQP�.R�.S�.T�-U�-V�-W�,X�,Z�,[�+\�+]�+^�*_�*`�*a�)b�)c�)d�(e�Cy����������������������������������������������������������������������������������UUT�LKJ�NML�PON�RQP�SRQ�.R�.S�-U�-V�-W�,X�,Y�,Z�+[�+\�+]�*^�*_�*`�)a�)b�)d�(e�(f�(g�'h�5r��������������������������������������������������������������������������������������������ihg�UTS�.S�.T�-U�-V�-W�,X�,Y�,Z�+[�+\�+]�*_�*`�*a�)b�)c�)d�(e�(f�(g�'h�'i�'j�&k�\����������������������������������������������������������������������������������������.S�.T�-U�-V�-W�,X�,Z�,[�+\�+]�+^�*_�*`�*a�)b�)c�)d�(e�(f�(g�'h�'j�'k�&l�&m�&n�%o�i�����������������������������������������������������������������������������.S�-U�-V�-W�,X�,Y�,Z�+[�+\�+]�*^�*_�*`�)a�)b�)d�(e�(f�(g�'h�'i�'j�'k�&l�&m�&n�%o�%p�%q�$r�i������������������������������������������������������������������.T�-U�-V�-W�,X�,Y�,Z�+[�+\�+]�*_�*`�*a�)b�)c�)d�(e�(f�(g�'h�'i�'j�&k�&l�&m�%n�%o�%q�$r�$s�$t�#u�#v�?��v��������������������������������������������������.T�-U�-V�-W�,X�,Z�,[�+\�+]�+^�*_�*`�*a�)b�)c�)d�(e�(f�(g�'h�'j�'k�&l�&m�&n�%o�%p�%q�$r�$s�$t�#u�#v�#w�"x�"y�"z�/��Y������������������������������������-U�-V�-W�,X�,Y�,Z�+[�+\�+]�*^�*_�*`�)a�)b�)c�(e�(f�(g�'h�'i�'j�'k�&l�&m�&n�%o�%p�%q�$r�$s�$t�#u�#v�#w�"x�"z�"{�!|�!}�!~� � � ��<���X��������������-U�-V�-W�,X�,Y�,Z�+[�+\�+]�*_�*`�*a�)b�)c�)d�(e�(f�(g�'h�'i�'j�&k�&l�&m�%n�%o�%q�$r�$s�$t�#u�#v�#w�#x�"y�"z�"{�!|�!}�!~� � �� �� �� �� �� �� ��-U�-V�-W�,X�,Z�,[�+\�+]�+^�*_�*`�*a�)b�)c�)d�(e�(f�(g�'h�'i�'k�&l�&m�&n�%o�%p�%q�$r�$s�$t�#u�#v�#w�"x�"y�"z�!{�!|�!}�!~� � �� �� �� �� �� �� ��-V�-W�,X�,Y�,Z�+[�+\�+]�*^�*_�*`�)a�)b�)c�(e�(f�(g�'h�'i�'j�'k�&l�&m�&n�%o�%p�%q�$r�$s�$t�#u�#v�#w�"x�"y�"{�!|�!}�!~� � � �� �� �� �� �� �� ��-V��-W�,X�,Y�,Z�+[�+\�+]�*_�*`�*a�)b�)c�)d�(e�(f�(g�'h�'i�'j�&k�&l�&m�%n�%o�%q�$r�$s�$t�$u�#v�#w�#x�"y�"z�"{�!|�!}�!~� � �� �� �� �� �� �� �� ���-VЫ-W�,X�,Z�,[�+\�+]�+^�*_�*`�*a�)b�)c�)d�(e�(f�(g�'h�'i�'k�&l�&m�&n�%o�%p�%q�$r�$s�$t�#u�#v�#w�"x�"y�"z�!{�!|�!}�!~� � �� �� �� �� �� �� �� ��-W�',X��,Y�,Z�+[�+\�+]�*^�*_�*`�)a�)b�)c�(e�(f�(g�(h�'i�'j�'k�&l�&m�&n�%o�%p�%q�$r�$s�$t�#u�#v�#w�"x�"y�"z�!|�!}�!~� � � �� �� �� �� �� �� ��� ��*,X�,YӨ,Z��+[�+\�+]�*^�*`�*a�)b�)c�)d�(e�(f�(g�'h�'i�'j�&k�&l�&m�%n�%o�%p�$r�$s�$t�$u�#v�#w�#x�"y�"z�"{�!|�!}�!~� � �� �� �� �� �� ��� �� ����( @ H�����������������	�

�
���������!! �##"�&&%H������������������	
	��

�������� ! �##"�%%$�(('������������������	
	��

��������  �""!�%%$�''&�**)�����������������	�

�
���������""!�$$#�''&�))(�,,+�TUT���������������	�

�
���������!! �$$#�&&%�))(�++*�..-����565��������������	
	��
��������!! �##"�&&%�(('�++*�--,�00/��������������������	
	��

��������  �"#"�%%$�''&�**)�--,�//.�221�������������������	�

�
��������  �""!�$%$�''&�**)�,,+�/.-�110�443����������������������	�

�
���������!"!�$$#�&&%�))(�,,+�..-�10/�332�665������������������������	�

�
���������!! �##"�&&%�(('�++*�.-,�00/�321�554�887���������������������������	
	��

�������� ! �##"�%%$�(('�**)�--,�0/.�221�554�776�::9����������������������������	
	��

��������  �""!�%%$�''&�**)�,,+�//.�210�443�765�998�<<;�����������������������������%&%�	�

�
���������""!�$$#�''&�))(�,,+�..-�110�432�665�987�;;:�>>=����������������������������������WXW�
���������!! �$$#�&&%�))(�++*�..-�00/�332�654�887�;:9�>=<�@@?�/N����������������������������������������������!! �##"�&&%�(('�++*�--,�00/�221�554�876�::9�=<;�@?>�BBA�/O�/P��������������������������������������@@?�����  �"#"�%%$�''&�**)�--,�//.�221�543�776�:98�<<;�??>�BA@�EDC�/O�/Q�.R�p���������������������������������������))(�� �""!�$%$�''&�**)�,,+�/.-�110�443�765�998�<;:�?>=�AA@�DCB�GFE�/P�.Q�.S�-U�Gk�������������������������������������sss�!"!�$$#�&&%�))(�,,+�..-�10/�332�665�987�;;:�>=<�A@?�CCB�FED�IHG�/P�.R�.S�-U�-W�,X����������������������������������������\\\�(('�++*�.-,�00/�321�554�887�;:9�==<�@?>�CBA�EED�HGF�KJI�/Q�.R�.T�-V�-W�,Y�,Z�Fp�����������������������������������������||{�0/.�221�554�776�::9�=<;�??>�BA@�EDC�GGF�JIH�MLK�.Q�.S�-U�-V�,X�,Y�+[�+]�*^�_�����������������������������������������������PON�998�<<;�?>=�BA@�DCB�GFE�JIH�LKJ�ONM�.R�.S�-U�-W�,X�,Z�+[�+]�*_�*`�)b�z���������������������������������������������������YXW�DCB�FED�IHG�LKJ�NML�QPO�.R�.T�-V�-W�,Y�,Z�+\�+^�*_�*a�)b�)d�(f�^�������������������������������������������������������xww�NML�QPO�SRQ�.S�-T�-V�,X�,Y�+[�+]�*^�*`�)a�)c�(e�(f�(h�'i�B~������������������������������������������������������������.S�-U�-W�,X�,Z�+[�+]�*_�*`�)b�)c�(e�(g�'h�'j�&k�&m�%o�N���������������������������������������������������.T�-V�-W�,Y�,Z�+\�+^�*_�*a�)b�)d�(f�(g�'i�'j�&l�&n�%o�%q�$r�$t�?��v����������������������������������-T�-V�,X�,Y�+[�+]�*^�*`�)a�)c�(e�(f�(h�'i�'k�&l�&n�%p�%q�$s�$t�#v�#w�"y�"z�/��Y������������������-U�-W�,X�,Z�+[�+]�*_�*`�)b�)c�(e�(g�'h�'j�&k�&m�%o�%p�$r�$s�#u�#v�#x�"y�"{�!|�!~� � �� �� �� ��-V�-W�,Y�,Z�+\�+^�*_�*a�)b�)d�(f�(g�'i�'j�&l�&n�%o�%q�$r�$t�#u�#w�"x�"z�!{�!}� ~� �� �� �� �� ��-V�,X�,Y�+[�+]�*^�*`�)a�)c�)e�(f�(h�'i�'k�&l�&n�%p�%q�$s�$t�#v�#w�"y�"z�!|�!}� � �� �� �� �� ��-W��,X�,Z�+[�+]�*_�*`�)b�)c�(e�(g�'h�'j�&k�&m�%o�%p�$r�$s�#u�#v�#x�"y�"{�!|�!~� � �� �� �� �� ���-W�;,Y��,Z�+\�+^�*_�*a�)b�)d�(f�(g�'i�'j�&l�&m�%o�%q�$r�$t�#u�#w�"x�"z�!{�!}� ~� �� �� �� �� ��� ��;(  ���������	
	�

����!! �%&%���������	�
���� �$$#�))(�CCC�������	�
�����##"�(('�--,�����565�����������""!�''&�,,+�110������������

�����!! �&&%�++*�00/�654����������565��	
	�

����  �%%$�**)�//.�443�:98��������������FGF�
�����$$#�))(�..-�332�887�>=<�;Y�����������������������##"�(('�--,�221�776�=<;�BA@�/P�;^������������������VVU�""!�''&�,,+�110�665�;;:�A@?�FED�.Q�-T�,X�a��������������������RRQ�0/.�554�::9�@?>�EDC�JJI�.R�-U�,Y�+\�*_�������������������������JJI�DCB�IHG�ONM�.S�-W�,Z�+]�*`�)c�(g�x����������������������������{zy�-T�,X�,[�+^�*a�)d�(h�'k�&n�@�������������������-U�,Y�+\�*_�)b�(e�'i�&l�%o�$r�#u�"x�!{�:��T���y���-V�,Z�+]�*`�)c�(f�'j�&m�%p�$s�#v�"y�!|� � �� ��-Xѽ,[�+^�*a�)d�(h�'k�&n�%q�$t�#w�"z�!}� �� �� ���A�A�A�A�A�A�A�A�A�A�A�A�A�A�A�A00 �%   � h<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
  <assemblyIdentity version="1.0.0.0" name="MyApplication.app"/>
  <trustInfo xmlns="urn:schemas-microsoft-com:asm.v2">
    <security>
      <requestedPrivileges xmlns="urn:schemas-microsoft-com:asm.v3">
        <requestedExecutionLevel level="asInvoker" uiAccess="false"/>
      </requestedPrivileges>
    </security>
  </trustInfo>
</assembly>
"3