繁体   English   中英

Windows Phone-如何在ListBox上显示两个项目

[英]Windows Phone - how display two items on ListBox

在我的项目中,我有两个ListBox。 第一个是从JSON文件填充的。 因此,用户选择一个项目并单击“添加”按钮,该项目即被添加到ListBox2。但是,我有一个“ amount”文本框,我希望它的内容也出现在ListBox 2上。

以下示例:

屏幕显示如何:

之前
(来源: infassteste.url.ph

应为:

后
(来源: infassteste.url.ph

我的代码:

    private void AddProd(object sender, RoutedEventArgs e)
    {

        if (ListBoxx.SelectedItem != null)
        {
            Fields fi = (Fields)this.ListBoxx.SelectedItem;

            ListBoxx2.Items.Add(fi);

        }
        else
        {
            MessageBox.Show("Selecione um item para adicionar!");
        }
    }

我的XAML:

<ListBox Name="ListBoxx"
         FontSize="30"
         HorizontalContentAlignment="Stretch"
         ItemsSource="{Binding Items}" Margin="10,10,10,411" BorderBrush="Red">
                    <ListBox.Background>
                        <SolidColorBrush Color="#FFC3C3C3" Opacity="0.51"/>
                    </ListBox.Background>

                    <!-- Template to display each item -->
                    <ListBox.ItemTemplate>
                        <DataTemplate>
                            <Grid>
                                <Grid.ColumnDefinitions>
                                    <ColumnDefinition Width="200" />
                                    <ColumnDefinition Width="Auto" />
                                </Grid.ColumnDefinitions>

                                <TextBlock Grid.Column="0" Text="{Binding FNome}"/>
                                <TextBlock Grid.Column="1" Text="{Binding FEstado}"/>
                            </Grid>
                        </DataTemplate>
                    </ListBox.ItemTemplate>
                </ListBox>

<ListBox x:Name="ListBoxx2"
                    FontSize="30"
                    HorizontalContentAlignment="Stretch"
                     Margin="10,311,10,10" BorderBrush="Red">
                    <ListBox.Background>
                        <SolidColorBrush Color="#FFC3C3C3" Opacity="0.51"/>
                    </ListBox.Background>

                    <!-- Template to display each item -->
                    <ListBox.ItemTemplate>
                        <DataTemplate>
                            <Grid>
                                <Grid.ColumnDefinitions>
                                    <ColumnDefinition Width="200" />
                                    <ColumnDefinition Width="Auto" />
                                </Grid.ColumnDefinitions>

                                <TextBlock Grid.Column="0" Text="{Binding FNome}"/>
                                <TextBlock Grid.Column="1" Text="{Binding FEstado}"/>
                            </Grid>
                        </DataTemplate>
                    </ListBox.ItemTemplate>
                </ListBox>

为在列表框中显示的类定义新属性,并将其绑定并绑定到第三个TextBlock。 (FNome,FEstado)。

在您的AddProd方法中,您可以从ListBoxx.SelectedItem获取自定义类的实例,并更改新属性。

向您的Fields类添加属性以保存数量。 让我们称之为数量。 像这样修改ListBoxx2 ItemTemplate

<ListBox.ItemTemplate>
    <DataTemplate>
        <Grid>
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="200" />
                <ColumnDefinition Width="Auto" />
                <ColumnDefinition Width="Auto" />
             </Grid.ColumnDefinitions>
             <TextBlock Grid.Column="0" Text="{Binding FNome}"/>
             <TextBlock Grid.Column="1" Text="{Binding FEstado}"/>
             <TextBlock Grid.Column="2" Text="{Binding Quantity}"/>
         </Grid>
     </DataTemplate>
 </ListBox.ItemTemplate>

然后在Button的click事件中,添加以下内容。

private void AddProd(object sender, RoutedEventArgs e)
{
    if (ListBoxx.SelectedItem != null)
    {
        Fields fi = (Fields)this.ListBoxx.SelectedItem;
        fi.Quantity = txtQuantity.Text; // SET THE Quantity..
        ListBoxx2.Items.Add(fi);
    }
    else
    {
        MessageBox.Show("Selecione um item para adicionar!");
    }
}

然后,将文本框中的值添加到对象,并将其绑定到ListBox ItemTemplate

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM