完全是.Net MAUI的新手。
我有下面的“model”(应用程序数据)类,它包含一个KeyValuePair〈String,String〉列表的属性,如下所示:
public class app_data
{
private Int32 m_num_fld;
private List<KeyValuePair<String, String>> m_kvp_list;
public app_data()
{
m_num_fld = 100
m_kvp_list = new List<KeyValuePair<String, String>>()
{
new KeyValuePair<String, String>( "Key 1", "Value 1" ),
new KeyValuePair<String, String>( "Key 2", "Value 2" )
};
}
public Int32 num_fld
{
get => m_num_fld;
set => m_num_fld = value;
}
public List<KeyValuePair<String, String>> kvp_list
{
get => m_post_data_kv_list;
set => m_post_data_kv_list = value;
}
}
在XAML(如下所示)中,如何在app_data中“绑定”kvp_list以显示键和值?如果有人可以发布一个分步示例或链接到类似的问题,这将非常有帮助。
<CollectionView ItemsSource="{Binding ????? }">
<CollectionView.ItemTemplate>
<DataTemplate>
<Grid
RowDefinitions="*,*"
ColumnDefinitions="3*, *"
RowSpacing="5">
<Label
Text="{ ????? - HOW TO BIND TO Key in kvp_list }"
Grid.Row="0"
Grid.Column="0"
BackgroundColor="White"
Padding="0,10,30,10"
/>
<Label
Text="{Binding HOW TO BIND TO Value in kvp_list ????? }"
Grid.Row="1"
Grid.Column="0"
Grid.ColumnSpan="2"
BackgroundColor="LightGrey"
Padding="10,10,30,10"
Margin="10"
/>
</Grid>
</DataTemplate>
</CollectionView.ItemTemplate>
</CollectionView>
先谢谢你。
2条答案
按热度按时间dfuffjeb1#
从页面中删除x:DataType=的所有示例(正如Jason建议的那样)成功了--为什么?谁知道呢!这仍然是一个谜(至少对我来说),因为我在官方文档中没有发现任何提到接近这个“解决方案”的东西。
官方文档确实建议使用x:DataType=(文档中的大多数示例都是这样做的),因为这会产生compiled bindings,它“* 提高了数据绑定性能 ”,“ 绑定表达式的编译时验证使开发人员能够获得更好的故障排除体验 *”--也就是说,如果您能让它工作的话!
我还没有找到任何官方的例子,利用编译绑定的一个属性,如:
其中KeyValuePair的“Key”和“Value”通过intellisense以某种方式变得可用,并提供编译时验证。如果有更有经验的人愿意在原始帖子中使用“app_data”模型发布这样一个示例,并包含允许编译绑定的XAML属性,请随意!
ycggw6v22#
KeyValuePair有两个属性:
Key
和Value
,您可以在绑定中使用它们