2015-12-09 2 views
0

Я создаю UserControl в WPF с использованием шаблона MVVM.UserControl Command Binding в WPF с использованием шаблона MVVM

Я создаю UserControl с его ViewModel, мне нужно связать команды кнопки в UserControl в ViewModel этого. Но я не могу это сделать, пожалуйста, помогите мне, если кто-то столкнулся с этой ситуацией. Спасибо заранее.

+0

Просьба поделиться своим кодом, что вы сделали до сих пор. – adminSoftDK

ответ

0

UserControl:

<UserControl x:Class="Project.Views.TestView" 
     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
     xmlns:vm="clr-namespace:Project.ViewModels"> 

    <UserControl.DataContext> 
    <vm:TestViewModel/> 
    </UserControl.DataContext> 

    <Button Command="{binding Path=TestCommand}" Contect="Test"/> 
</UserControl> 

ViewModel:

namespace Project.ViewModels 
{ 
    public class TestViewModel 
    { 
    public ICommand TestCommand{ get;set; } 

    public TestViewModel() 
    { 
     TestCommand = new RelayCommand(TestCommand_OnClick) //your Icommand implementation 
    } 

    void TestCommand_OnClick(object obj) 
    { 
     MessageBox.Show("Clicked the Test button"); 
    } 
    } 
} 

Это будет работать. Вы можете добавить пользовательский контроль, в котором вы нуждаетесь.

+0

Спасибо за ответ Nawed. Если я поставлю этот пользовательский элемент управления в ItemsControl, я не смогу связать данные с ним. Если я поместил его вне itemcontrol, он будет работать путем привязки с помощью ElementName/RelativeSource, но не работает для ItemsControl. –

+0

Возможно, вам стоит показать какой-то код, к чему вы подходите? Возможно, тогда я смогу направить вас правильно. –

Смежные вопросы