2012-02-10 3 views
0

У меня простое приложение WP7, я пытаюсь связать с ApplicationBarButtonCommand с помощью Prism DelegateCommand.Ошибка привязки с использованием ApplicationBarButtonCommand и DelegateCommand

Код приведен ниже.

XAML:

<phone:PhoneApplicationPage.ApplicationBar> 
    <shell:ApplicationBar IsVisible="True" IsMenuEnabled="True"> 
     <shell:ApplicationBarIconButton IconUri="/Images/appbar.share.rest.png" Text="Add"/> 
    </shell:ApplicationBar> 
</phone:PhoneApplicationPage.ApplicationBar> 

<wi:Interaction.Behaviors> 
    <i:ApplicationBarButtonCommand ButtonText="Add" CommandBinding="{Binding SaveMessageCommand, Mode=OneWay}" 
            CommandParameterBinding="{Binding CurrentUser.Id}"/> 
</wi:Interaction.Behaviors> 

ViewModel:

общественного ICommand SaveMessageCommand {получить; частный набор; } Класс

public MainViewModel(IDataService dataService, INavigationService navigationService) 
{ 
    //Some initialization goes here 

    SaveMessageCommand = new DelegateCommand<int>(OnSaveMessage); 
} 

private void OnSaveMessage(int userId) 
{ 
    if (_navigationService != null) 
    { 
     // TODO : change 0 to real current user id 
     _navigationService.NavigateTo(new Uri(string.Format(ViewModelLocator.CreateNewMessageUrl, userId), 
        UriKind.Relative)); 
    } 
} 

Пользователь:

public class User : BaseModel 
{ 
    private int _id; 

    public int Id 
    { 
     get { return _id; } 
     set 
     { 
      if (value == _id) 
      { 
       return; 
      } 

      _id = value; 
      RaisePropertyChanged("Id"); 
     } 
    } 
} 

При запуске приложения у меня есть ошибки данных

System.Windows.Data Error: 'MS.Internal.Data.DynamicValueConverter' converter failed to convert value 'Microsoft.Practices.Prism.Commands.DelegateCommand`1[System.Int32]' (type 'Microsoft.Practices.Prism.Commands.DelegateCommand`1[System.Int32]'); BindingExpression: Path='SaveMessageCommand' DataItem='WindowsPhone_Application.ViewModel.MainViewModel' (HashCode=75877085); target element is 'Microsoft.Practices.Prism.Interactivity.ApplicationBarButtonCommand' (Name='null'); target property is 'CommandBinding' (type 'System.Windows.Data.Binding').. System.InvalidOperationException: Can't convert type Microsoft.Practices.Prism.Commands.DelegateCommand`1[System.Int32] to type System.Windows.Data.Binding. 

Любые идеи, что может вызвать проблемы?

Благодаря

ответ

0

Исправлена ​​проблема, проблема была с System.Windows.Interactivity, просто поставить ссылку на другую версию, которая входит в призму

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