You are on page 1of 9

c 


 

   

u  
             
 

Ê ¦   


Ê     
Ê u 
Ê   
Ê „         ! 
Ê ë" 
Ê ¦  # # 
Ê  ! 
Ê 0 $    

    

"   % DataGrid   " ItemsSource


 %&     
AutoGenerateColumns          
 %' "  

Ê (#(   


Ê „#(  
Ê „ #(    
Ê 0    ) 

Ê
ÊÊ
DataGridÊItemsSource="{BindingÊCustomers}"ÊÊ
ÊÊ
ÊÊ

      

¦       AutoGenerateColumns  
False'    Columns  *
"   

Ê DataGridCheckBoxColumn 
Ê DataGridComboBoxColumn   
Ê DataGridHyperlinkColumn ) 
Ê DataGridTemplateColumn"   " 
Ê DataGridTextColumn"(

Ê
Ê
Ê
Ê
Ê
ÊÊ
DataGridÊItemsSource="{BindingÊCustomers}"Ê
AutoGenerateColumns="False"ÊÊ
ÊÊÊÊ DataGrid.ColumnsÊ
ÊÊÊÊÊÊÊÊ DataGridTemplateColumnÊHeader="Image"Êidth="SizeToCells"Ê
IsReadOnly="True"Ê
ÊÊÊÊÊÊÊÊÊÊÊÊ DataGridTemplateColumn.CellTemplateÊ
ÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊ DataTemplateÊ
ÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊ ImageÊSource="{BindingÊImage}"ÊÊ
ÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊ DataTemplateÊ
ÊÊÊÊÊÊÊÊÊÊÊÊ DataGridTemplateColumn.CellTemplateÊ
ÊÊÊÊÊÊÊÊÊÊÊÊ DataGridTemplateColumnÊ
ÊÊÊÊ DataGrid.ColumnsÊ
DataGridÊ
ÊÊ
ÊÊ

u  

        


SelectionModeSelectionUnit  

Ê u   Single Extended      


 
Ê u      '
Cell CellAndRowHeaderFullRow

Ê
ÊÊ
DataGridÊItemsSource="{BindingÊCustomers}"ÊÊ
ÊÊÊÊÊÊÊÊÊÊSelectionMode="Extended"ÊSelectionUnit="Cell"ÊÊ
ÊÊ
ÊÊ

        

           !   


"    

Ê CanUserReorderColumns    +  


Ê CanUserResizeColumns     ! 
Ê CanUserResizeRows   "  ! 
Ê CanUserSortColumns     

Ê
ÊÊ
DataGridÊItemsSource="{BindingÊCustomers}"ÊÊ
ÊÊÊÊÊÊÊÊÊÊCanUserReorderColumns="True"ÊCanUserResizeColumns="True"ÊÊ
ÊÊÊÊÊÊÊÊÊÊCanUserResizeRows="False"ÊCanUserSortColumns="True"Ê
ÊÊ
ÊÊ

  

       CollectionView


 GroupDescription   " 

Ê
ÊÊ
CustomersÊ=Ê
ÊistCollectionView(_customers);Ê
Customers.GroupDescriptions.Add(
Ê
ropertyGroupDescription("Gender"));Ê
ÊÊ
ÊÊ

u     "  * 


 GroupStyle   "  

ÊÊ
DataGridÊItemsSource="{BindingÊGroupedCustomers}"Ê
ÊÊÊÊ DataGrid.GroupStyleÊ
ÊÊÊÊÊÊÊÊ GroupStyleÊ
ÊÊÊÊÊÊÊÊÊÊÊÊ GroupStyle.HeaderTemplateÊ
ÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊ DataTemplateÊ
ÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊ StackanelÊ
ÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊ TextBlockÊText="{BindingÊath=Name}"ÊÊ
ÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊ StackanelÊ
ÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊ DataTemplateÊ
ÊÊÊÊÊÊÊÊÊÊÊÊ GroupStyle.HeaderTemplateÊ
ÊÊÊÊÊÊÊÊÊÊÊÊ GroupStyle.ContainerStyleÊ
ÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊ StyleÊTargetType="{x:TypeÊGroupItem}"Ê
ÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊ SetterÊroperty="Template"Ê
ÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊ Setter.ValueÊ
ÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊ ControlTemplateÊTargetType="{x:TypeÊ
GroupItem}"Ê
ÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊ ExpanderÊ
ÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊ Expander.HeaderÊ
ÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊ StackanelÊ
Orientation="Horizontal"Ê
ÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊ TextBlockÊText="{BindingÊ
ath=Name}"ÊÊ
ÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊ TextBlockÊText="{BindingÊ
ath=ItemCount}"Ê
ÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊ TextBlockÊText="Items"Ê
ÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊ StackanelÊ
ÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊ Expander.HeaderÊ
ÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊ ItemsresenterÊÊ
ÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊ ExpanderÊ
ÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊ ControlTemplateÊ
ÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊ Setter.ValueÊ
ÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊ SetterÊ
ÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊ StyleÊ
ÊÊÊÊÊÊÊÊÊÊÊÊ GroupStyle.ContainerStyleÊ
ÊÊÊÊÊÊÊÊ GroupStyleÊ
ÊÊÊÊ DataGrid.GroupStyleÊ
DataGridÊ
ÊÊ
ÊÊ

