Tag Archives: WPF

WPF Databind to read-only DataGrid.SelectedItems property

Thanks a million to the reference below:

I have spent one day looking for a MVVM solution to bind to DataGrid.SelectedItems property. WPF does not allow this because DataGrid.SelectedItems is read-only. However, I need to get hold of all selected items when performing “delete” action, or just to decide if a right-click menu item should appear or not, and I CAN’T!!!

After a day’s Googling and trying out millions of not-straightforward-and-ultimately-not-working ways, I have found the article above, which consists of 3 simple classes that just work! I would really like to share this with others who are having this trouble.

Advertisements

WPF DataGrid tricks

  • Edit in upper case for a text column:
    <DataGridTextColumn Header="Fund" Binding="{Binding Fund}">
         <DataGridTextColumn.EditingElementStyle>
             <Style TargetType="TextBox">
                 <Setter Property="CharacterCasing" Value="Upper"/>
             </Style>
         </DataGridTextColumn.EditingElementStyle>
    </DataGridTextColumn>              
    
  • String.Empty in an array
    <x:Array>
     <system:String>string1</system:String>
     <x:Static Member="system:String.Empty" />
     <system:String>string2</system:String>
    </x:Array>
  • DataGridComboBoxColumn bindings
     <DataGridComboBoxColumn Header="FundShare"
     SelectedItemBinding="{Binding FundShare}"
     DisplayMemberPath="FundShareName"
     SortMemberPath="FundShare.FundShareName"
     ClipboardContentBinding="{Binding FundShare.FundShareName}"
     ItemsSource="{Binding Source={x:Static viewmodel:IFSFundMappingViewModel.FundShares}}">

References: