[英]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.