簡體   English   中英

.Net MAUI - 如何綁定到作為 KeyValuePairs 列表的 object 中的屬性

[英].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有兩個屬性, KeyValue ,您可以在綁定中使用它們

從頁面中刪除所有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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM