I am using the xamDataGrid and edit template is assigned to one of the Field of the DataGrid -
xmlns
:infra="http://infragistics.com/Editors"
<Style x:Key="ComboStyle" TargetType="{x:Type infra:ValueEditor}"> <Setter Property ="EditTemplate"> <Setter.Value> <ControlTemplate TargetType="{x:Type infra:ValueEditor}"> <ComboBox Name="uxFacility" Text="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=Value, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged }"> </ComboBox> </ControlTemplate> </Setter.Value> </Setter></Style>
This edit template gets assigned to the field at runtime. Now if I use the key board to traverse to the perticular cell (field). as per the template above the combobox gets displayed in the cell but the focus still remains on the cell. I want the focus to get shift to the combox the moment it gets displayed.
any clues?
Thanks in advance.
~Sachin
Hello Sachin,
If you want to retemplate or create a template for your ValueEditors, please take a look at the default generic styles of the XamEditors in the DefaultStyles directory in the Infragistics folder. You can use them as a base for your own style so that you will not lose any important functionality.
You might also find helpful this great article by Andrew Smith about hosting any controls in the XamDataGrid:
http://blogs.infragistics.com/blogs/andrew_smith/archive/2009/03/27/hosting-wpf-controls-in-a-xamdatagrid-cell.aspx
Hope this helps,
Alex.
Hello Alex,
Thanks for your quick response.
I have referred the above mentioned url and the sample. But still i am facing the problem at runtime.
If i apply the EditorStyle at design time it works fine for me but if i apply the same editor style at runtime it does not uses the style and data template does not gets applied.
Am I missing any thing here...
Code which works fine at design time -
<igDP:Field Name="salary"> <igDP:Field.Settings> <igDP:FieldSettings> <igDP:FieldSettings.EditorStyle> <Style TargetType="{x:Type igSamples:ControlHostEditor}"> <Setter Property="EditDataTemplate"> <Setter.Value> <DataTemplate> <ComboBox /> </DataTemplate> </Setter.Value> </Setter> </Style> </igDP:FieldSettings.EditorStyle> </igDP:FieldSettings> </igDP:Field.Settings> </igDP:Field> Following is the Code which does not work - <igDP:XamDataGrid.Resources> <Style x:Key="MultiComboStyle" TargetType="{x:Type igSamples:ControlHostEditor}"> <Setter Property="EditDataTemplate"> <Setter.Value> <DataTemplate> <ComboBox /> </DataTemplate> </Setter.Value> </Setter> </Style></igDP:XamDataGrid.Resources> the code behind - private void Window_Loaded(object sender, RoutedEventArgs e){ FieldLayout fl = xamDataGrid.FieldLayouts[0]; Field field = fl.Fields["salary"]; field.Settings.EditorStyle = xamDataGrid.FindResource("MultiComboStyle") as Style;} Please suggest. ~Sachin
<igDP:Field Name="salary"> <igDP:Field.Settings> <igDP:FieldSettings> <igDP:FieldSettings.EditorStyle> <Style TargetType="{x:Type igSamples:ControlHostEditor}"> <Setter Property="EditDataTemplate"> <Setter.Value> <DataTemplate> <ComboBox /> </DataTemplate> </Setter.Value> </Setter> </Style> </igDP:FieldSettings.EditorStyle> </igDP:FieldSettings> </igDP:Field.Settings> </igDP:Field>
Following is the Code which does not work -
<igDP:XamDataGrid.Resources> <Style x:Key="MultiComboStyle" TargetType="{x:Type igSamples:ControlHostEditor}"> <Setter Property="EditDataTemplate"> <Setter.Value> <DataTemplate> <ComboBox /> </DataTemplate> </Setter.Value> </Setter> </Style></igDP:XamDataGrid.Resources>
the code behind - private void Window_Loaded(object sender, RoutedEventArgs e){ FieldLayout fl = xamDataGrid.FieldLayouts[0]; Field field = fl.Fields["salary"]; field.Settings.EditorStyle = xamDataGrid.FindResource("MultiComboStyle") as Style;}
Please suggest.
I also tried it and it works from the code behind, actually there is no reason not to work. Do you have a sample project that illustrates the problem. If so, please attach it to your next post so we can look into it.
Regards,
Please find the code attached herewith.
Please fine the comment like -
1. Attach style at runtime
2. Style at design time
Sachin,
Actually I do not see a difference. I added some items to the ComboEditor and when you tab-navigate to the cell, the ComboEditor gets focus and you can use the arrow keys to navigate its items.
What is your requirement and what do you think is not a correct behavior?