- 締切済み
Visualbasic2010 WPF データ更新
VisualBasic 2010 を利用してWindowsアプリケーションを行っております。 Form上にElementHostを配置し、データベースより抽出した結果をWPFで作成したグリッド(DataGrid)に表示しております。 以下の点について分る方がいらっしゃいましたらご教授頂けますと幸いです。 DataGridでデータを更新した場合にDataTableも更新したい ソースは以下の構成となります。 ★Item_Main.xaml <UserControl x:Name="UserControl1" x:Class="Item_Main" xmlns:local="clr-namespace:TEST" mc:Ignorable="d" d:DesignHeight="200" d:DesignWidth="300" Height="Auto" Width="Auto" GotFocus="UserControl_GotFocus"> <DataGrid x:Name="DataGrid_1" ItemsSource="{Binding}" ScrollViewer.CanContentScroll="True" VirtualizingPanel.IsVirtualizing="True" VirtualizingPanel.VirtualizationMode="Standard" ScrollViewer.IsDeferredScrollingEnabled="True" AutoGenerateColumns="False" CanUserAddRows="False" CanUserDeleteRows="False" HeadersVisibility="None" Margin="0,0,0,0"> <DataGrid.Columns> <DataGridTemplateColumn> <DataGridTemplateColumn.CellTemplate> <DataTemplate> <local:Item_Detail /> </DataTemplate> </DataGridTemplateColumn.CellTemplate> </DataGridTemplateColumn> </DataGrid.Columns> </DataGrid> </UserControl> ★Item_Detail.xaml <UserControl x:Name="UserControl2" x:Class="Item_Detail" mc:Ignorable="d" d:DesignHeight="136" Width="1090" Loaded="UserControl_Loaded"> <UserControl.Background> <SolidColorBrush Color="{DynamicResource {x:Static SystemColors.WindowColorKey}}"/> </UserControl.Background> <Grid Name="GP_Panel" KeyboardNavigation.TabNavigation="Local"> <Grid.ColumnDefinitions> <ColumnDefinition Width="69*"/> <ColumnDefinition Width="151*"/> </Grid.ColumnDefinitions> <TextBox x:Name="Text_Pre_CS" Text="{Binding 数量, Mode=TwoWay, TargetNullValue=0}" HorizontalAlignment="Left" Height="22" Margin="161,102,0,12" TextWrapping="Wrap" Width="60" Background="White" FontFamily="Arial" HorizontalContentAlignment="Right" VerticalContentAlignment="Center" FontWeight="Bold" Foreground="Black" Grid.Column="1" TabIndex="1" FontSize="15" /> </Grid> </UserControl> ★Item_Detail.xaml.vb ※現在はデータ編集時に以下のように処理しております。 '/ 本画面のDataRowを取得 Dim dt_row As DataRow Dim dt_row_view As DataRowView dt_row_view = CType(Me.DataContext, DataRowView) dt_row = dt_row_view.Row dt_row.Item("数量") = "0" DataRowはDataTableとは異なると認識しておりますので 現在のロジックではDataTable側は更新されない事は 理解しているのですが、Item_Detail.xaml.vbにて DataTableの特定行数を取得する方法等が分らず 目的の動作が実現できていません。 大変お手数おかけ致しますが、 宜しくお願い致します。 以上です。
- みんなの回答 (2)
- 専門家の回答
補足
ご教授頂きましてありがとうございます。 早速「UpdateSourceTrigger=PropertyChanged」を組み込んで検証してみたのですが、DataTableには反映しないようでした。 Item_Detail側でDataTableのカレント行番号が取得できれば処理できるのではないかと考えているのですが、そのような方法は難しいのでしょうか。