Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > WPF и Silverlight > DataGridTemplateColumn не берет данные из TextBox


Автор: snakesan2008 17.4.2013, 14:57
Подскажите пожалуйста, как программно получить то что мы ввели в ниже приведенные текстбоксы.
Код



<DataGrid AutoGenerateColumns="False" Height="187" HorizontalAlignment="Left" Name="dataGrid1" VerticalAlignment="Top" MaxWidth="803" MinWidth="803" Width="803" SelectionChanged="dataGrid1_SelectionChanged_1" >
        <DataGrid.Columns>
                <DataGridTemplateColumn Header="№п/п" Width="50">
                <DataGridTemplateColumn.CellTemplate>
                    <DataTemplate>
                            <TextBox Text="{Binding Path=name1}" Margin="1,0,1,0"/>
                    </DataTemplate>
                </DataGridTemplateColumn.CellTemplate>
                </DataGridTemplateColumn>
            <DataGridTemplateColumn Header="Наименование">
                <DataGridTemplateColumn.CellTemplate>
                    <DataTemplate>
                        <TextBox Text="{Binding Path=name2}" Margin="1,0,1,0"/>
                    </DataTemplate>
                </DataGridTemplateColumn.CellTemplate>
            </DataGridTemplateColumn>
            <DataGridTemplateColumn Header="Марка" Width="55">
                <DataGridTemplateColumn.CellTemplate>
                    <DataTemplate>
                        <TextBox Text="{Binding Path=name3}" Margin="1,0,1,0"/>
                    </DataTemplate>
                </DataGridTemplateColumn.CellTemplate>
            </DataGridTemplateColumn>
            <DataGridTemplateColumn Header="Кол-во" Width="55">
                <DataGridTemplateColumn.CellTemplate>
                    <DataTemplate>
                        <TextBox Text="{Binding Path=name4}" Margin="1,0,1,0"/>
                    </DataTemplate>
                </DataGridTemplateColumn.CellTemplate>
            </DataGridTemplateColumn>
            <DataGridTemplateColumn Width="130" MinWidth="130" MaxWidth="130">
                <DataGridTemplateColumn.HeaderTemplate>
                    <DataTemplate>
                        <Grid Width="110" MinWidth="110" MaxWidth="110">
                            <Grid.RowDefinitions>
                                <RowDefinition Height="25"/>
                                <RowDefinition Height="25"/>
                            </Grid.RowDefinitions>
                            <Grid.ColumnDefinitions>
                                <ColumnDefinition Width="60" MinWidth="60" MaxWidth="60"/>
                                <ColumnDefinition Width="60" MinWidth="60" MaxWidth="60"/>
                            </Grid.ColumnDefinitions>
                            <Label Grid.ColumnSpan="2" Content="Поставщик1" HorizontalAlignment="Center" Width="80"/>
                            <Label Grid.Row="1" Content="Цена" HorizontalAlignment="Center" Width="45"/>
                            <Label Grid.Row="1" Grid.Column="1" Content="сумма" HorizontalAlignment="Center" Width="45"/>
                        
                        </Grid>
                        
                    </DataTemplate>
                </DataGridTemplateColumn.HeaderTemplate>
                <DataGridTemplateColumn.CellTemplate>
                    <DataTemplate>
                        <Grid>
                            <Grid.ColumnDefinitions>
                                <ColumnDefinition Width="*"/>
                                <ColumnDefinition Width="*"/>
                            </Grid.ColumnDefinitions>
                            <TextBox Text="{Binding Path=min1}" Margin="1,0,1,0"/>
                            <TextBox Grid.Column="1" Text="{Binding Path=max1}" Margin="1,0,1,0"/>
                        </Grid>
                    </DataTemplate>
                </DataGridTemplateColumn.CellTemplate>
            </DataGridTemplateColumn>
            <DataGridTemplateColumn Width="130" MinWidth="130" MaxWidth="130">
                <DataGridTemplateColumn.HeaderTemplate>
                    <DataTemplate>
                        <Grid Width="110" MinWidth="110" MaxWidth="110">
                            <Grid.RowDefinitions>
                                <RowDefinition Height="25"/>
                                <RowDefinition Height="25"/>
                            </Grid.RowDefinitions>
                            <Grid.ColumnDefinitions>
                                <ColumnDefinition Width="60" MinWidth="60" MaxWidth="60"/>
                                <ColumnDefinition Width="60" MinWidth="60" MaxWidth="60"/>
                            </Grid.ColumnDefinitions>
                            <Label Grid.ColumnSpan="2" Content="Поставщик2" HorizontalAlignment="Center" Width="80"/>
                            <Label Grid.Row="1" Content="Цена" HorizontalAlignment="Center" Width="45"/>
                            <Label Grid.Row="1" Grid.Column="1" Content="сумма" HorizontalAlignment="Center" Width="45"/>
 
                        </Grid>
 
                    </DataTemplate>
                </DataGridTemplateColumn.HeaderTemplate>
                <DataGridTemplateColumn.CellTemplate>
                    <DataTemplate>
                        <Grid>
                            <Grid.ColumnDefinitions>
                                <ColumnDefinition Width="*"/>
                                <ColumnDefinition Width="*"/>
                            </Grid.ColumnDefinitions>
                            <TextBox Text="{Binding Path=min2}" Margin="1,0,1,0"/>
                            <TextBox Grid.Column="1" Text="{Binding Path=max2}" Margin="1,0,1,0"/>
                        </Grid>
                    </DataTemplate>
                </DataGridTemplateColumn.CellTemplate>
            </DataGridTemplateColumn>
            <DataGridTemplateColumn Width="130" MinWidth="130" MaxWidth="130">
                <DataGridTemplateColumn.HeaderTemplate>
                    <DataTemplate>
                        <Grid Width="110" MinWidth="110" MaxWidth="110">
                            <Grid.RowDefinitions>
                                <RowDefinition Height="25"/>
                                <RowDefinition Height="25"/>
                            </Grid.RowDefinitions>
                            <Grid.ColumnDefinitions>
                                <ColumnDefinition Width="60" MinWidth="60" MaxWidth="60"/>
                                <ColumnDefinition Width="60" MinWidth="60" MaxWidth="60"/>
                            </Grid.ColumnDefinitions>
                            <Label Grid.ColumnSpan="2" Content="Поставщик3" HorizontalAlignment="Center" Width="80"/>
                            <Label Grid.Row="1" Content="Цена" HorizontalAlignment="Center" Width="45"/>
                            <Label Grid.Row="1" Grid.Column="1" Content="сумма" HorizontalAlignment="Center" Width="45"/>
 
                        </Grid>
 
                    </DataTemplate>
                </DataGridTemplateColumn.HeaderTemplate>
                <DataGridTemplateColumn.CellTemplate>
                    <DataTemplate>
                        <Grid>
                            <Grid.ColumnDefinitions>
                                <ColumnDefinition Width="*"/>
                                <ColumnDefinition Width="*"/>
                            </Grid.ColumnDefinitions>
                            <TextBox Text="{Binding Path=min3}" Margin="1,0,1,0"/>
                            <TextBox Grid.Column="1" Text="{Binding Path=max3}" Margin="1,0,1,0"/>
                        </Grid>
                    </DataTemplate>
                </DataGridTemplateColumn.CellTemplate>
            </DataGridTemplateColumn>
            <DataGridTemplateColumn Width="140" MinWidth="140" MaxWidth="140">
                <DataGridTemplateColumn.HeaderTemplate>
                    <DataTemplate>
                        <Grid Width="110" MinWidth="110" MaxWidth="110">
                            <Grid.RowDefinitions>
                                <RowDefinition Height="25"/>
                                <RowDefinition Height="25"/>
                            </Grid.RowDefinitions>
                            <Grid.ColumnDefinitions>
                                <ColumnDefinition Width="60" MinWidth="60" MaxWidth="60"/>
                                <ColumnDefinition Width="60" MinWidth="60" MaxWidth="60"/>
                            </Grid.ColumnDefinitions>
                            <Label Grid.ColumnSpan="2" Content="Поставщик4" HorizontalAlignment="Center" Width="80"/>
                            <Label Grid.Row="1" Content="Цена" HorizontalAlignment="Center" Width="45"/>
                            <Label Grid.Row="1" Grid.Column="1" Content="сумма" HorizontalAlignment="Center" Width="45"/>
 
                        </Grid>
 
                    </DataTemplate>
                </DataGridTemplateColumn.HeaderTemplate>
                <DataGridTemplateColumn.CellTemplate>
                    <DataTemplate>
                        <Grid>
                            <Grid.ColumnDefinitions>
                                <ColumnDefinition Width="*"/>
                                <ColumnDefinition Width="*"/>
                            </Grid.ColumnDefinitions>
                            <TextBox Text="{Binding Path=min4}" Margin="1,0,1,0"/>
                            <TextBox Grid.Column="1" Text="{Binding Path=max4}" Margin="1,0,1,0"/>
                          </Grid>
                    </DataTemplate>
                </DataGridTemplateColumn.CellTemplate>
            </DataGridTemplateColumn>
        
        </DataGrid.Columns>
        
    </DataGrid>


Автор: dzaraev 3.7.2013, 22:38
Во-первых, вопрос (лично мне) не ясен.
Цитата

DataGridTemplateColumn не берет данные из TextBox 

как-то не согласуется с
Цитата

 как программно получить то что мы ввели в ниже приведенные текстбоксы.

В итоге непонятно - в чем конкретно проблема? Кода приведено тоже явно излишне, и это еще больше запутывает.
По коду вообще - вижу текстбоксы с биндами, в самом XAML'e ошибки не вижу. Если у грида в DataContext установлен список правильных объектов (с публичными полями name1, name2 и т.д. с публичными сеттерами), то всё по идее должно работать.

Конкретизируйте пожалуйста проблему, постараюсь помочь.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)