草庐IT

c# - MVVM 光 : how to unregister Messenger

我喜欢MVVMLight的Messenger及其灵active,但是当我忘记显式注销收件人时(在Silverlight4中),我遇到了内存泄漏问题。原因解释here,但我对此表示满意,因为我认为无论如何显式注销收件人而不是依赖Messenger对弱引用的使用是一种很好的做法。问题是说起来容易做起来难。ViewModels很简单:您通常可以完全控制它们的生命周期并且可以Cleanup()在不再需要它们时使用它们。另一方面,Views比较棘手,因为它们是通过DataTemplates实例化和销毁的。对于前。你可以想到一个ItemsControl与MyView作为DataTemplate,绑

c# - MVVM 光 : how to unregister Messenger

我喜欢MVVMLight的Messenger及其灵active,但是当我忘记显式注销收件人时(在Silverlight4中),我遇到了内存泄漏问题。原因解释here,但我对此表示满意,因为我认为无论如何显式注销收件人而不是依赖Messenger对弱引用的使用是一种很好的做法。问题是说起来容易做起来难。ViewModels很简单:您通常可以完全控制它们的生命周期并且可以Cleanup()在不再需要它们时使用它们。另一方面,Views比较棘手,因为它们是通过DataTemplates实例化和销毁的。对于前。你可以想到一个ItemsControl与MyView作为DataTemplate,绑

c# - WPF 使用 MVVM 模式在 View 中导航

我正在使用MVVM模式构建我的第一个WPF。在这个社区的帮助下,我设法创建了我的模型、我的第一个ViewModel和View。现在我想为设计基本应用程序布局界面的应用程序添加一些复杂性。我的想法是至少有2个subview和一个主视图,并在多个XAML上将它们分开:Main.XAMLProducts.XAMLClients.XAMLMain将有一个菜单和一个空间来加载subview(产品和客户)。现在遵循MVVM模式,View之间的所有导航逻辑都应该写在ViewModel上。所以我的想法是拥有4个ViewModel:MainViewModelProductsViewModelClient

c# - WPF 使用 MVVM 模式在 View 中导航

我正在使用MVVM模式构建我的第一个WPF。在这个社区的帮助下,我设法创建了我的模型、我的第一个ViewModel和View。现在我想为设计基本应用程序布局界面的应用程序添加一些复杂性。我的想法是至少有2个subview和一个主视图,并在多个XAML上将它们分开:Main.XAMLProducts.XAMLClients.XAMLMain将有一个菜单和一个空间来加载subview(产品和客户)。现在遵循MVVM模式,View之间的所有导航逻辑都应该写在ViewModel上。所以我的想法是拥有4个ViewModel:MainViewModelProductsViewModelClient

c# - WPF MVVM 加载时的焦点字段

我有一个View,它有一个TextBox和下面的几个Button。当窗口加载时,我希望TextBox具有焦点。如果我不使用MVVM,我会在Loaded事件中调用TextBox.Focus()。但是,我的ViewModel不知道我的View,所以我如何在不将代码放入我的View代码隐藏的情况下完成此操作?编辑:阅读答案后,我决定将这段代码放在Viewxaml中如果这不是初始页面焦点,我可能会推荐JonGalloway的答案,因为它可以从ViewModel控制。 最佳答案 如果它让您感觉更好(它让我感觉更好),您可以使用附加属性在Xam

c# - WPF MVVM 加载时的焦点字段

我有一个View,它有一个TextBox和下面的几个Button。当窗口加载时,我希望TextBox具有焦点。如果我不使用MVVM,我会在Loaded事件中调用TextBox.Focus()。但是,我的ViewModel不知道我的View,所以我如何在不将代码放入我的View代码隐藏的情况下完成此操作?编辑:阅读答案后,我决定将这段代码放在Viewxaml中如果这不是初始页面焦点,我可能会推荐JonGalloway的答案,因为它可以从ViewModel控制。 最佳答案 如果它让您感觉更好(它让我感觉更好),您可以使用附加属性在Xam

c# - 绑定(bind)数据网格列可见性 MVVM

.Net3.5我知道列不会继承数据上下文,通过阅读其他帖子我认为这可行:Visibility="{BindingRelativeSource={x:StaticRelativeSource.Self},Path=(FrameworkElement.DataContext).IsColumnNameVisible,Converter={StaticResourceboolToVisConverter}}"然而当然不是..输出窗口没有提示,似乎我找到了资源,但viewmodel属性调用较新。这是整个DG:我几乎阅读了这个问题的每一个解决方案,但没有任何效果..

c# - 绑定(bind)数据网格列可见性 MVVM

.Net3.5我知道列不会继承数据上下文,通过阅读其他帖子我认为这可行:Visibility="{BindingRelativeSource={x:StaticRelativeSource.Self},Path=(FrameworkElement.DataContext).IsColumnNameVisible,Converter={StaticResourceboolToVisConverter}}"然而当然不是..输出窗口没有提示,似乎我找到了资源,但viewmodel属性调用较新。这是整个DG:我几乎阅读了这个问题的每一个解决方案,但没有任何效果..

c# - ICommand MVVM 实现

因此,在我正在执行的这个特定MVVM实现中,我需要几个命令。我真的厌倦了一个一个地实现ICommand类,所以我想出了一个解决方案,但我不知道它有多好,所以非常感谢这里任何WPF专家的输入。如果您能提供更好的解决方案,那就更好了。我所做的是一个ICommand类和两个将对象作为参数的委托(delegate),一个委托(delegate)是void(对于OnExecute),另一个是bool(对于OnCanExecute)。因此,在我的ICommand(由ViewModel类调用)的构造函数中,我发送了两个方法,并在每个ICommand方法上调用委托(delegate)的方法。它的效果非

c# - ICommand MVVM 实现

因此,在我正在执行的这个特定MVVM实现中,我需要几个命令。我真的厌倦了一个一个地实现ICommand类,所以我想出了一个解决方案,但我不知道它有多好,所以非常感谢这里任何WPF专家的输入。如果您能提供更好的解决方案,那就更好了。我所做的是一个ICommand类和两个将对象作为参数的委托(delegate),一个委托(delegate)是void(对于OnExecute),另一个是bool(对于OnCanExecute)。因此,在我的ICommand(由ViewModel类调用)的构造函数中,我发送了两个方法,并在每个ICommand方法上调用委托(delegate)的方法。它的效果非