使用x:与MvvmCross绑定

时间:2015-12-18 14:11:02

标签: c# mvvm binding mvvmcross uwp

在尝试编写MvvmCross中的TipCalc示例时,我尝试使用x:Bind而不是常规绑定(在通用应用程序编程中)

我背后的代码如下:

public sealed partial class TipView 
{
    public new TipViewModel ViewModel
    {
        get { return (TipViewModel)base.ViewModel; }
        set { base.ViewModel = value; }
    }

    public TipView()
    {
        this.InitializeComponent();
    }
}

我的xaml看起来像这样:

<Grid x:Name="ContentPanel" 
          Margin="12,0,12,0"
          Background="{ThemeResource ApplicationPageBackgroundThemeBrush}"
          >
        <StackPanel>
            <TextBlock
                Text="SubTotal"
                />
            <TextBox 
                Text="{x:Bind ViewModel.SubTotal, Mode=TwoWay}" 
                />
.
.
.

编译时我得到以下错误:

Microsoft.Windows.UI.Xaml.Common.targets(350,5): Xaml Internal Error error WMC9999: Unable to cast object of type 'Microsoft.MetadataReader.MetadataOnlyPropertyInfo' to type 'System.Reflection.MethodInfo'.

我正在使用3.5.1版本的MvvmCross库(最后稳定版)

这是一个错误吗?或者我在这里失踪的东西?

1 个答案:

答案 0 :(得分:3)

我在代码中使用以下语法

public TipViewModel Vm => (TipViewModel) ViewModel;

绑定将是

Text="{x:Bind Vm.SubTotal, Mode=TwoWay}"

不确定为什么会收到错误,您的观点是否继承自MvxWindowsPage