标签: mvvm-foundation

在WPF中创建可单击的图像

我想创建一个显示图像的用户控件,并在单击时调用命令.后来我想将这些控件的列表绑定到产品列表.

wpf mvvm clickable-image mvvm-foundation

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

在WPF中使用MVVM拖动鼠标时绘制矩形

下面是我的xaml.我在画布里面有一个图像.我想在图像上拖动鼠标时在图像上绘制矩形.我在WPF中成功完成了它.但现在我想在MVVM中做到这一点.我没有在代码中使用事件处理程序,而是希望将它们放在我的ViewModel中.我正在使用MVVM Foundation来实现MVVM.以下是MVVM Foundation的链接.http://mvvmfoundation.codeplex.com/

任何帮助都非常感谢.

XAML

<Canvas Name="cnvImage">
        <Image Height="348" HorizontalAlignment="Left" Margin="12,39,0,0" Name="imgPreview" 
               Stretch="Fill" VerticalAlignment="Top" Width="443" 
               Source="/Images/CapturedImage.png" 
                MouseDown="imgCamera_MouseDown" MouseMove="imgCamera_MouseMove" MouseUp="imgCamera_MouseUp" />
    </Canvas>
Run Code Online (Sandbox Code Playgroud)

用代码写的代码

// This is the rectangle to be shown when mouse is dragged on camera image.
private Point startPoint;
private Rectangle rectSelectArea;


