Возможно ли иметь список с несколькими пунктами @ Windows Phone 7 - PullRequest
0 голосов
/ 19 января 2011

Я хотел бы знать, возможно ли связать список со списком, кратным текстовому полю. Я имею в виду, если я нажимаю в addButton, я получаю содержимое 5 текстовых полей, добавленных одновременно в одной строке (горизонтальной). я знаю, что невозможно иметь более одной стековой панели или таблицы данных, поэтому я хочу знать, возможно ли это ти

1 Ответ

2 голосов
/ 19 января 2011

Вы можете просто поместить новые текстовые поля в DataTemplate, а затем добавить новый пустой элемент в коллекцию, к которой вы привязываете:

<ListBox x:Name="myLb">
    <ListBox.ItemTemplate>
        <DataTemplate>
            <StackPanel Orientation="Horizontal">
                <TextBox Width="85" Text="{Binding Field1}" />
                <TextBox Width="85" Text="{Binding Field2}" />
                <TextBox Width="85" Text="{Binding Field3}" />
                <TextBox Width="85" Text="{Binding Field4}" />
                <TextBox Width="85" Text="{Binding Field5}" />
            </StackPanel>
        </DataTemplate>
    </ListBox.ItemTemplate>
</ListBox>

Использование вышеприведенного кода со следующим кодом работает для меня.

public partial class MainPage : PhoneApplicationPage
{
    private ObservableCollection<MyListViewModel> myVM;

    public MainPage()
    {
        InitializeComponent();

        Loaded += MainPage_Loaded;
    }

    void MainPage_Loaded(object sender, RoutedEventArgs e)
    {
        myVM = new ObservableCollection<MyListViewModel>
                   {
                       new MyListViewModel
                           {
                               Field1 = "A1",
                               Field2 = "A2",
                               Field3 = "A3",
                               Field4 = "A4",
                               Field5 = "A5"
                           }, 
                       new MyListViewModel
                           {
                               Field1 = "B1",
                               Field2 = "B2",
                               Field3 = "B3",
                               Field4 = "B4",
                               Field5 = "B5"
                           }
                   };

        myLb.ItemsSource = myVM;
    }

    private void ApplicationBarIconButton_Click(object sender, EventArgs e)
    {
        myVM.Add(new MyListViewModel());
    }
}

public class MyListViewModel
{
    public string Field1 { get; set; }
    public string Field2 { get; set; }
    public string Field3 { get; set; }
    public string Field4 { get; set; }
    public string Field5 { get; set; }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...