我已经看到很多关于这个问题的讨论,但也许我只是太多的新手才能得到它.如果我有一个可观察的集合,它是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事件的属性组成.但我无法弄清楚如何使集合更新自己,以便更新我的视图.
我有一个使用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上设置.
有没有办法将此事件连接到命令?我无法弄清楚这一点.
提前致谢!
法案
我一直在寻找有关使用Rhino Mocks 3.5+和AAA语法的一些不错的信息.我发现很多博客都混合了旧的和新的东西,似乎更难以弄清楚如何使用它.
如果有一个像早期版本那样的Rhino Mocks AAA Cheat Sheet,那将会很棒.您是否需要了解有关旧版Rhino的所有内容才能真正使用新版本?我敢肯定,如果我是专家,我会喜欢Rhino的所有功能,但是现在我只是在游泳信息.任何指针或良好的链接将完全赞赏!
我一直很高兴使用robocopy将我的计算机备份到外部USB驱动器.它很棒,因为它只复制已更改/更新/新的文件.我可以把我的外部驱动器带到任何一台机器上,看它就好像它是计算机上的另一个驱动器一样.
我最近购买了750g和另外1tb的外置硬盘.我在周末跑了一个robocopy,复制了大约500克到我的外置硬盘.复制后,我的电脑显示外部驱动器上已使用~500g.奇怪的是,当我在Windows资源管理器中单击该驱动器时,Windows资源管理器的右窗格中没有任何内容(左侧窗格中的+消失).我将一个文件(拖放)复制到此驱动器,它显示在Windows资源管理器中.命令提示符显示相同的内容.1个档案.
我知道文件在驱动器上,因为它显示为自由空间已减少.
我读到我应该确保简单的文件共享是关闭的,它是.我还以管理员身份获得了文件的所有权.依然没有.它在我的WIndows XP机器和Windows 7旗舰机上的工作方式相同.
有没有人见过这个?或者甚至更好,有谁知道我做错了什么或如何解决这个问题?
谢谢!Bill44077
我在书的前面看到源代码是"根据MIT许可证发布"但似乎无法在任何地方找到它.有谁知道它是否可用?我可能只是错过了它在书中的"Ruby on Rails 3教程:通过示例学习Rails"中的版权所有2011版权所有Michael Hartl.谢谢!法案
我的机器上安装了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,没有任何运气.
比尔,问候
我们正在使用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)
我是否认为这一切都错了,是否有其他方法选择数据网格中的第一行并将焦点设置为它?通常,在创建数据网格时,在用户鼠标单击所需行之前,不会选择任何行.
任何想法将不胜感激.
谢谢!
当我尝试从VS2010 Ultimate打开Extension Manager时出现此错误:
指定的路径,文件名或两者都太长.完全限定的文件名Microsoft Visual Studiomust少于260个字符,目录名称必须少于248个字符.
我之前使用过重置来纠正它:
这不再适合我.我也尝试过:
我无法打开我的Extension Manager.
我花了很多时间试图弄清楚为什么简单的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) 我正在研究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再次工作.
有什么想法我需要做什么来解决这个版本的问题?
谢谢!!法案
c# ×2
rhino-mocks ×2
data-binding ×1
gem ×1
mvvm ×1
robocopy ×1
rubygems ×1
shortcuts ×1
unit-testing ×1
wpf ×1
wpfdatagrid ×1