在DataGrid编辑期间捕获异常?

时间:2013-05-09 02:11:44

标签: c# wpf data-binding datagrid

我正在为工作中的用户复制'touch'命令的GUI版本。

我有一个WPF DataGrid我绑定到List<FileInfo>对象。

当用户更改文件的CreationTime(例如)时,绑定会自动更新文件,一切都很好。

在您尝试更改无权更改的文件之前。数据绑定将异常抛出到输出窗口,但我想捕获异常并更新状态栏消息以说明它失败。

目前我通过捕获CellEditEnding事件并再次手动应用更改来实现此目的,只是为了捕获代码中的异常。这不是问题,但我想知道怎么做而不试图改变日期两次?

1 个答案:

答案 0 :(得分:0)

处理BeginningEdit事件以确保文件可访问,如果文件不可访问,则将传递的DataGridBeginningEditEventArgsCancel属性设置为true

要确定您是否具有某个路径的写入权限,请使用以下命令:

using System.Security.Permissions;

...
public void dataGrid_BeginningEdit(object sender, DataGridBeginningEditEventArgs e)
{
    FileIOPermission permission = new FileIOPermission(FileIOPermissionAccess.Write, path);
    try
    {
        permission.Demand();            
    }
    catch
    {
        e.Cancel = true;
    }
}