小编Bil*_*ell的帖子

ObservableCollection和Item PropertyChanged

我已经看到很多关于这个问题的讨论,但也许我只是太多的新手才能得到它.如果我有一个可观察的集合,它是msdn示例中的"PersonNames"集合(http://msdn.microsoft.com/en-us/library/ms748365.aspx),如果a PersonName是,我会获得对View的更新添加或删除等.当我更改属性时,我想获得我的视图的更新PersonName.就像我改名字一样.我可以OnPropertyChanged为每个属性实现并让这个类派生出来INotifyPropertyChanged,并且似乎按预期调用.我的问题是,View如何从ObservableCollection更改属性获取更新数据不会导致任何事件ObservableCollection.这可能是非常简单的事情,但为什么我似乎无法找到一个令我惊讶的例子.任何人都可以为我阐明这一点,或者对示例有任何指示我会非常感激.我们在当前的WPF应用程序的多个位置都有这种情况,并且正在努力搞清楚.


"通常,负责显示数据的代码会为PropertyChanged当前显示在屏幕上的每个对象添加一个事件处理程序."

有人可以举个例子说明这意味着什么吗?我查看结合我ViewModel其中有一个ObservableCollection.此集合由RowViewModel具有支持PropertiesChanged事件的属性组成.但我无法弄清楚如何使集合更新自己,以便更新我的视图.

c# observablecollection

47
推荐指数
4
解决办法
6万
查看次数

将WPF ShortCut键绑定到ViewModel中的命令

我有一个使用MVVM模式的WPF应用程序.将按钮连接到VM非常简单,因为它们实现了ICommand.我有一个类似的上下文菜单.下一步是为上下文菜单创建快捷键.我无法弄清楚如何让快捷键调用Command.这是一个例子:

<MenuItem Header="Update" Command="{Binding btnUpdate}" >
    <MenuItem.Icon>
        <Image Source="/Images/Update.png"
               Width="16"
               Height="16" />
        </MenuItem.Icon>
    </MenuItem>
Run Code Online (Sandbox Code Playgroud)

现在我添加了这个:

<Window.InputBindings>
    <KeyBinding Key="U"
                Modifiers="Control" 
                Command="{Binding btnUpdate}" />
</Window.InputBindings>
Run Code Online (Sandbox Code Playgroud)

尝试将快捷键连接到同一个绑定,但这不起作用.错误是:

错误169无法在"KeyBinding"类型的"Command"属性上设置"绑定".'绑定'只能在DependencyObject的DependencyProperty上设置.

有没有办法将此事件连接到命令?我无法弄清楚这一点.

提前致谢!

法案

data-binding shortcuts mvvm

38
推荐指数
3
解决办法
5万
查看次数

Rhino Mocks AAA快速入门?

我一直在寻找有关使用Rhino Mocks 3.5+和AAA语法的一些不错的信息.我发现很多博客都混合了旧的和新的东西,似乎更难以弄清楚如何使用它.

如果有一个像早期版本那样的Rhino Mocks AAA Cheat Sheet,那将会很棒.您是否需要了解有关旧版Rhino的所有内容才能真正使用新版本?我敢肯定,如果我是专家,我会喜欢Rhino的所有功能,但是现在我只是在游泳信息.任何指针或良好的链接将完全赞赏!

c# unit-testing rhino-mocks arrange-act-assert

11
推荐指数
2
解决办法
5486
查看次数

在Robocopy之后,复制的目录和文件在目标驱动器上不可见

我一直很高兴使用robocopy将我的计算机备份到外部USB驱动器.它很棒,因为它只复制已更改/更新/新的文件.我可以把我的外部驱动器带到任何一台机器上,看它就好像它是计算机上的另一个驱动器一样.

我最近购买了750g和另外1tb的外置硬盘.我在周末跑了一个robocopy,复制了大约500克到我的外置硬盘.复制后,我的电脑显示外部驱动器上已使用~500g.奇怪的是,当我在Windows资源管理器中单击该驱动器时,Windows资源管理器的右窗格中没有任何内容(左侧窗格中的+消失).我将一个文件(拖放)复制到此驱动器,它显示在Windows资源管理器中.命令提示符显示相同的内容.1个档案.

我知道文件在驱动器上,因为它显示为自由空间已减少.

我读到我应该确保简单的文件共享是关闭的,它是.我还以管理员身份获得了文件的所有权.依然没有.它在我的WIndows XP机器和Windows 7旗舰机上的工作方式相同.

有没有人见过这个?或者甚至更好,有谁知道我做错了什么或如何解决这个问题?

谢谢!Bill44077

robocopy

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

Ruby on Rails 3教程 - 我在哪里可以找到源代码?

我在书的前面看到源代码是"根据MIT许可证发布"但似乎无法在任何地方找到它.有谁知道它是否可用?我可能只是错过了它在书中的"Ruby on Rails 3教程:通过示例学习Rails"中的版权所有2011版权所有Michael Hartl.谢谢!法案

ruby-on-rails-3

8
推荐指数
1
解决办法
7080
查看次数

VS2012 Express Web无法创建MVC4应用程序

我的机器上安装了VS2012 Express Web,可以创建除MVC3/MVC4应用程序之外的所有不同类型的项目.当我在New Project对话框中单击OK时,我得到Select A Template对话框.我注意到Create a Unit Test Project复选框已禁用.选择任何选项(例如Internet Application)会给出同样的错误:系统找不到指定的文件(HRESULT 0x80070002中的异常).

我已经卸载并删除了C:\ Program Files(x86)\ Microsoft Visual Studio 11.0\Common7\IDE\VWDExpress\ProjectTemplatesCache和ItemsTemplateChache - 并在删除后删除了整个VWDExpress目录,以便全新安装将重新创建所有模板.我已经尝试过web安装程序以及.iso安装程序.有谁见过这个问题或者有什么想法我不能创建MVC3/MVC4项目?

任何想法将不胜感激.我已经发布到MSDN Newgroup,没有任何运气.

比尔,问候

visual-studio-2012

7
推荐指数
1
解决办法
1311
查看次数

确定谁在WPF窗口中有焦点

我们正在使用WPF,并有一个从DockingLibrary派生的窗口.该窗口有一个网格,里面有多个项目,一个是WPF数据网格.我们正在使用MV-VM模式.创建并显示此窗口时,不会选择此数据网格中的任何行.我们可以通过执行以下操作将行显示为突出显示:

  SharedWindow.ShipmentWin.shipmentDataGrid.SelectedIndex = 0;
Run Code Online (Sandbox Code Playgroud)

这会导致数据网格中的第一行显示为突出显示.但是,并没有总是其中之一,这一行不是选中,也没有焦点.我尝试将IsSelected和Focus设置在此行中,如下所示:

  SharedWindow.ShipmentWin.ShipVM.IsSelected = true;
  bool focused = SharedWindow.ShipmentWin.shipmentDataGrid.Focus();
Run Code Online (Sandbox Code Playgroud)

我是否认为这一切都错了,是否有其他方法选择数据网格中的第一行并将焦点设置为它?通常,在创建数据网格时,在用户鼠标单击所需行之前,不会选择任何行.

任何想法将不胜感激.

谢谢!

wpf wpfdatagrid

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

VS2010中的Extension Manager错误?

当我尝试从VS2010 Ultimate打开Extension Manager时出现此错误:

指定的路径,文件名或两者都太长.完全限定的文件名Microsoft Visual Studiomust少于260个字符,目录名称必须少于248个字符.

我之前使用过重置来纠正它:

  1. 重置跳过的包:从提升的命令行提示符处,从"\ Program Files\Microsoft Visual Studio 10.0\Common7\IDE"下运行"devenv/ResetSkipPkgs"

这不再适合我.我也尝试过:

  1. 恢复常规设置:从"工具"菜单中,转到"导入和导出设置".选择"重置设置".如果您已完成任何自定义,请务必备份当前设置.选择"常规设置".完成向导并查看问题是否已解决.

我无法打开我的Extension Manager.

visual-studio-2010

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

RhinoMocks AAA语法

我花了很多时间试图弄清楚为什么简单的RhinoMocks测试不会返回我在返回时设置的值.我确信我只是错过了一些非常简单的东西,但我无法弄明白.这是我的测试:

    [TestMethod]
    public void CopyvRAFiles_ShouldCallCopyvRAFiles_ShouldReturnTrue2()
    {
        FileInfo fi = new FileInfo(@"c:\Myprogram.txt");
        FileInfo[] myFileInfo = new FileInfo[2];
        myFileInfo[0] = fi;
        myFileInfo[1] = fi;
        var mockSystemIO = MockRepository.GenerateMock<ISystemIO>();
        mockSystemIO.Stub(x => x.GetFilesForCopy("c:")).Return(myFileInfo);
        mockSystemIO.Expect(y => y.FileCopyDateCheck(@"c:\Myprogram.txt", @"c:\Myprogram.txt")).Return("Test");
        CopyFiles copy = new CopyFiles(mockSystemIO);

        List<string> retValue = copy.CopyvRAFiles("c:", "c:", new AdminWindowViewModel(vRASharedData));
        mockSystemIO.VerifyAllExpectations();
    }
Run Code Online (Sandbox Code Playgroud)

我有一个我的SystemIO类的接口我正在通过模拟传递给我的CopyFiles类.我在我的FileCopyDatCheck方法上设置了一个期望,并说它应该返回("测试").当我单步执行代码时,它返回一个null insteaed.我在这里缺少什么想法?

这是我的CopyFiles类方法:

    public List<string> CopyvRAFiles(string currentDirectoryPath, string destPath, AdminWindowViewModel adminWindowViewModel)
    {
        string fileCopied;
        List<string> filesCopied = new List<string>();
        try
        {
            sysIO.CreateDirectoryIfNotExist(destPath);

            FileInfo[] files = sysIO.GetFilesForCopy(currentDirectoryPath);

            if (files != null)
            {
                foreach (FileInfo …
Run Code Online (Sandbox Code Playgroud)

rhino-mocks arrange-act-assert

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

Rails 3 - rspec冲突

我正在研究Michael Hartl(2011)的"Ruby on Rails 3教程:通过示例学习Rails",我遇到了与rspec的冲突.现在,当我尝试运行rspec时,我得到:

rspec spec/
/home/bill44077/.rvm/gems/ruby-1.9.2-p136@global/gems/bundler-1.0.7/lib/bundler/runtime.rb:27:in `block in setup': You have already activated rspec-core 2.5.1, but your Gemfile requires rspec-core 2.4.0. Consider using bundle exec. (Gem::LoadError)
Run Code Online (Sandbox Code Playgroud)

我查看了我的Gemfile,我没有看到rspec的修订要求.我试过了

gem uninstall rspec-rails 
bundle install
Run Code Online (Sandbox Code Playgroud)

但这似乎没有帮助.如果我跑

bundle exec rspec spec/ 
Run Code Online (Sandbox Code Playgroud)

工作正常,但我真的想像以前一样运行自动测试,所以我需要让rspec再次工作.

有什么想法我需要做什么来解决这个版本的问题?

谢谢!!法案

gem rubygems ruby-on-rails-3

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