Select to view content in your preferred language

How to insert Symbol in DataGrid cell?

922
2
07-16-2013 11:47 PM
GlumovViktor
Emerging Contributor
Hi!!
How to insert Symbol in DataGrid cell?
I use List<SymbolPresenter> and ListBox.ItemsSource.
It works correctly, but I need to reflect Symbol in DataGrid.
0 Kudos
2 Replies
GlumovViktor
Emerging Contributor
I find  🙂

in XAML

xmlns:sysPres="clr-namespace:ESRI.ArcGIS.Client.Toolkit.Primitives;assembly=ESRI.ArcGIS.Client.Toolkit"
<sdk:DataGrid Height="200"  Width="200" x:Name="EditSymbolDataGrid"
                              ItemsSource="{Binding}" AutoGenerateColumns="False">
                    <sdk:DataGrid.Columns>
                        <sdk:DataGridTemplateColumn x:Name="symb" Header="Символ">
                            <sdk:DataGridTemplateColumn.CellTemplate>
                                <DataTemplate >
                                            <sysPres:SymbolDisplay Symbol="{Binding Path=symb_pres}" Height="30" Width="30" Margin="3"/>
                                    </DataTemplate>
                            </sdk:DataGridTemplateColumn.CellTemplate>
                        </sdk:DataGridTemplateColumn>
                        <sdk:DataGridTextColumn Header="Value" x:Name="value" Binding="{Binding Path=unic_value}"/>
                    </sdk:DataGrid.Columns>
                </sdk:DataGrid>



In CS

    public class LegendElitItem
    {
        public Symbol symb_pres { get; set; }
        public string unic_value { get; set; }
       
        public LegendElitItem() { }

        public LegendElitItem(Symbol symb_pres,  string unic_value)
        {
            this.symb_pres = symb_pres;
            this.unic_value = unic_value;
        }
    }



In MyPage:

LegendElitItem item = new LegendElitItem(LayoutRoot.Resources["BasicFillSymbol_Yellow_Trans_5"] as FillSymbol, "Label0");
aList.Add(item);
LegendElitItem item1 = new LegendElitItem(LayoutRoot.Resources["BasicFillSymbol_Magenta_Trans_6"] as FillSymbol, "Label1");
aList.Add(item1);
EditSymbolDataGrid.ItemsSource = aList;
0 Kudos
GlumovViktor
Emerging Contributor
variant 2 - without class  🙂

xaml

<sdk:DataGrid Height="200"  Width="200" x:Name="EditSymbolDataGrid2"
                              ItemsSource="{Binding}" AutoGenerateColumns="False">
                        <sdk:DataGrid.Columns>
                            <sdk:DataGridTemplateColumn Header="Символ">
                                <sdk:DataGridTemplateColumn.CellTemplate>
                                    <DataTemplate >
                                        <sysPres:SymbolDisplay Symbol="{Binding Path=Symbol}" Height="30" Width="30" Margin="3"/>
                                    </DataTemplate>
                                </sdk:DataGridTemplateColumn.CellTemplate>
                            </sdk:DataGridTemplateColumn>
                            <sdk:DataGridTextColumn Header="�?на�?ение"  Binding="{Binding Path=Attributes[atr1]}"/>
                            <sdk:DataGridTextColumn Header="Min" Binding="{Binding Path=Attributes[atr2]}"/>
                        </sdk:DataGrid.Columns>
                    </sdk:DataGrid>


sc

            SymbolDisplay aD = new SymbolDisplay();
            aD.Symbol = LayoutRoot.Resources["BasicFillSymbol_Yellow_Trans_5"] as FillSymbol;
            aD.Attributes = new Dictionary<string, object>();
            aD.Attributes.Add("atr1", "value1");
            aD.Attributes.Add("atr2", (double)1.34);

            SymbolDisplay aD1 = new SymbolDisplay();
            aD1.Symbol = LayoutRoot.Resources["BasicFillSymbol_Magenta_Trans_6"] as FillSymbol;
            aD1.Attributes = new Dictionary<string, object>();
            aD1.Attributes.Add("atr1", "value3");
            aD1.Attributes.Add("atr2", "value4");

            List<SymbolDisplay> aL = new List<SymbolDisplay>();
            aL.Add(aD);
            aL.Add(aD1);
            EditSymbolDataGrid2.ItemsSource = aL;
0 Kudos