I'm currently trying to rewrite one of my applications with the xamDataGrid.Before that i used the WPFToolkit datagrid.
I need to bind with Styles in the code behind.
This does work:
CellStyle.Setters.Add(new Setter() { Property = CellValuePresenter.TagProperty, Value = new Binding("DataItem.[2008].Flag") } );
This doesn't work:
CellStyle.Setters.Add(new Setter() { Property = CellValuePresenter.IsSelectedProperty, Value = new Binding("DataItem.[2008].IsSelected") } );
It is basically the same operation, but for some reason the IsSelectedProperty doesn't execute the binding.
With WPFToolkit grid this still works and though i know that there are better ways to accomplish this task with the xamDataGrid, i would have to rewrite much of my coding.
Does anybody know what i can do, or what is different with the IsSelectedProperty??
ThxJohannes
If someone should ever need this, here is a more solid version of the workaroung:
#region mainGrid_SelectedItemsChanging //workaround!!! private void mainGrid_SelectedItemsChanging(object sender, Infragistics.Windows.DataPresenter.Events.SelectedItemsChangingEventArgs e) { //Unselect all previous selected DataPoints ManageDataPointSelection(mainGrid, mainGrid.SelectedItems, false); //Select all new Datapoints ManageDataPointSelection(mainGrid, e.NewSelection, true); } #endregion //mainGrid_SelectedItemsChanging #region ManageDataPointSelection /// <summary> /// Manages the selection of the DataPoints. /// </summary> /// <param name="grid">the grid</param> /// <param name="selectedItems">The collection of selectedItems of the grid</param> /// <param name="select">Determines wheter to select (true) or unselect (false) the dataPoints</param> public void ManageDataPointSelection(XamDataGrid grid, DataPresenterBase.SelectedItemHolder selectedItems, bool select) { Model.Indicator indicator = null; Model.DataPoint dataPoint = null; //SelectedCells if (selectedItems.Cells.Count > 0) { foreach (Cell cell in selectedItems.Cells) { indicator = (Model.Indicator)cell.Record.DataItem; dataPoint = (Model.DataPoint)indicator[cell.Field.Label.ToString()]; if (dataPoint != null) dataPoint.IsSelected = select; } } //SelectedRecords else if (selectedItems.Records.Count > 0) { foreach (DataRecord record in selectedItems.Records) { indicator = (Model.Indicator)record.DataItem; if (!select) indicator.clearSelectedDataPoints(); else { indicator.SelectDataPoints(); } } } //SelectedFields else if (selectedItems.Fields.Count > 0) { foreach (DataRecord record in grid.Records) { foreach (Field field in selectedItems.Fields) { indicator = (Model.Indicator)record.DataItem; dataPoint = (Model.DataPoint)indicator[field.Label.ToString()]; if (dataPoint != null) dataPoint.IsSelected = select; } } } } #endregion //ManageDataPointSelection
Hello,
Thank you for your feedback. I am glad that you resolved your issue and I believe that other community members may benefit from this as well.
Thanks again.
I have run into the same problem trying to bind to the IsSelected property. I find this kind of issue the most frustrating when dealing with Infragistics. That being said this work-around would perform much better if the SelectedItemsChanged event of the XamDataGrid returned similar information to the WPF DataGrid SelectionChanged event does. Specifically the AddedItems and the RemovedItems. This would be a nice enhancement.
Hello Eric,
After looking into this and doing some research, AddedItems and the RemovedItems Properties of the SelectionChangedEventArgs class has been determined to be a new product idea. You can suggest new product ideas for future versions (or vote for existing ones) at http://ideas.infragistics.com.
There are many benefits to submitting an product idea:
- Direct communication with our product management team regarding your product idea.
- Notifications whenever new information regarding your idea becomes available.
- Ability to vote on your favorite product ideas to let us know which ones are the most important to you. You will have ten votes for this and can change which ideas you are voting for at any time.
- Allow you to shape the future of our products by requesting new controls and products altogether.
- You and other developers can discuss existing product ideas with members of our Product Management team.
Steps to create your idea:
The Product Idea site puts you in the driver’s seat and allows you to track the progress of your ideas at any time, see how many votes it got, read comments from other developers in the community, and see if someone from the product team has additional questions for you.
Thank you for contacting Infragistics.
Thanks for the info. So do you think this will be available in the next version 13.2? According to the release dates that should be Nov 10, 2013.
Since the developing of version 13.2 is already done and now our QEs test it before releasing, this feature won't be available there.