问题列表 - 第4098页

ObservableCollection(Of T)vs BindingList(Of T)?

我在过去的两年里开发了一些基于Winforms Application的数据,一切正常.此应用程序构建在层(DataAccess,业务逻辑和UI)上.对于Businness Logic,我的所有对象都继承自一个名为BaseEntity的基类,其定义如下(有一些自定义对象和接口,与框架元素结合):

Public MustInherit Class BaseEntity
    Inherits SerializableObject
    Implements IEntity
    Implements IComparer,  _
               IEditableObject,  _
               INotifyPropertyChanging, INotifyPropertyChanged,  _
               IApplicationSecurity
  End Class
Run Code Online (Sandbox Code Playgroud)

在同一个核心库中,我有一个通用的基本集合BaseEntityCollection.这些集合允许我为每个对象定义他的相关强类型集合,这在基于数据的应用程序中是非常有趣的.这是它的基本定义:

 Public MustInherit Class BaseEntityCollection(Of T As BaseEntity)
    Inherits BindingList(Of T)
    Implements IEntityCollection
    Implements INotifyPropertyChanged, INotifyPropertyChanging, ICopyable(Of T)
    Implements IDisposable
    Implements ISerializable
  End Class
Run Code Online (Sandbox Code Playgroud)

如您所见,我使用Winforms中正确数据绑定所需的所有内容:

  • 对象的INotifyPropertyChanged,INotifyPropertyChanging,IEditableObject.
  • 基于BindingList(Of T)的集合,用于我的集合.

我也对新技术感兴趣,所以我最近看了一些关于WPF的网络直播.在这些网络广播中,它们用作收集和数据绑定支持ObservableCollection(Of T)的基类.

我正在考虑将我的一些应用程序从Winforms迁移到WPF以用于UI层.

我的问题是,对于我的业务逻辑,最好是基于BindingList(Of T)保留我的集合,还是应该更改我的基本集合类以使其继承自ObservableCollection(Of T).我想为我的所有项目保留一个独特的基础集合,可以在Winforms应用程序,WPF应用程序或ASP.NET中使用.我也在我的项目中使用Linq to Objects,所以我没有限制只保留基于框架2.0的项目.

谢谢,

CLABER

data-binding bindinglist observablecollection winforms

23
推荐指数
2
解决办法
2万
查看次数

我可以在VisualStudio中有一个跳过线的命中点吗?

我经常遇到我想在调试时禁用某些代码而不实际更改代码的情况.

我最终做的是有一个断点(通常是有条件的)然后当断点触发时我执行一个Set Next Statement.当代码被多次到达时,这可能是非常耗费人力的,所以我创建了一个宏:

Sub Skip3Lines()
    DTE.ActiveDocument.Selection.LineDown(False, 3)
    DTE.Debugger.SetNextStatement()
End Sub
Run Code Online (Sandbox Code Playgroud)

然后我将断点更改为命中点(right-click -> When Hit...)并告诉它执行此宏.

Visual Studio非常乐意吐出以下对话框:

---------------------------
Error
---------------------------
A macro called a debugger action which is not allowed while responding to an event or while being run because a breakpoint was hit.
---------------------------
OK
---------------------------

有谁知道怎么解决这个问题?

debugging visual-studio

6
推荐指数
1
解决办法
1361
查看次数

是否可以在sqlite中创建一个javascript用户定义的函数

背景:

  • Firefox 3包含 SQLite版本3.5.9.Firefox还允许使用javascript编写的扩展,并可以调用嵌入式SQLite引擎.

  • 正如所料,执行以下SQL语句'SELECT"TEXT"REGEXP"T*";' 由于SQLite中没有本地包含的REGEXP函数,因此会出错.

  • javascript包含内置的regexp功能.

  • SQLite允许通过SELECT load_extension('filename')加载扩展;

问题: 是否可以在SQLite中加载一个用javascript编写的可以执行REGEXP的扩展?

javascript sqlite

13
推荐指数
1
解决办法
2837
查看次数

在Windows上创建大文件

我需要创建大的相对较大(1-8 GB)的文件.使用C或C++在Windows上执行此操作的最快方法是什么?我需要动态创建它们,速度确实是一个问题.文件将用于存储仿真,即将在不同的偏移量中随机访问,我需要预先分配所有存储但未初始化,目前我们正在使用虚拟数据写入所有存储,并且花费的时间太长.

谢谢.

c windows file-io file

15
推荐指数
1
解决办法
7165
查看次数

在Windows下运行的PHPLint有哪些替代方案?

我刚刚完成了一个5000行的PHP应用程序,现在正在进行测试和调试.在结束前不久,我偶然发现了PHPLint.我真的很喜欢这个想法 - 有一些特殊的评论,我可以指定变量类型,然后工具检查我的代码是否存在各种错误.整齐.我认为在开发结束时我会评论我的代码并在其上运行PHPLint.

