【发布时间】:2014-04-09 14:46:54
【问题描述】:
我正在开发 windows Phone 8 应用程序。
在我的应用程序中,我使用列表选择器。列表选择器值是从 Web 服务绑定的(json 格式)
我的网络服务结果返回格式
[
- {
id: "9",
name: "Pizza",
root_id: "4",
level: "1"
},
-{
id: "10",
name: "Fine Dining",
root_id: "4",
level: "1"
},
]
我的列表选择器的 XAML 代码
<toolkit:ListPicker x:Name="filterpicker" SelectionChanged="filterpicker_SelectionChanged" Tap="filterpicker_Tap" Foreground="White" BorderThickness="0" Margin="395,-100,0,10" Height="70" Width="60">
<toolkit:ListPicker.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding}" Visibility="Collapsed"/>
</DataTemplate>
</toolkit:ListPicker.ItemTemplate>
<toolkit:ListPicker.FullModeItemTemplate>
<DataTemplate>
<TextBlock>
<Run Text="{Binding}"/>
</TextBlock>
</DataTemplate>
</toolkit:ListPicker.FullModeItemTemplate>
</toolkit:ListPicker>
我用于绑定的 c# 代码
void filterwc_DownloadStringCompleted(object sender, DownloadStringCompletedEventArgs e)
{
var filterdata = e.Result;
var filtervalue = JsonConvert.DeserializeObject<List<filterdatas>>(filterdata);
List<string> filtercategories = new List<string>();
foreach (filterdatas budval2 in filtervalue)
{
filtercategories.Add(budval2.id); /**I need to display the name and on selectionchanged event i need to get the id value**/
}
filterpicker.ItemsSource = filtercategories;
}
如果我的问题不清楚,请告诉我提供更多信息...
我需要这样的
列表选择器输出是这样的
披萨
美食
在 SelectionChanged 事件上
如果我点击披萨,我需要得到“9”
如果我点击 Fine Dining 我需要得到“10”
谢谢...
【问题讨论】:
-
您可以通过多种方式做到这一点。如果您想以“正确的方式”进行操作,您将使用转换器类。如果你想用“简单的方法”来做,只需将文本框标签值绑定到你想要的 id。然后通过选择更改在后端检索它
-
@AMR 请给我看一些转换器类的示例
-
这是一个巨大的话题。请自己做一些研究谷歌上有很多例子。
标签: c# xaml windows-phone-8 listpicker