WPF DATAGIRD更新数据源的问题
怎么做到在页面上点击某一行 能在下面的TEXTBOX里面分别显示出对应的数据 然后通过修改TEXTBOX里面的数据来更新数据库的数据?
如果太麻烦的话 通过直接编辑DATAGRID里面的数据来更新数据库的数据也可以 不要下面的TEXTBOX了
[解决办法]
我是在silverlight里测的。感觉和wpf差不多,俺没用过wpf,不合适勿怪。
前端:
<sdk:DataGrid x:Name="dgTest" Margin="0,0,0,0" VerticalAlignment="Top" Height="100" AutoGenerateColumns="False" FontSize="14">
<sdk:DataGrid.Columns>
<sdk:DataGridTextColumn CanUserReorder="True" Binding="{Binding 合格证号,Mode=TwoWay, ValidatesOnDataErrors=True}" CanUserResize="True" CanUserSort="True" Width="Auto" Header="合格证号" />
<sdk:DataGridTextColumn CanUserReorder="True" Binding="{Binding 设备编号,Mode=TwoWay, ValidatesOnDataErrors=True}" CanUserResize="True" CanUserSort="True" Width="Auto" Header="设备编号" />
</sdk:DataGrid.Columns>
</sdk:DataGrid>
<TextBox x:Name="txt全格证号" HorizontalAlignment="Left" Height="23" Margin="10,150,0,0" TextWrapping="Wrap" Text="{Binding SelectedItem.合格证号, ElementName=dgTest, Mode=TwoWay}" VerticalAlignment="Top" Width="120"/>
<TextBox x:Name="txt设备编号" HorizontalAlignment="Left" Height="23" Margin="224,150,0,0" TextWrapping="Wrap" Text="{Binding SelectedItem.设备编号, ElementName=dgTest, Mode=TwoWay}" VerticalAlignment="Top" Width="120"/>
后台:
TestDataCollection list = new TestDataCollection()
{
new TestData(){ 合格证号="01234", 设备编号="OX001"},
new TestData(){ 合格证号="111", 设备编号="11"},
};
dgTest.ItemsSource = list;
public class TestDataCollection : ObservableCollection<TestData>
{ }
public class TestData
{
public string 合格证号 { set;get;}
public string 设备编号 { set; get; }
}
因为懒所以用了这个集合ObservableCollection,