none
DataGrid 最后一个空白行行添加和修改以及删除后怎么触发响应事件?获得改动行的绑定对象? RRS feed

  • 问题

  • DataGrid 设置CanUserAddRows和CanUserDeleteRows为true,使datagrid总是有最后一个空白行,按回车可以添加以及按delete键删除的功能,还有对已有行的单元格的内容修改,那怎么设置这个空白行添加后,修改任意一行的内容和删除后的响应事件?我想要做出这些操作时,同时对这些变动的行的绑定对象数据进行数据验证和持久化处理。这需要一个响应事件,怎么做?

    空白行的添加和对行的单元格内容的修改除了能设置成按回车键,能不能设置鼠标点击其他地方也能添加空白行和修改的数据?

    2019年8月7日 3:02

答案


  • Hi  便携式家园,

    >>DataGrid 设置CanUserAddRows和CanUserDeleteRows为true,使datagrid总是有最后一个空白行,按回车可以添加以及按delete键删除的功能,还有对已有行的单元格的内容修改,那怎么设置这个空白行添加后,修改任意一行的内容和删除后的响应事件?我想要做出这些操作时,同时对这些变动的行的绑定对象数据进行数据验证和持久化处理。这需要一个响应事件,怎么做?

    系统控件自带的快捷功能是方便你增加数据的。你可以在填充完数据后,通过遍历获取值。

    比如下面的介绍:WPF中DataGrid的空白行使用方法:


    从你的描述中,系统默认的并不适合你的情形。

    你需要使用MVVM模式,通过数据源双向绑定 来获取通知。 并对绑定数据对像进行验证。

    >>空白行的添加和对行的单元格内容的修改除了能设置成按回车键,能不能设置鼠标点击其他地方也能添加空白行和修改的数据?

    通过点击其他地方的事件,来对数据源进行操作,或者指定需要修改的行等等。 




    Best regards

    Yong Lu

    MSDN Community Support
    Please remember to click "Mark as Answer" the responses that resolved your issue, and to click "Unmark as Answer" if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to MSDN Support, feel free to contact MSDNFSF@microsoft.com.

    2019年8月7日 10:00
    版主
  • Hi  便携式家园,

    当你在CellTemplate中定义数据绑定的时候,你点击修改cell类容的时候,绑定的数据源会更新。

    <DataTemplate>                     
        <TextBox x:Name="tbHour" Background="Transparent" Text="{Binding Hour, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"   BorderThickness="0" MaxLength="2"  />                      
    </DataTemplate>

    你如果想在CellEditEnding等事件中更新数据库,你可以参考下面博客资料。

    WPF中修改DataGrid单元格值并保存

    WPF学习笔记——编辑DataGrid单元格并实时更新到数据库

    Note: This response contains a reference to a third party World Wide Web site. Microsoft is providing this information as a convenience to you. Microsoft does not control these sites and has not tested any software or information found on these sites; therefore, Microsoft cannot make any representations regarding the quality, safety, or suitability of any software or information found there. There are inherent dangers in the use of any software found on the Internet, and Microsoft cautions you to make sure that you completely understand the risk before retrieving any software from the Internet. 


    Best regards

    Yong Lu










     


    MSDN Community Support
    Please remember to click "Mark as Answer" the responses that resolved your issue, and to click "Unmark as Answer" if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to MSDN Support, feel free to contact MSDNFSF@microsoft.com.

    2019年8月9日 1:46
    版主

全部回复


  • Hi  便携式家园,

    >>DataGrid 设置CanUserAddRows和CanUserDeleteRows为true,使datagrid总是有最后一个空白行,按回车可以添加以及按delete键删除的功能,还有对已有行的单元格的内容修改,那怎么设置这个空白行添加后,修改任意一行的内容和删除后的响应事件?我想要做出这些操作时,同时对这些变动的行的绑定对象数据进行数据验证和持久化处理。这需要一个响应事件,怎么做?

    系统控件自带的快捷功能是方便你增加数据的。你可以在填充完数据后,通过遍历获取值。

    比如下面的介绍:WPF中DataGrid的空白行使用方法:


    从你的描述中,系统默认的并不适合你的情形。

    你需要使用MVVM模式,通过数据源双向绑定 来获取通知。 并对绑定数据对像进行验证。

    >>空白行的添加和对行的单元格内容的修改除了能设置成按回车键,能不能设置鼠标点击其他地方也能添加空白行和修改的数据?

    通过点击其他地方的事件,来对数据源进行操作,或者指定需要修改的行等等。 




    Best regards

    Yong Lu

    MSDN Community Support
    Please remember to click "Mark as Answer" the responses that resolved your issue, and to click "Unmark as Answer" if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to MSDN Support, feel free to contact MSDNFSF@microsoft.com.

    2019年8月7日 10:00
    版主

  • Hi  便携式家园,

    >>DataGrid 设置CanUserAddRows和CanUserDeleteRows为true,使datagrid总是有最后一个空白行,按回车可以添加以及按delete键删除的功能,还有对已有行的单元格的内容修改,那怎么设置这个空白行添加后,修改任意一行的内容和删除后的响应事件?我想要做出这些操作时,同时对这些变动的行的绑定对象数据进行数据验证和持久化处理。这需要一个响应事件,怎么做?

    系统控件自带的快捷功能是方便你增加数据的。你可以在填充完数据后,通过遍历获取值。

    比如下面的介绍:WPF中DataGrid的空白行使用方法:


    从你的描述中,系统默认的并不适合你的情形。

    你需要使用MVVM模式,通过数据源双向绑定 来获取通知。 并对绑定数据对像进行验证。

    >>空白行的添加和对行的单元格内容的修改除了能设置成按回车键,能不能设置鼠标点击其他地方也能添加空白行和修改的数据?

    通过点击其他地方的事件,来对数据源进行操作,或者指定需要修改的行等等。 




    Best regards

    Yong Lu

    MSDN Community Support
    Please remember to click "Mark as Answer" the responses that resolved your issue, and to click "Unmark as Answer" if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to MSDN Support, feel free to contact MSDNFSF@microsoft.com.

    请问编辑数据行更新要怎么办,我试了一下CellEditEnding和RowEditEnding事件,这两个事件响应时,编辑行的数据源未发生任何改变。请问除了手动更新,有其他办法吗?
    2019年8月8日 12:12
  • Hi  便携式家园,

    当你在CellTemplate中定义数据绑定的时候,你点击修改cell类容的时候,绑定的数据源会更新。

    <DataTemplate>                     
        <TextBox x:Name="tbHour" Background="Transparent" Text="{Binding Hour, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"   BorderThickness="0" MaxLength="2"  />                      
    </DataTemplate>

    你如果想在CellEditEnding等事件中更新数据库,你可以参考下面博客资料。

    WPF中修改DataGrid单元格值并保存

    WPF学习笔记——编辑DataGrid单元格并实时更新到数据库

    Note: This response contains a reference to a third party World Wide Web site. Microsoft is providing this information as a convenience to you. Microsoft does not control these sites and has not tested any software or information found on these sites; therefore, Microsoft cannot make any representations regarding the quality, safety, or suitability of any software or information found there. There are inherent dangers in the use of any software found on the Internet, and Microsoft cautions you to make sure that you completely understand the risk before retrieving any software from the Internet. 


    Best regards

    Yong Lu










     


    MSDN Community Support
    Please remember to click "Mark as Answer" the responses that resolved your issue, and to click "Unmark as Answer" if not. This can be beneficial to other community members reading this thread. If you have any compliments or complaints to MSDN Support, feel free to contact MSDNFSF@microsoft.com.

    2019年8月9日 1:46
    版主