小编Len*_*nik的帖子

使用WPF MV-VM模式显示弹出窗口的正确方法

在弹出窗口方面,我对VM的职责有疑问.当应用程序弹出消息框或某种对话框(使用MVVM)时,我们拥有的两个选项是:

  1. 将UI(ShowDialog())代码放入虚拟机中看起来很糟糕
  2. 让VM发送一些UI可以订阅的事件并在后面的代码中显示一个对话框(但我们正在努力争取零代码:))

你们是怎么解决这个案子的?

wpf design-patterns popup mvvm

9
推荐指数
1
解决办法
6363
查看次数

使用具有换行符的列在MySQL中导出表

我对SQL很缺乏经验,所以对我的问题应该有一个简单的解决方案:我在一个以逗号分隔的文件中选择一个表,而TEXT类型的列有换行符,所以当我尝试将我的csv导入Excel时,它会在换行符后面的每一段文本中创建单独的行.

这是我的查询:

SELECT * FROM `db`.`table` INTO OUTFILE 'c:\\result.txt' FIELDS TERMINATED BY ','
ESCAPED BY '\\' OPTIONALLY ENCLOSED BY '"'  LINES TERMINATED BY '\r\n' ;
Run Code Online (Sandbox Code Playgroud)

然后在Excel中我导入为逗号分隔文件,这会导致包含带换行符的文本的列出现问题.

任何帮助表示赞赏!

mysql sql into-outfile

9
推荐指数
1
解决办法
1万
查看次数

INotifyPropertyChanged:场景背后会发生什么?

在WPF中,我们有两个线程(至少):呈现和UI线程.当我在某些属性更改时引发事件OnNotifyPropertyChanged时,它会在UI线程上引发.需要将此信息分派到WPF呈现线程以进行重新呈现.我假设它以同步方式完成(Dispatcher.Invoke),但它是如何工作的?

如果我为同一数据结构引发了多个OnNotifyPropertyChanged事件而没有锁定对已经引发这些事件的数据结构的访问器属性的访问,那么我是否会创建潜在的竞争条件?我已经看到臭名昭着的"集合被修改;枚举操作可能无法执行"来自WPF的异常,所以它看起来像WPF异步处理这些事件.我误解了这个例外吗?谢谢!

wpf multithreading inotifypropertychanged

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

使用命名管道与StreamWriter异步

我正在尝试使用StreamWriter在命名管道上发送字符串,但StreamWriter类仅提供同步操作.我可以使用NamedPipeServerStream类的BeginWrite方法,但我想知道为什么没有允许异步操作的编写器类.我错过了一些明显的东西吗

.net c# named-pipes .net-3.5

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

intellitrace独立录像机

我知道Test Case Management应用程序会静默记录intellitrace数据转储文件(http://blogs.msdn.com/jennifer/archive/2008/12/05/visual-studio-team-system-vsts-2010-making-testing- easy.aspx)

我很好奇是否有一个允许记录intellitrace日志的独立版本(例如可以放在托盘窗口中的东西).

historical-debugging intellitrace

4
推荐指数
1
解决办法
1484
查看次数

懒惰的单例初始化

在阅读Jon Skeet关于C#中单例的文章时,我开始想知道为什么我们首先需要延迟初始化.似乎文章中的第四种方法应该足够了,这里仅供参考:

public sealed class Singleton
{
    static readonly Singleton instance=new Singleton();

    // Explicit static constructor to tell C# compiler
    // not to mark type as beforefieldinit
    static Singleton()
    {
    }

    Singleton()
    {
    }

    public static Singleton Instance
    {
        get
        {
            return instance;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

在极少数情况下,在单例上有其他静态方法,延迟初始化可能有好处,但这不是一个好的设计.

那么人们可以告诉我为什么懒惰的初始化是如此热门的事情?

.net c# singleton design-patterns

3
推荐指数
2
解决办法
4573
查看次数

xcopy/exclude问题

我正在尝试运行复制除.obj等文件的xcopy.我所看到的是当我的excludes.txt文件包含.obj作为扩展名时,不会复制Microsoft.Practices.ObjectBuilder.dll.删除.obj后,我正确复制了Microsoft.Practices.ObjectBuilder.dll.但这不会发生在其他dll上.

有谁知道为什么会这样?

谢谢!

Lenik

windows xcopy batch-file

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

在WPF中调用Dispatcher的问题

我有一些需要从我的后台演示者线程更新的UI代码.所以,我执行以下操作:从我的后台线程,我在UI中设置我的属性:

_ui.ConnectionStatus = "A";
Run Code Online (Sandbox Code Playgroud)

然后,我的设置如下:

public string ConnectionStatus
{
    set
    {
        if (Dispatcher.CheckAccess())
            ConnectionStatusTxt.Content = value;
        else
        {
            Dispatcher.Invoke(DispatcherPriority.Normal, (Action)(() =>
                              {ConnectionStatusTxt.Content = value;}));
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

The calling thread cannot access this object because a different thread owns it.

我的理解是Dispatcher负责调用不同的线程,所以这个错误让我感到困惑.谢谢!

c# wpf multithreading dispatcher

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