5

Tôi không thể sử dụng EventToCommand trong Ứng dụng Windows Phone 8.1 của mình.Windows Phone 8.1 - MVVMLight - Tại sao EventToCommad không hoạt động?

xmlns:i="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity" 
xmlns:cmd="clr-namespace:GalaSoft.MvvmLight.Command;assembly=GalaSoft.MvvmLight.Extras.WP8" 

tôi đã cố gắng nó cũng với lắp ráp = GalaSoft.MvvmLight.Extras.WP81 ...

<controls:PivotItem Name="pivotItem"> 
<i:Interaction.Triggers> 
    <i:EventTrigger EventName="SelectionChanged"> 
     <cmd:EventToCommand Command="{Binding SelectServiceCommand}" 
          CommandParameter="{Binding SelectedIndex,         ElementName=pivotItem}"/> 
    </i:EventTrigger> 
    <!-- other stuff --> 
</i:Interaction.Triggers> 

tôi nhận được erros sau:

  • Các thành viên " Trình kích hoạt "không được nhận dạng hoặc không thể truy cập được.
  • Unknown gõ 'EventTrigger' trong không gian tên XML 'clr-namespace: System.Windows.Interactivity; lắp ráp = System.Windows.Interactivity'
  • Lỗi 2 Thuộc tính gắn thêm 'Triggers' không được tìm thấy trong loại 'Tương tác'. ...

Ai đó có thể giúp tôi không?

Trả lời

4

Bạn đang nhắm đến loại điện thoại Windows Phone 8.1 hoặc WinDrive (Universal Apps)?

Nếu bạn đã chọn tùy chọn thứ hai, thì trong tác giả này blog post MVVM Light giải thích sự thiếu hỗ trợ cho EventToCommand - về cơ bản trong WinRT đã có một cơ chế tương tự với EventToCommand - Behaviors.

+0

Bạn có biết các giải pháp liên quan đến tình hình đầu tiên (nhắm mục tiêu Silverlight 8.1)? Tôi tạo ra một dự án WP 8.1 mới và thêm mvvm máng nhẹ máng nước NuGet nhưng "EventToCommand" từ "GalaSoft.MvvmLight.Command" không được tìm thấy. Cảm ơn! –

1

Khi nâng cấp ứng dụng WP8.0 của tôi để sử dụng MVVMLight 5.0+ tắt hành vi EventToCommand, tìm kiếm của tôi cho một giải pháp đã đưa tôi đến số này blog post cung cấp mã nguồn để thực hiện Lệnh tùy chỉnh. . Việc triển khai mã trả lại ứng dụng của tôi cho đơn hàng hoạt động !!

Hy vọng điều này giúp bạn ra ngoài: D

3

Windows Phone 8,1

Windows 8.1 Behavior SDK: How to use InvokeAction with InputConverter to pass arguments to a Command

Microsoft đã phát triển chức năng EventToCommand riêng của nó. Nó nằm trong Behaviors SDK. Ai đó trên stackoverflow nói để có được SDK này thông qua Nuget. Nếu bạn không thể tìm thấy gói trong NuGet - hãy tải nó trong Add reference dialog.

enter image description here (My "Thêm tài liệu tham khảo" hộp thoại có thể khác với ban đầu vì Productivity Power Tools mở rộng)

Dưới đây là ví dụ về cách sử dụng đơn giản:

<ListBox ItemsSource="{Binding Persons, Mode=OneWay}" 
     SelectedItem="{Binding SelectedPerson, Mode=TwoWay}"> 
    <interactivity:Interaction.Behaviors> 
     <core:EventTriggerBehavior EventName="SelectionChanged"> 
      <core:InvokeCommandAction Command="{Binding DisplayPersonCommand}" /> 
     </core:EventTriggerBehavior> 
    </interactivity:Interaction.Behaviors> 
</ListBox> 
Các vấn đề liên quan