Hi,
I need to create a XamDataGrid with configurable columns. But the first column on the left should always be displayed on the left and never be moved from there.
- I need to disable the possibility to drag and drop this column.
- I need to prevent some other columns to be draged and droped on the left of this column.
does any body has suggestions?
Thanks
Hello croesusdev,
It sounds like this can be done with column fixing. If you set the first column to be fixed, then it cannot be dragged, and other columns cannot be dragged to the left of it. It will also always be displayed.
Here is some documentation on fixing columns:
About Fixed Fields
Enable Fixed Fields
Fix Fields
You'd want to fix it to the "Near" edge, meaning the left side.
Let me know if you have any other questions about this.
Elizabeth AlbertLocalization Engineer
The functionnality of "fixed columns" available is not what I need. Has it is describe in your documentation :
"The xamDataPresenter™ control and the xamDataGrid™ control allow your end users to fix fields so they are not scrolled out of view."
But, at all time, the user can remove the column from the fixed section. He can drag an drop the column to the dragable section. I dont want the column not to be "scrolled out" I want it to stay on the "near" edge. I want to prevent the user to replace it from its position.
Example, the ExpansionIndicator or RecordSelector are always on the left. The user cannot put them in the midle. That's what I need.
Thanks.
That's correct.
Thank you for your help.
Hi Croesusdev,
As far I can see you are looking for a way to freeze specific (the firs column ) and the others can fixed and moved freely without taking the first position. Based on this requirements I have modified Elizabeth’s sample in order hold the first filed always on first position by changing the FieldPositionChanged and FieldPositionChanging:
private void xamDataGrid1_FieldPositionChanged(object sender, Infragistics.Windows.DataPresenter.Events.FieldPositionChangedEventArgs e) { //3 Other columns can be fixed. // ensure that the first filed name will be always on first place if (e.Field.ActualPosition.Column == 0) { xamDataGrid1.FieldLayouts[0].Fields["name"].ActualPosition = new Infragistics.Windows.DataPresenter.FieldPosition(0, 0, 1, 1); xamDataGrid1.FieldLayouts[0].EnsureUniqueFieldPositions(); } } private void xamDataGrid1_FieldPositionChanging(object sender, Infragistics.Windows.DataPresenter.Events.FieldPositionChangingEventArgs e) { //1 One particular column (let's call it A) must always remain the left-most column. //2 Other columns can be fixed. if (e.Field.Name == "name") { e.Cancel = true; } }
private void xamDataGrid1_FieldPositionChanged(object sender, Infragistics.Windows.DataPresenter.Events.FieldPositionChangedEventArgs e)
{
//3 Other columns can be fixed.
// ensure that the first filed name will be always on first place
if (e.Field.ActualPosition.Column == 0)
xamDataGrid1.FieldLayouts[0].Fields["name"].ActualPosition = new Infragistics.Windows.DataPresenter.FieldPosition(0, 0, 1, 1);
xamDataGrid1.FieldLayouts[0].EnsureUniqueFieldPositions();
}
private void xamDataGrid1_FieldPositionChanging(object sender, Infragistics.Windows.DataPresenter.Events.FieldPositionChangingEventArgs e)
//1 One particular column (let's call it A) must always remain the left-most column.
//2 Other columns can be fixed.
if (e.Field.Name == "name")
e.Cancel = true;
Your case number is CAS-60747-Z3FKRB you can also contact me via case if you need any further assistance.
Sincerely,DimiDeveloper Support Engineer, MCPD Infragistics, Inc.www.infragistics.com/support
Thanks, it works perfectly.
Is same functionality is available with XamGrid also?
Any workaround to handle such situation.
Thanks,
Vishal
Hello Vishal,
I can suggest you see this forum thread:
http://es.infragistics.com/community/forums/p/91461/453100.aspx#453100
where a similar question is already discussed.