【问题标题】:Getting error with the x:datatype in xamlxaml 中的 x:datatype 出错
【发布时间】:2016-06-18 09:35:11
【问题描述】:

我的 xaml 代码

 <Page x:Class="WindowsApp2.Views.MainPage"
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  xmlns:Behaviors="using:Template10.Behaviors"
  xmlns:Core="using:Microsoft.Xaml.Interactions.Core"
  xmlns:Interactivity="using:Microsoft.Xaml.Interactivity"
  xmlns:controls="using:Template10.Controls"
  xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
  xmlns:local="using:WindowsApp2.Views"
  xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
  xmlns:vm="using:WindowsApp2.ViewModels" mc:Ignorable="d">

<Page.DataContext>
    <vm:MainPageViewModel x:Name="ViewModel" />
</Page.DataContext>
   <RelativePanel Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
  <ItemsControl ItemsSource="{x:Bind ViewModel.Detail,Mode=TwoWay}">
        <ItemsControl.ItemTemplate>
            <DataTemplate 
                x:DataType="vm:Details">
                <TextBox Margin="200,200,0,0"
     Text="{x:Bind name,Mode=TwoWay}"></TextBox>
            </DataTemplate>
        </ItemsControl.ItemTemplate>
    </ItemsControl>
</RelativePanel>

我的 MainPageViewModel.cs

 using Template10.Mvvm;
using System.Collections.Generic;
using System;
 using System.Linq;
 using System.Threading.Tasks;
using Template10.Services.NavigationService;
using Windows.UI.Xaml.Navigation;
using WindowsApp2.Views;
namespace WindowsApp2.ViewModels
 {

public class Detail
{
    public string name { get; set; }
    public string pass { get; set; }
}

public class MainPageViewModel : ViewModelBase
{
    public MainPageViewModel()
    {
        if (Windows.ApplicationModel.DesignMode.DesignModeEnabled)
        {
            Value = "Designtime value";
        }

    Details = new List<Detail>();
        for(int i=0;i<5;i++)
        {
            Detail d = new Detail();
            d.name = "kalp"+i.ToString();
            d.pass = "1234"+i.ToString();
            Details.Add(d);
        }
    }
    public List<Detail> Details { get; set; }
}
 }

现在我的问题是我收到错误“名称“Detail”在命名空间“using:WindowsApp2.ViewModels”中不存在。我的 Detail 类是在命名空间 WindowsApp2.ViewModels 中定义的。那么问题出在哪里这里。 注意:我删除了一些与此错误无关的代码

【问题讨论】:

    标签: c# visual-studio xaml win-universal-app uwp-xaml


    【解决方案1】:

    您描述的错误是无法编译的无效绑定的副作用。

    您正在尝试绑定到视图模型属性Detail,该属性确实不存在。您当然想要的是绑定到 Details 属性。

    所以替换

    <ItemsControl ItemsSource="{x:Bind ViewModel.Detail, Mode=TwoWay}">
    

    <ItemsControl ItemsSource="{x:Bind ViewModel.Details, Mode=OneWay}">
    

    这当然也需要有一个

    public MainPageViewModel ViewModel { get; }
    

    MainPage 类中的属性。

    还要注意,TwoWay 绑定到 ItemsSource 属性没有意义。它应该是OneWay,或者可能是默认的OneTime

    【讨论】:

      猜你喜欢
      • 2023-01-16
      • 1970-01-01
      • 2016-12-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-04-13
      相关资源
      最近更新 更多