/// <summary>
/// 
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void imgCamera_MouseDown(object sender, MouseButtonEventArgs e)
{
    startPoint = e.GetPosition(cnvImage);

    // Remove the drawn rectanglke if any.
    // At a time only one …
Run Code Online (Sandbox Code Playgroud)

.net c# wpf mvvm mvvm-foundation

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

MVVM Foundation与MVVM Toolkit

有人可以解释MVVM FoundationMVVM Toolkit之间的差异吗?他们似乎有很多共同之处.

.net mvvm-foundation mvvm-toolkit

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

C#:从超过1个类扩展

假设我有一个ViewModel TabViewModel,它扩展ObservableObject了MVVM Foundation Framework中ViewModels的类.然后我也有一个EditorTabViewModel扩展TabViewModel,现在我需要扩展DependencyObject来实现DependencyProperties.我不能超过1班.我该如何实现呢?我可以有一个"中间"类,如......

TabViewModel : ObservableObject

EditorTabViewModel : TabViewModel

DependentEditorTabViewModel : DependencyObject
Run Code Online (Sandbox Code Playgroud)

但那是一个额外的不必要的课程.有更好的方法吗?

UPDATE

Ops实际上我不能做到以上.DependentEditorTabViewModel仍然需要扩展EditorTabViewModel ...除了DependencyObject

c# wpf dependency-properties mvvm mvvm-foundation

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

MVVM Light Toolkit - RelayCommands,DelegateCommands和ObservableObjects

我刚开始尝试使用Laurent Bugnion的MVVM Light Toolkit.我想我会非常喜欢它,但我有几个问题.

在我找到他们之前,让我解释一下我来自哪里.我目前使用Josh Smith的MVVM Foundation和Codeplex上另一个名为MVVM Toolkit的项目.我使用ObservableObjectMessenger从MVVM基金会DelegateCommand,并CommandReference从MVVM工具包.

MVVM Foundation和MVVM Tookit之间唯一真正的重叠是它们都有一个实现ICommand:MVVM Foundation RelayCommand和MVVM Tookit DelegateCommand.在这两个中,DelegateCommand似乎更复杂.它使用一个CommandManagerHelper使用弱引用来避免内存泄漏.

话虽如此,这是我的问题:

  1. 为什么MVVM Light使用RelayCommand而不是DelegateCommand?是否使用弱引用是ICommand不必要的还是因某些原因不推荐?

  2. 为什么ObservableObjectMVVM Light中没有?ObservableObject基本上只是该ViewModelBase实现的一部分INotifyPropertyChanged,但是作为一个单独的类非常方便,因为视图模型不是唯一需要实现的对象INotifyPropertyChanged.例如,假设您有一个绑定到Person对象列表的DataGrid .如果Person在用户查看DataGrid时可以更改任何属性,则Person需要实现INotifyPropertyChanged.(我意识到如果Person使用类似LinqToSql的东西自动生成,它可能已经实现了INotifyPropertyChanged,但是有些情况下我需要制作特定于视图的实体模型对象版本,比如说,因为我需要包含一个命令来支持DataGrid中的按钮列.)

谢谢.

PS以下是DelegateCommandMVVM Toolkit 的代码:

https://docs.google.com/document/pub?id=1ApCx5SbCfHi5fBhv8Ki3zA6j34sp2t80LQZdj89v8cU

wpf mvvm mvvm-foundation mvvm-light

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

使用MVVM Foundation Messenger显示对话框

我正在构建一个WPF应用程序并尝试符合MVVM最佳实践.我正在使用MVVM Foundation框架,并注意到我读过的Messenger类应该用于处理WPF中的对话框.这听起来很棒,但我完全不了解如何使用Messenger来实现此目的.从字面上看,我想要做的就是打开一个模态关于对话框 - 我不需要来回传递任何消息.

Messenger类的目的是用于对话框需要来自其父级的消息,还是将消息返回给其父级的情况?关于对话框是否有点过分?如果只是将代码添加到事件处理程序以显示对话框,我会更好吗?

wpf dialog mvvm mvvm-foundation messenger

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

MVVM ViewModel查看消息传递

MVVM问题.ViewModel和View之间的消息传递,如何最好地实现?

该应用程序有一些"用户通信"点,例如:"您已为此选择输入了注释.当"是/否/ NA"选择的值发生变化时,您是希望保存还是"丢弃".所以我需要一些被禁止的View绑定到ViewModel的"消息"的方式.

我从MVVM Foundation的Messenger开始走下去.然而,这更像是系统范围的广播,而不是事件/订户模型.因此,如果应用程序有两个View实例(Person1 EditView和Person2 EditView)打开,当一个ViewModel发布"您要保存"消息时,它们都会收到消息.

你用了什么方法?

谢谢安迪

wpf mvvm mvvm-foundation

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

MVVM Foundation:为什么在定义为RelayCommand时返回ICommand

我正在使用MVVM Foundation的SampleModel项目.Wwh ICommand_decrementCommand声明为时返回RelayCommand.我知道RelayCommand继承ICommand但不会更清楚只返回一个RelayCommand

public ICommand DecrementCommand {
    get { return _decrementCommand ?? (_decrementCommand = new RelayCommand(() => --this.Value)); }
}
RelayCommand _decrementCommand;
Run Code Online (Sandbox Code Playgroud)

c# mvvm mvvm-foundation

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

在MVVM中显示对话框并设置对话框选项

我只是想知道这是在MVVM中显示对话框的方式吗?

public ICommand OpenFileCommand
{
    get
    {
        if (_openFileCommand == null) {
            _openFileCommand = new RelayCommand(delegate
            {
                var strArr = DialogsViewModel.GetOpenFileDialog("Open a file ...", "Text files|*.txt | All Files|*.*");
                foreach (string s in strArr) {
                    // do something with file
                }
            });
        }
        return _openFileCommand;
    }
}

public class DialogsViewModel {
    public static string[] GetOpenFileDialog(string title, string filter)
    {
        var dialog = new OpenFileDialog();
        dialog.Title = title;
        dialog.Filter = filter;
        dialog.CheckFileExists = true;
        dialog.CheckPathExists = true;
        dialog.Multiselect = true;
        if …
Run Code Online (Sandbox Code Playgroud)

c# wpf mvvm mvvm-foundation

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

什么 MVVM 框架适合?

我知道在这个线程中引入的一些 Mvvm 框架

请描述或给我链接它们有什么用?不是关于 MVVM 框架的 MVVM 信息。谢谢 :) 我想知道:什么是 MVVM 框架?

wpf mvvm mvvm-foundation

0
推荐指数
1
解决办法
720
查看次数