gpt4 book ai didi

Xaml 绑定(bind)在模板 10 应用程序中看不到 ViewModel

转载 作者:行者123 更新时间:2023-12-01 13:40:03 25 4
gpt4 key购买 nike

我正在使用最新的 Template 10 VS 扩展来创建 UWP Windows 10 移动应用。我已经更新了模板以使用 IOC (Autofac),以便在 app.xaml.cs 覆盖的 INavigable ResolveForPage(Page page, NavigationService) 方法中解析 ViewModel。我还更新了 Page 类,每个类都有一个 ViewModel 属性,例如:

public sealed partial class LoginPage : Page
{
private LoginPageViewModel _viewModel;

public LoginPageViewModel ViewModel => _viewModel ?? (_viewModel = (LoginPageViewModel)DataContext);

public LoginPage()
{
InitializeComponent();
NavigationCacheMode = Windows.UI.Xaml.Navigation.NavigationCacheMode.Enabled;
}
}

直到现在这一切都很好,因为我只在 View 中使用了 x:Bind 并且到 View 模型的绑定(bind)有效。自从我安装了 Template 10 验证包后,我更新了一些 View 以使用旧的 Binding 方法,例如

<validate:ControlWrapper PropertyName="Password">
<TextBox x:Name="Password"
HorizontalAlignment="Left"
Margin="10,220,0,0"
TextWrapping="Wrap"
Text="{Binding ViewModel.LoginModel.Password, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
VerticalAlignment="Top"
Width="{StaticResource FieldWidth}"
Height="60"
PlaceholderText="Password"
FontSize="24"
InputScope="Password">
<Interactivity:Interaction.Behaviors>
<Core:EventTriggerBehavior>
<Behaviors:FocusAction />
</Core:EventTriggerBehavior>
</Interactivity:Interaction.Behaviors>
</TextBox>
</validate:ControlWrapper>

我遇到的这个问题是文本绑定(bind) Text="{Binding ViewModel.LoginModel.Password, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" 无法使用错误 由于 DataContext 未知,无法解析符号 ViewModel

由于我是 UWP 的新手,我想我缺少一些必需的配置来确保将 DataContext 设置为正确的 ViewModel。我确实尝试在 app.xaml.cs 构造函数中添加 DataContext = this 但这没有用。

谁能告诉我我遗漏了拼图的哪一部分?

最佳答案

在这里查看新 x:Bind 和旧 Binding 之间的区别 difference-between-binding-and-xbind .根据错误消息,旧绑定(bind)正在页面的 DataContext 上寻找名为“ViewModel”的属性。但是 DataContext 的类型是“LoginPageViewModel”,属性是“LoginModel”?因此,如果我是对的,您需要将文本绑定(bind)更改为类似

Text="{Binding LoginModel.Password, Mode=...

我认为这应该是引导您朝着正确方向前进的良好开端;)

也有助于学习和理解新旧绑定(bind)之间的区别:data-binding-in-depth

关于Xaml 绑定(bind)在模板 10 应用程序中看不到 ViewModel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41060845/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com