Note that there are some explanatory texts on larger screens.

plurals
  1. PO
    primarykey
    data
    text
    <pre><code>/// &lt;summary&gt; /// Automation DataGrid Control - Columns Localization and Ordering /// Option1: Localization of Columns Automatically /// Option2: Ordering columns in DataGrid Automatically /// &lt;/summary&gt; /// &lt;param name="dataGrid"&gt; DataGrid control&lt;/param&gt; /// &lt;param name="ContractType"&gt; Contract of Row DataItem /// Example: typeof(ClientType) /// &lt;/param&gt; /// &lt;param name="columns"&gt; Ordered Properties of Contract /// Example: columns = "Id_Client,Client,GeographyItem,Flag_Approved,ClientType,ClientRelation,ClientPrestigeLevel" /// &lt;/param&gt; public void AutomateDataGridColumns(DataGrid dataGrid, Type Contract, String columns) { try { List&lt;String&gt; OrderedColumns = columns.Split(new string[] { ",", "|", ";" }, StringSplitOptions.RemoveEmptyEntries).ToList(); //Buid Order of created COLUMNS dataGrid.Loaded += (sndr, arg) =&gt; { if (dataGrid.Columns.Count == OrderedColumns.Count &amp;&amp; dataGrid.AutoGenerateColumns == true) { foreach (var item in dataGrid.Columns) { Int32 displayIndex = OrderedColumns.IndexOf(item.Header.ToString()); if (displayIndex != -1) { item.DisplayIndex = displayIndex; } } }; }; //DataGridColumn Localization dataGrid.AutoGeneratingColumn += (sndr, arg) =&gt; { LocalizeDataGridColumn(sndr as DataGrid, arg, Contract, OrderedColumns); //We need To Update DataGrid after last Column Localized --&gt;so Loaded event will be Raised/ // or ArgumentOutOfRange Exception will be thrown if (dataGrid.Columns.Count == OrderedColumns.Count &amp;&amp; dataGrid.AutoGenerateColumns == true) { dataGrid.UpdateLayout(); } }; } catch (Exception exc) { throw exc; } } /// &lt;summary&gt; /// DataGridColumn Control Localization /// &lt;/summary&gt; /// &lt;param name="dataGrid"&gt;Host DataGrid control &lt;/param&gt; /// &lt;param name="arg"&gt;Auto Generated Column arg &lt;/param&gt; /// &lt;param name="Contract"&gt;Type Contract&lt;/param&gt; /// &lt;param name="localizationColumns"&gt;Ordered Properties to Contract &lt;/param&gt; protected void LocalizeDataGridColumn(DataGrid dataGrid, DataGridAutoGeneratingColumnEventArgs arg, Type Contract, List&lt;String&gt; localizationColumns) { try { DataGridColumn Column = arg.Column; if (localizationColumns.Contains(Column.Header.ToString())) { // LOCALIZING Column.Header // Check column local resource key exist // CultureKeys - local Culture enum type // SystemDispatcher - is My SL4 MEF Bootstrappper // LocalizationService - is My Localization service in SL4 // if somebody is interested i can share more of my LocalizationService - use mail CultureKeys currntCulture = SystemDispatcher.LocalizationService.CurrentCulture; string ResourceKey = LocalResKeys.BoPropElmNameLoc.ToString() + "\\" + Contract.Name + @"|" + Column.Header.ToString(); if (SystemDispatcher.LocalizationService.CultureResources[currntCulture].Item2.ContainsKey(ResourceKey)) Column.Header = SystemDispatcher.LocalizationService.CultureResources[currntCulture].Item2[ResourceKey]; } else { arg.Cancel = true; } } catch (Exception exc) { throw exc; } } </code></pre>
    singulars
    1. This table or related slice is empty.
    plurals
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
    1. This table or related slice is empty.
 

Querying!

 
Guidance

SQuiL has stopped working due to an internal error.

If you are curious you may find further information in the browser console, which is accessible through the devtools (F12).

Reload