【发布时间】:2014-10-15 18:31:27
【问题描述】:
在我的 Windows Phone 应用程序上,使用 JSON(网络服务)填充一个 ListBox。
我需要测试一个字符串是否等于 ListBox 上的某个项目。但是我“绑定”了很多信息,我只想用{Binding codigo}进行测试。
此代码不适用于我:
private void addProduto(object sender, RoutedEventArgs e)
{
Fields fi = (Fields)this.List1.SelectedItem as Fields;
foreach(var item in List1.Items)
{
Fields fields = item as Fields;
if (fields.codigo == insCodProduto.Text)
{
MessageBox.Show("Esse produto existe!");
}
else
{
MessageBox.Show("Esse produto não existe!");
break;
}
}
我的代码:
public ObservableCollection<Fields> Items { get; set; }
public class Fields
{
//[JsonProperty(PropertyName = "descricao")]
public string descricao { get; set; }
public double valor_preco_a { get; set; }
public string codigo { get; set; }
public string codigo1 { get; set; }
}
XAML:
<ListBox Name="List1" ItemsSource="{Binding Items}" Margin="0,85,0,0" >
<ListBox.ItemTemplate>
<DataTemplate>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="242" />
<ColumnDefinition Width="128" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<StackPanel Margin="0,0,-62,17" Grid.ColumnSpan="3">
<StackPanel.Background>
<SolidColorBrush Color="#FF858585" Opacity="0.5"/>
</StackPanel.Background>
<TextBlock x:Name="NameTxt" Grid.Column="0" Text="{Binding descricao}" TextWrapping="Wrap" FontSize="20" Style="{StaticResource PhoneTextNormalStyle}"/>
<TextBlock Grid.Column="1" Text="{Binding valor_preco_a, StringFormat=N2}" TextWrapping="Wrap" Margin="45,20,12,0" Style="{StaticResource PhoneTextSubtleStyle}"/>
<TextBlock Grid.Column="3" Text="{Binding codigo}" TextWrapping="Wrap" FontSize="35" Margin="370,-50,12,0" Style="{StaticResource PhoneTextNormalStyle}" Foreground="Blue"/>
</StackPanel>
<TextBlock Grid.Column="0" Text="R$" Margin="15,48,158,17" Style="{StaticResource PhoneTextSubtleStyle}"/>
</Grid>
</DataTemplate>
</ListBox.ItemTemplate>
<ListBox.ItemContainerStyle>
<Style TargetType="ListBoxItem">
<Setter Property="HorizontalContentAlignment" Value="Stretch"/>
</Style>
</ListBox.ItemContainerStyle>
</ListBox>
insCodProduto:
<TextBox InputScope="Number" x:Name="insCodProduto" HorizontalAlignment="Left" TextWrapping="Wrap" VerticalAlignment="Top" Width="161" TextAlignment="Center" Margin="262,152,0,0" Height="78"/>
【问题讨论】:
-
我已经更新了答案。希望它现在可以工作
标签: c# listbox windows-phone listboxitem