不幸的是我遇到了一个小问题 - 在Windows下,PHPLint无法编译.嗯,它是,但只有Cygwin,我不想再安装那件事.我也不想用Linux或其他东西获得虚拟机.当然,我会,如果没有其他选择,但首先我想探索其他选择.

那么 - 在Windows下运行的PHPLint是否还有其他选择?我的意思是代码检查.我不关心文档生成部分.

php windows validation

5
推荐指数
1
解决办法
2100
查看次数

如何在com自动化中启动特定的Excel版本?

我通过COM自动化使用Excel(在c#中),但似乎问题无法控制在盒子上启动的excel版本 - 我们同时使用Excel 9和Excel 11和一组特定的电子表格需要excel 9否则他们不会工作.

我包括excel 9 com参考,但在另一个人机器excel 11开始.我怎样才能解决这个问题 ?

com excel automation

2
推荐指数
1
解决办法
6372
查看次数

将错误视为异常.最好的方法?

我试图弄清楚在PHP中处理错误是否有一个好的或更好的方法,而不是我在下面做的.如果电话有问题,我想抛出异常parse_ini_file.这有效,但是有更优雅的方法来处理错误吗?

public static function loadConfig($file, $type)
{
    if (!file_exists($file))
    {
        require_once 'Asra/Core/Exception.php';
        throw new Asra_Core_Exception("{$type} file was not present at specified location: {$file}");
    }

    // -- clear the error
    self::$__error = null;
    // -- set the error handler function temporarily
    set_error_handler(array('Asra_Core_Loader', '__loadConfigError'));
    // -- do the parse
    $parse = parse_ini_file($file, true);
    // -- restore handler
    restore_error_handler();

    if (!is_array($parse) || is_null($parse) || !is_null(self::$__error))
    {
        require_once 'Asra/Core/Exception.php';
        throw new Asra_Core_Exception("{$type} file at {$file} appears to be    
    }
}
Run Code Online (Sandbox Code Playgroud)

__ loadConfigError …

php exception-handling

3
推荐指数
1
解决办法
2482
查看次数

1047
推荐指数
2
解决办法
91万
查看次数

给定主键选择大量行

我需要从一个更大的表中选择大量的行,这些表是在自动增量标识列上键入的.我有我想要选择的每一行的主键值,但它可能非常大.

通常但并非总是,所选择的行是连续的,因此我实现了一种机制,将select转换为一组范围子句,用于所有聚集在一起的条目([PrimaryKey] BETWEEN 151 AND 217),以及一个回退方法,用IN子句选择所有隔离的条目.

最后我得到了这样的东西

SELECT * FROM Table WHERE ([PrimaryKey] BETWEEN 151 AND 217) OR ([PrimaryKey] BETWEEN 314 AND 378) OR ...
OR [PrimaryKey] IN (1,3,7,14,147...)
Run Code Online (Sandbox Code Playgroud)

这适用于我主要使用大范围的情况,但随着查询变大而崩溃.我只是遇到了一个退化的案例,我有大量的"对"条目,在我放弃它之前,每次尝试描述执行计划的时间超过15分钟,为2个条目生成BETWEEN语句.

我想到的第一件事就是我可以改变开始生成范围的阈值,而不是个别值,超过2(10或许10?),但我想知道是否有更好的解决方案.

sql sql-server

5
推荐指数
1
解决办法
1727
查看次数

在Emacs中,如何在shell-command中插入文件名?

我使用shell-command一个批次(默认绑定到M-!),但我经常对我正在编辑的缓冲区做一些事情.而不是键入缓冲区名称(并且shell命令中没有文件名完成功能,唉!),每当我按下键时,有一个快捷键(比如f3)为我插入该名称是很好的.

问题是我不想全局绑定密钥(我在其他上下文中使用f3进行其他操作),只有在shell-command提示时才在迷你缓冲区中使用.编写一个lisp函数来插入当前缓冲区名称很容易,但是我应该修改哪个模式的键映射来将键绑定到该函数?

或者,是否有任何lisp代码/包在shell-command中提供文件名完成,类似于bash的做法?我知道正常的Mx shell完成了,但是在迷你缓冲区中输入命令的便利性很难放弃;)

编辑:

这就是我想要的,取自怀远的回答,其中一些修正来自http://osdir.com/ml/emacs.sources/2002-04/msg00022.html

(define-key minibuffer-local-map
  [f3] (lambda () (interactive) 
       (insert (buffer-name (current-buffer-not-mini)))))

(defun current-buffer-not-mini ()
  "Return current-buffer if current buffer is not the *mini-buffer*
  else return buffer before minibuf is activated."
  (if (not (window-minibuffer-p)) (current-buffer)
      (if (eq (get-lru-window) (next-window))
          (window-buffer (previous-window)) (window-buffer (next-window)))))
Run Code Online (Sandbox Code Playgroud)

emacs

18
推荐指数
2
解决办法
4845
查看次数