【发布时间】:2015-12-10 13:10:30
【问题描述】:
我正在使用 MVVM 开发第一个应用程序。我关注了this link for navigation。在 Lawrence A. Contreras 的回答中,我使用了第一种导航方法,但收到 Command not found 错误。我的代码是
<ListView x:Name="lstItem" Grid.Row="1" ItemsSource="{Binding OrdersObject.data.orders}" ItemTemplate="{StaticResource DueOrderTemplate}" ItemContainerStyle="{StaticResource StretchItemStyle}">
<Interactivity:Interaction.Behaviors>
<Core:EventTriggerBehavior EventName="SelectionChanged">
<Core:InvokeCommandAction CommandParameter="{Binding SelectedItem, ElementName=lstItem}" Command="{Binding SelectedOrderCommand}"/>
</Core:EventTriggerBehavior>
</Interactivity:Interaction.Behaviors>
</ListView>
而cs是
var OrdersObj = new ViewModels.OrdersVM();
OrdersObj.SelectedOrderCommand = new RelayCommand<Models.OOrderM>((itemParam) =>
{
if (itemParam != null)
this.Frame.Navigate(typeof(OrderEditP), itemParam);
});
await OrdersObj.GetOrders("pending");
this.DataContext = OrdersObj;
我的视图模型是
class OrdersVM
{
RelayCommand<OOrderM> _slectedOrderCommand;
public RelayCommand<OOrderM> SelectedOrderCommand;
}
我哪里出错了?我没有使用任何库,也不想使用,所以我试图避免实现 INavigation 服务。因此,如果无法通过这种方式,我将欢迎任何其他建议。
我收到的错误是
BindingExpression 路径错误:在“App.ViewModels.OrdersVM、应用程序、版本=1.0.0.0、文化=中性、PublicKeyToken=null”上找不到“SelectedOrderCommand”属性。 BindingExpression: Path='SelectedOrderCommand' DataItem='App.ViewModels.OrdersVM, ShopkeeperApp, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null';目标元素是'Microsoft.Xaml.Interactions.Core.InvokeCommandAction'(名称='null');目标属性是“命令”(输入“ICommand”)
【问题讨论】:
-
错误信息的确切文本是什么?您在哪里确切地得到错误?请提供一个好的minimal reproducible example 可靠地重现问题。