这基本上是一个数据绑定问题。
简单地说,我有一个ListView生成的项目,并使用DataTemplate来展示这些项目。但是,在DataTemplate中,DataContext更改为正在使用的x:DataType,因此我无法访问位于代码隐藏C#文件中的属性,甚至访问ViewModel中包含的属性。希望我在这里清楚:
<ListView
x:Name="MyListView"
ItemsSource="{x:Bind mainViewModel.AdvancedNoteCollection, Mode=OneWay}">
<ListView.ItemTemplate>
<DataTemplate x:DataType="Models:Note">
<Grid>
<TextBlock Text="{ When trying to bind, I am stuck within the DataContext of the Note data type! }" />
</Grid>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
然而,实际上,我的DataTemplate位于外部ResourceDictionary文件中,这使我的情况更具挑战性。外部ResourceDictionary DOES有自己的代码隐藏文件,除了传统的绑定之外,它允许我使用x:Bind。