如何在Windows Phone中添加或删除数组项?

时间:2013-04-11 11:36:11

标签: c#-4.0 xml-parsing windows-phone-8 linq-to-xml listbox-control

您正在使用下面给出的xaml文件和代码。我想得到两个类别一个是当前类别,另一个是删除类别。如果我删除一个类别,它应该去添加当前类别。我对此没有任何想法。所以请任何人告诉我如何解决这个问题。

<StackPanel>
      <TextBlock Text="Current categories"
                           Style="{StaticResource PhoneTextLargeStyle}"/>

       <ListBox x:Name="AddingList" ItemsSource="{Binding name}" SelectionChanged="AddingList_SelectionChanged_1"/>

        <TextBlock Text="Removed categories"
                           Style="{StaticResource PhoneTextLargeStyle}" />

        <ListBox x:Name="RemoveList" ItemsSource="{Binding name}" SelectionChanged="RemoveList_SelectionChanged_1"/>

 </StackPanel>

我的xaml.cs代码

    private void Button_Click_1(object sender, RoutedEventArgs e)
    {

        NavigationService.Navigate(new Uri("/CategoriesPage.xaml?" + NotchsList11, UriKind.Relative));

    }

我正在使用编辑按钮,如何将列表框项目从编辑按钮传递到类别页面以及如何删除和添加列表框项目。

我的出局想要给出下面的图像所以请帮助我一些 enter image description here

1 个答案:

答案 0 :(得分:0)

很少有办法解决这个问题。 一种方法是让一个对象在其上具有“isRemoved”布尔值,您只需打开和关闭它。另一种方法是你可以有2个observablecollections,一个拿着添加,一个拿着删除。例如:

类:

public class MyData
{
    public bool isRemoved { get; set; }
    public string Name { get; set; }
}

使用:

ObservableCollection<MyData> AllData = new ObservableCollection<MyData>()
AllData.Add(new MyData(){ isRemoved = true, Name = "Data1"}
AllData.Add(new MyData(){ isRemoved = true, Name = "Data2"}
AllData.Add(new MyData(){ isRemoved = false, Name = "Data3"}

AddingList.ItemsSource = AllData.Where(srch => srch.isRemoved == false);
RemoveList.ItemsSource = AllData.Where(srch => srch.isRemoved == true);

在“删除”按钮中单击您只需将isRemoved设置为true,在“添加”中将isRemoved设置为false。

或者你可以使用2个ObservableCollections来添加和删除每个。