簡體   English   中英

Windows Phone 8.1:顯示詞典中的鍵 <string,string> 在xaml中

[英]Windows phone 8.1 : display key from Dictionary<string,string> in xaml

以下是我的json

{"Hello":[{"CompanyName":"one","ETA":"10","Invoice":{"TF1":" 49","BF1":" 49","MD1":"2 Km","FPk1":" 12","att":"1 mins"},"tf3":"49"},{"CompanyName":"one","ETA":"10","Invoice":{"TF1":" 49","BF1":" 49","MD1":"2 Km","FPk1":" 15","att":"1 mins"},"tf3":"49"}],"ChildPresent":true}

我正在反序列化所有內容,而我的主要問題是與發票對象( "Invoice":{"TF1":" 49","BF1":" 49","MD1":"2 Km","FPk1":" 15","att":"1 mins"},"tf3":"49"}] ),其中包含一堆鍵和值...問題出在“發票”對象中的鍵每隔6個小時會發生變化。我需要在xaml中同時顯示鍵和值

現在我正在將上面的json全部反序列化為Modal,並將發票對象數據存儲到Dictionary中

RootObject j = JsonConvert.DeserializeObject<RootObject>(json);

public class Hello {
    public Dictionary<string, string> Invoice { get; set; }
    public string CompanyName {get;set;}
    public string ETA {get;set;}
}

當我用XAML {Binding Invoice[TF1]}編寫代碼時,我得到TF1的值,但我希望將TF1鍵顯示在XAML中。

正確的語法是{Binding Path=Invoice.Key} 由於這行不通,因此請確保在頁面頂部設置了正確的DataContext。 標頭應如下所示:

<Page
    ...
    DataContext="{Binding DefaultViewModel, RelativeSource={RelativeSource Self}}"
    ...>

這意味着XAML將在附加的代碼隱藏文件中查找Dictionary(即,如果您的XAML文件是Page.xaml ,則代碼隱藏文件為Page.xaml.cs )。 如果未指定,則不知道在何處查找Invoice


注意:由於您正在開發Windows Phone 8.1,因此,如果您轉到Visual Studio並為Windows Phone創建Hub應用程序模板項目,則它應演示如何從XAML綁定到Dictionary。)

Dictionary<,>沒有Key屬性。 有一個Keys屬性,但是不能使用命名值對其進行索引。

要在xaml中顯示的鍵名

這沒有意義...密鑰Name 或從文字的值Name為重點?

 <TextBlock Text="{Binding Path=Invoice[Name]}" />

或文字文本。

 <TextBlock Text="Name" />

嘗試指定Path =:

<ListView ItemsSource="{Binding Path=Invoice}">
    <ListView.ItemTemplate>
        <DataTemplate>
           <TextBlock Text="{Binding Path=Key}"></TextBlock>
           <TextBlock Text="{Binding Path=Value}"></TextBlock>
        </DataTemplate>
    </ListView.ItemTemplate>
</ListView>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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