[英].NET MAUI - How to bind on a property of an ObservableCollection Item
[英].Net MAUI - How to bind to a property in an object that is a List of KeyValuePairs
對.Net MAUI 來說是全新的。
我有以下“模型”(應用程序數據)class,其中包含一個 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>
提前致謝。
KeyValuePair有兩個屬性, Key
和Value
,您可以在綁定中使用它們
從頁面中刪除所有x:DataType=實例(正如 Jason 建議的那樣)起到了作用——為什么? 誰知道。 這仍然是一個謎(至少對我來說),因為我在官方文檔中沒有發現任何接近這個“解決方案”的東西。
官方文檔確實建議使用x:DataType=是一件好事(文檔中的大多數示例就是這樣做的),因為這會導致編譯綁定“提高數據綁定性能”和“綁定表達式的編譯時驗證”提供更好的開發人員故障排除體驗”——也就是說,如果你能讓它工作!
我還沒有找到任何使用編譯綁定的官方示例,例如:
public List<KeyValuePair<String, String>> kvp_list { ... }
其中 KeyValuePair 的“鍵”和“值”以某種方式通過智能感知提供,並提供編譯時驗證。 如果有更多經驗的人願意在原始帖子中使用“app_data”model 發布這樣的示例,並包含允許編譯綁定的 XAML 屬性,請做我的客人!
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.