簡體   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