Свяжите сущность с KeyValuePair с сетью данных в WPF - PullRequest
0 голосов
/ 02 января 2019

Ниже мой класс с парой Keyvalue

public class GridExpression
{
    public int Count { get; set; }
    public string Title { get; set; }
    public KeyValuePair<string, double> T1 { get; set; }
    public KeyValuePair<string, double> T2 { get; set; }
    public KeyValuePair<string, double> T3 { get; set; }


}
ObservableCollection<GridExpression> grid = new 
ObservableCollection<GridExpression>();

Я хочу связать вышеуказанную коллекцию ObservableCollection с сеткой данных

также, если вместо этого мы используем List, если Keypairvalue

как и в коде ниже XAML, я добавил 2 T1, один с сеткой, а другой с Wrappanel сетка показывает хотя бы аква-цвет фона Textblock

<DataGrid x:Name="_timeframe_Copy" Margin="0,408.152,10,10" AlternatingRowBackground="#FFFFF5D4" AutoGenerateColumns="False"
    HorizontalAlignment="Right" Width="766.167">
    <DataGrid.Columns>
        <DataGridTextColumn Header="Count" Binding="{Binding Count}" />
        <DataGridTextColumn Header="Title" Binding="{Binding Title}" />
        <DataGridTemplateColumn Header="T1">
            <DataGridTemplateColumn.CellTemplate>
                <DataGridTemplateColumn Header="T1" MinWidth="10">
                    <DataGridTemplateColumn.CellTemplate>
                        <DataTemplate>
                            <Grid x:Name="brdBroder" VerticalAlignment="Stretch" Margin="1" DataContext="{Binding T1, RelativeSource={RelativeSource AncestorType=Window}}">
                                <TextBlock Text="{Binding Key}" Margin="3,1" Background="Aqua" Foreground="White" />
                                <TextBlock Text="{Binding Value}" Margin="3,1" />
                            </Grid>
                        </DataTemplate>
                    </DataGridTemplateColumn.CellTemplate>
                </DataGridTemplateColumn>

                <DataGridTemplateColumn Header="T1" MinWidth="10">
                    <DataGridTemplateColumn.CellTemplate>
                        <DataTemplate>
                            <WrapPanel x:Name="brdBroder" VerticalAlignment="Stretch" Margin="1" DataContext="{Binding T1, RelativeSource={RelativeSource AncestorType=Window}}">
                                <TextBlock Text="{Binding Key}" Margin="3,1" Background="Aqua" Foreground="White" />
                                <TextBlock Text="{Binding Value}" Margin="3,1" />
                            </WrapPanel>
                        </DataTemplate>
                    </DataGridTemplateColumn.CellTemplate>
                </DataGridTemplateColumn>

                <DataGridTemplateColumn Header="T2" MinWidth="10">
                    <DataGridTemplateColumn.CellTemplate>
                        <DataTemplate>
                            <WrapPanel x:Name="brdBroder" VerticalAlignment="Stretch" Margin="1" DataContext="{Binding T2, RelativeSource={RelativeSource AncestorType=Window}}">
                                <TextBlock Text="{Binding Key}" Margin="3,1" Background="Aqua" Foreground="White" />
                                <TextBlock Text="{Binding Value}" Margin="3,1" />
                            </WrapPanel>
                        </DataTemplate>
                    </DataGridTemplateColumn.CellTemplate>
                </DataGridTemplateColumn>

                <DataGridTemplateColumn Header="T3" MinWidth="10">
                    <DataGridTemplateColumn.CellTemplate>
                        <DataTemplate>
                            <WrapPanel x:Name="brdBroder" VerticalAlignment="Stretch" Margin="1" DataContext="{Binding T2, RelativeSource={RelativeSource AncestorType=Window}}">
                                <TextBlock Text="{Binding Key}" Margin="3,1" Background="Aqua" Foreground="White" />
                                <TextBlock Text="{Binding Value}" Margin="3,1" />
                            </WrapPanel>
                        </DataTemplate>
                    </DataGridTemplateColumn.CellTemplate>
                </DataGridTemplateColumn>
            </DataGridTemplateColumn.CellTemplate>
        </DataGridTemplateColumn>
    </DataGrid.Columns>
</DataGrid>

Я не знаю, как связать пары ключ-значение и привязку к Таблица данных

1 Ответ

0 голосов
/ 02 января 2019

Проблема с вашим DataContext Связыванием.

DataContext из DataGridTemplateColumn.CellTemplate - GridExpression.

. Поэтому вам нужно только изменить эту строку:

<WrapPanel x:Name="brdBroder" VerticalAlignment="Stretch" Margin="1" DataContext="{Binding T1, RelativeSource={RelativeSource AncestorType=Window}}">

до:

<WrapPanel x:Name="brdBroder" VerticalAlignment="Stretch" Margin="1" DataContext="{Binding T1}">
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...