仅在编译时在 DataContext 中找不到 Xamarin VS2022 成员
Xamarin VS2022 Member not found in DataContext only at compile time
(注意我注释掉了从 <!--<ListView.ItemTemplate>
开始的所有内容)
如果我取出注释块并尝试 运行 代码,我会得到编译器错误
“
Member not found in DataContext
XFC0045 Binding: Property "SyllabusNumber" not found on "ViewModels.FlightViewModel"
".
注意:不仅是 SyllabusNumber,任何字段都会失败,但它只会捕获第一个。
如果我 运行 它的代码被注释掉,应用程序将启动并向我显示 object.tostring() 文本项列表“models.LessonModel”。当应用程序正在 运行ning 时,我取消注释代码并使用热重载,一切正常。
window 的 DataContext 设置为 ViewModel,Lessons 是 VM 中的一个 public ObservableCollection。与 VM 的所有其他绑定都按预期正常工作。我已将所有访问修饰符设置为 'public'。我已经在 VS2022 和 VS2022 Preview 中尝试过了。
<ListView x:Name="listView" ItemsSource="{Binding Lessons}" Margin="30" >
<!--<ListView.ItemTemplate>
<DataTemplate>
<ViewCell>
<StackLayout BackgroundColor="#eee" Orientation="Horizontal">
--><!-- <Image Source="{Binding image}" /> --><!--
<StackLayout Orientation="Vertical">
<StackLayout Orientation="Horizontal">
<Label Text="{Binding SyllabusNumber}" TextColor="#ddd" BackgroundColor="#333" Padding="5,0,5,0"/>
<Label Text="{Binding Name}" TextColor="#333" />
</StackLayout>
<Label Text="{Binding Description}" TextColor="#666" />
</StackLayout>
</StackLayout>
</ViewCell>
</DataTemplate>
</ListView.ItemTemplate>-->
</ListView>
从 XAML 中删除 x:DataType
属性。出于某种原因,对整个页面执行此操作会导致具有自己的上下文的模板化控件出现问题。
(注意我注释掉了从 <!--<ListView.ItemTemplate>
开始的所有内容)
如果我取出注释块并尝试 运行 代码,我会得到编译器错误 “
Member not found in DataContext XFC0045 Binding: Property "SyllabusNumber" not found on "ViewModels.FlightViewModel"
".
注意:不仅是 SyllabusNumber,任何字段都会失败,但它只会捕获第一个。
如果我 运行 它的代码被注释掉,应用程序将启动并向我显示 object.tostring() 文本项列表“models.LessonModel”。当应用程序正在 运行ning 时,我取消注释代码并使用热重载,一切正常。
window 的 DataContext 设置为 ViewModel,Lessons 是 VM 中的一个 public ObservableCollection。与 VM 的所有其他绑定都按预期正常工作。我已将所有访问修饰符设置为 'public'。我已经在 VS2022 和 VS2022 Preview 中尝试过了。
<ListView x:Name="listView" ItemsSource="{Binding Lessons}" Margin="30" >
<!--<ListView.ItemTemplate>
<DataTemplate>
<ViewCell>
<StackLayout BackgroundColor="#eee" Orientation="Horizontal">
--><!-- <Image Source="{Binding image}" /> --><!--
<StackLayout Orientation="Vertical">
<StackLayout Orientation="Horizontal">
<Label Text="{Binding SyllabusNumber}" TextColor="#ddd" BackgroundColor="#333" Padding="5,0,5,0"/>
<Label Text="{Binding Name}" TextColor="#333" />
</StackLayout>
<Label Text="{Binding Description}" TextColor="#666" />
</StackLayout>
</StackLayout>
</ViewCell>
</DataTemplate>
</ListView.ItemTemplate>-->
</ListView>
从 XAML 中删除 x:DataType
属性。出于某种原因,对整个页面执行此操作会导致具有自己的上下文的模板化控件出现问题。