ë  

    "   "' 


 RowDetailsTemplate   % 
  "„(  

Ê
ÊÊ
DataGridÊItemsSource="{BindingÊCustomers}"Ê
ÊÊÊÊ DataGrid.ColumnsÊ
ÊÊÊÊ DataGridTextColumnÊHeader="FirstÊName"ÊBinding="{BindingÊ
FirstName}"ÊÊ
ÊÊÊÊ DataGrid.ColumnsÊ
ÊÊÊÊ DataGrid.RowDetailsTemplateÊ
ÊÊÊÊÊÊÊÊ DataTemplateÊ
ÊÊÊÊÊÊÊÊÊÊÊÊ ImageÊHeight="100"ÊSource="{BindingÊImage}"ÊÊ
ÊÊÊÊÊÊÊÊ DataTemplateÊ
ÊÊÊÊ DataGrid.RowDetailsTemplateÊ
DataGridÊ
ÊÊ
ÊÊ
ë        

* RowDetailsTemplateSelector   


   "       DataTemplateSelector
 SelectTemplate 'items   
"   ë     

Ê
ÊÊ
˜ Ê ÊGenderTemplateSelectorÊ:ÊDataTemplateSelectorÊ

ÊÊÊʘ ÊDataTemplateÊMaleTemplateÊ{Êget;Êset;Ê}Ê
ÊÊÊʘ ÊDataTemplateÊFemaleTemplateÊ{Êget;Êset;Ê}Ê
ÊÊ
ÊÊÊʘ Ê  ÊDataTemplateÊSelectTemplate( Êitem,ÊÊ
ÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊDependencyObjectÊcontainer)Ê
ÊÊÊÊ{Ê
ÊÊÊÊÊÊÊÊarÊcustomerÊ=ÊitemÊ ÊCustomer;Ê
ÊÊÊÊÊÊÊÊÊ(customerÊ==Ê )Ê
ÊÊÊÊÊÊÊÊÊÊÊÊ  Ê .SelectTemplate(item,Êcontainer);Ê
ÊÊ
ÊÊÊÊÊÊÊÊ(Êcustomer.GenderÊ==ÊGender.Male)Ê
ÊÊÊÊÊÊÊÊ{Ê
ÊÊÊÊÊÊÊÊÊÊÊÊ  ÊMaleTemplate;Ê
ÊÊÊÊÊÊÊÊ}Ê
ÊÊÊÊÊÊÊÊ  ÊFemaleTemplate;Ê
ÊÊÊÊ}Ê

ÊÊ
ÊÊ


ÊÊ
l:GenderTemplateSelectorÊx:Key="genderTemplateSelector"Ê
ÊÊÊÊ l:GenderTemplateSelector.MaleTemplateÊ
ÊÊÊÊÊÊÊÊ DataTemplateÊ
ÊÊÊÊÊÊÊÊÊÊÊÊ GridÊBackground="ightBlue"Ê
ÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊ ImageÊSource="{BindingÊImage}"Êidth="50"ÊÊ
ÊÊÊÊÊÊÊÊÊÊÊÊ GridÊ
ÊÊÊÊÊÊÊÊ DataTemplateÊ
ÊÊÊÊ l:GenderTemplateSelector.MaleTemplateÊ
ÊÊÊÊ l:GenderTemplateSelector.FemaleTemplateÊ
ÊÊÊÊÊÊÊÊ DataTemplateÊ
ÊÊÊÊÊÊÊÊÊÊÊÊ GridÊBackground="Salmon"Ê
ÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊÊ ImageÊSource="{BindingÊImage}"Êidth="50"ÊÊ
ÊÊÊÊÊÊÊÊÊÊÊÊ GridÊ
ÊÊÊÊÊÊÊÊ DataTemplateÊ
ÊÊÊÊ l:GenderTemplateSelector.FemaleTemplateÊ
l:GenderTemplateSelectorÊ
ÊÊ
DataGridÊItemsSource="{BindingÊCustomers}"ÊÊ
ÊÊÊÊÊÊÊÊÊÊRowDetailsTemplateSelector="{StaticResourceÊ
genderTemplateSelector}"ÊÊ
ÊÊ
ÊÊ

     

* AlternatingRowBackground    "*  


 AlternationCount "   + "

Ê
ÊÊ
DataGridÊItemsSource="{BindingÊCustomers}"ÊÊ
ÊÊÊÊÊÊÊÊÊÊAlternatingRowBackground="Gainsboro"ÊÊAlternationCount="2"Ê
ÊÊ
ÊÊ
  
 

    !    " 


 !          ' 
 "     "   

 !   %FrozenColumnCount     


" !

Ê
ÊÊ
DataGridÊItemsSource="{BindingÊCustomers}"ÊFrozenColumnCount="2"ÊÊÊ
ÊÊ
ÊÊ

0   

*      "   HeadersVisibility  


  None Row Column All

Ê
ÊÊ
DataGridÊItemsSource="{BindingÊCustomers}"ÊHeadersVisibility="None"Ê
Ê
ÊÊ
ÊÊ


Ê

Related Interests