如何正确绑定我的ListBox

时间:2014-11-05 13:05:47

标签: c# xaml data-binding listbox windows-phone

我的Windows Phone应用程序,从集合produtos填充了一个ListBox。此集合从JSON接收值。

在我的ListBox中,我"绑定"来自JSON(quantdade,descricao,valor_preco_a,codigo)的所有值,以及应该是produtos.quantidade * produtos.valor_preco_a的另一个值(unidade)。

我的列表框:

        <controls:PivotItem Header="Consulta" Name="consultaCartao">
            <Grid>
                <Grid.ColumnDefinitions>
                    <ColumnDefinition Width="Auto" />
                    <ColumnDefinition Width="Auto" />
                    <ColumnDefinition Width="Auto" />
                </Grid.ColumnDefinitions>
                <ListBox Name="List2" ItemsSource="{Binding produtosCartao}" HorizontalContentAlignment="Stretch" Grid.ColumnSpan="3" Margin="0,182,-66,0" Visibility="Collapsed">
                    <ListBox.ItemTemplate>
                        <DataTemplate>
                            <StackPanel Margin="0,0,0,17" Width="432" Height="Auto">
                                <StackPanel.Background>
                                    <SolidColorBrush Color="#FFE8FF00" Opacity="0.2"/>
                                </StackPanel.Background>
                                <TextBlock Grid.Column="0" Text="{Binding descricao}" TextWrapping="Wrap" Style="{StaticResource PhoneTextNormalStyle}"/>
                                <TextBlock Grid.Column="3" TextWrapping="Wrap" Style="{StaticResource PhoneTextSubtleStyle}" Margin="20,5,12,0">
                                    <Run Text="{Binding quantidade}" />
                                    <Run Text="{Binding unidade}" />
                                </TextBlock>
                                <TextBlock Grid.Column="3" Text="{Binding valor, ConverterCulture=pt-BR, StringFormat=C2}" TextWrapping="Wrap" Style="{StaticResource PhoneTextNormalStyle}" Margin="300,-30,12,0"/>
                            </StackPanel>
                        </DataTemplate>
                    </ListBox.ItemTemplate>
                </ListBox>

我尝试使用此代码:

public ObservableCollection<produtos> produtosCartao { get; set; }

    public class produtos
    {

        public double quantidade { get; set; }
        public string descricao { get; set; }
        public double valor_preco_a { get; set; }
        public string codigo { get; set; }
        public string unidade { get; set; }
        public double valor { get; set; }
    }

void webClient_DownloadStringCompletedProdutos(object sender, DownloadStringCompletedEventArgs e)
    {
      produtos produto = new produtos();
      produto.valor = produto.valor_preco_a * produto.quantidade;
    }

1 个答案:

答案 0 :(得分:1)

为了在XAML中使用数据绑定,您必须在列表框中设置DataContext属性。

DataContext属性是xaml引擎查找的对象,用于查找绑定的值。

你应该看看this