小编Gia*_*cci的帖子

如何拥有多对"View-ViewModel"?

我正在构建一个基于MVVM-Light的应用程序.我需要创建同一个View的多个实例,每个实例都应绑定到自己的ViewModel.

默认情况下将ViewModelLocatorViewModels实现为单例,因此同一View的不同实例将绑定到同一ViewModel.

我可以在VMLocator中创建ViewModel作为非静态对象(就像返回新VM()...一样简单),但这只会对我有所帮助.事实上,我仍然需要跟踪打开的窗口.然而,每个窗口可能会打开其他几个窗口(不同类型).在这种情况下,我可能需要在父View及其所有子项上执行一些操作.例如,在关闭View P之前,我可能想要关闭它的所有子节点(视图C1,视图C2等).

因此,有没有简单易行的方法来实现这一目标?或者你有什么建议我遵循的最佳做法?

提前感谢您的宝贵帮助.

干杯,
Gianluca.

c# wpf mvvm mvvm-light

12
推荐指数
1
解决办法
3575
查看次数

从Blend中的类创建示例数据会抛出"对象引用未设置为对象的实例"

我正在尝试从Expression Blend中的ViewModel类创建一些示例数据.但Expression Blend会停止并说"对象引用未设置为对象的实例".就个人而言,我不明白这个例外的来源.

有没有人知道为什么会这样?

这是我的UsersListViewModel:

[Export]
public class UserListViewModel : ViewModelBase
{
    [ImportingConstructor]
    public UserListViewModel(IUserListView view)
        : base(view)
    {

    }

    private ObservableCollection<UserItem> _userList;

    public ObservableCollection<UserItem> UserList
    {
        get { return _userList; }
        set
        {
            if (_userList != value)
            {
                _userList = value;
                RaisePropertyChanged("UserList");
            }
        }
    }

    private UserItem _selectedUser;

    public UserItem SelectedUser
    {
        get { return _selectedUser; }
        set
        {
            if (_selectedUser != value)
            {
                _selectedUser = value;
                RaisePropertyChanged("SelectedUser");
            }
        }
    }

    private string _searchText;

    public string SearchText
    {
        get …
Run Code Online (Sandbox Code Playgroud)

c# mvvm viewmodel expression-blend mvvm-light

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

DataGridTemplateColumn中的命令绑定

我正在开发一个Silverlight应用程序,它广泛使用Prism,MVVM模式和MEF.出于几个原因,我选择遵循View-first方法.

在其中一个视图中有一个DataGrid,该网格的一个列是DataGridTemplateColumn,它只有一个Button.

我想在Button上定义一个Command和一个CommandParameter.Command应该是ViewModel的DelegateCommand.CommandParameter应该是直接来自dataGrid的SelectedItems列表.

我已经尝试了几种方法来执行此操作,但Command或CommandParameter都为null.

它遵循我最初编写的代码:

<sdk:DataGridTemplateColumn>
    <sdk:DataGridTemplateColumn.CellTemplate>
        <DataTemplate>
            <Button Width="15" Height="15" Content=">" 
                    Command="{Binding UpdateSearchParametersCommand}" 
                    CommandParameter="{Binding SelectedItems, ElementName=dataGrid}">
        </DataTemplate>
    </sdk:DataGridTemplateColumn.CellTemplate>
</sdk:DataGridTemplateColumn>
Run Code Online (Sandbox Code Playgroud)

有人可以告诉我最好的方法是什么?

提前谢谢,Gianluca.

c# silverlight binding mvvm datagridtemplatecolumn

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

给定WPF图像控制,是否可以确定其HWND?

我正在将一个网络摄像头集成到WPF应用程序中.当我将其HANDLE传递给DirectShow函数时,我可以在主窗口中看到摄像头.但这不是我想要的.

主窗体有一个Image控件,我想看看输出.但是,为了做到这一点,我需要控件的Handle.

有关如何做到这一点的任何提示?

提前谢谢,Gianluca.

c# wpf directshow directshow.net

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