저는 Windows Phone 용 프로그래밍에 익숙하지 않아 ListBox에서 데이터를 편집하는 데 문제가 있습니다.
XML 파일의 데이터를 목록으로로드하여 ListBox에 표시하고 있습니다.
내 XML의 각 항목에는 유형이 첨부되어 있습니다. 특정 CheckBox를 확인/선택 취소하여 특정 유형의 항목을 제거/추가 할 수 있도록 만들고 싶습니다. CheckBox를 사용하여 ListBox.ItemsSource 필터링하기
How to remove all ListBox items?
을하지만 난 단지리스트 박스 항목의 일부를 삭제할 때문에 정확히 내 요구에 맞게, 그리고 아마도 단순히 다시 확인란을 선택하여 그것을 다시 얻을하지 않습니다.
또한 XML 항목이 포함 된 목록으로 이미 목록 상자를 바인딩 한 이후로 수동으로 모든 항목을 추가하고 싶지 않습니다.
나는 그렇게처럼 내 XML을 업로드 :
Activity.cs
: 목록 상자에 대한
namespace ActivityManager
{
public partial class PivotPage1 : PhoneApplicationPage
{
private List<Activity> activities;
public void ActivityDisplay()
{
activities = Activity.LoadActivities();
listBox1.ItemsSource = activities;
}
public PivotPage1()
{
InitializeComponent();
ActivityDisplay();
}
private void CookingCheck_Checked(object sender, RoutedEventArgs e)
{
}
private void ArtCheck_Checked(object sender, RoutedEventArgs e)
{
}
private void LanguageCheck_Checked(object sender, RoutedEventArgs e)
{
}
private void ScienceCheck_Checked(object sender, RoutedEventArgs e)
{
}
private void SportCheck_Checked(object sender, RoutedEventArgs e)
{
}
그리고 XAML :
<ListBox Height="347" HorizontalAlignment="Left" Margin="27,243,0,0"
Name="listBox1" VerticalAlignment="Top" Width="410"
SelectionChanged="listBox1_SelectionChanged" AllowDrop="False"
ItemsSource="{Binding activities}">
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel Margin="10">
<TextBlock Text="{Binding Activity}"/>
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
다음
namespace ReadXMLfromFile
{
public class Activity
{
public string Type { get; private set; }
public string Description { get; private set; }
public Activity(string type, string description)
{
Type = type;
Description = description;
}
public static List<Activity> LoadActivities(XDocument doc)
{
return doc .Root
.Elements("Activity")
.Select(el => new Activity((string)el.Attribute("Type"),
el.Value))
.ToList();
}
public static List<Activity> LoadActivities()
{
using (var store = IsolatedStorageFile.GetUserStoreForApplication())
{
if (store.FileExists("Activities.xml"))
{
using (var stream = store.OpenFile("Activities.xml",
FileMode.Open))
{
return LoadActivities(XDocument.Load(stream));
}
}
}
// No user file... load the default activities
return LoadActivities(XDocument.Load("Assets/Activities.xml"));
}
}
}
내 내 페이지에 대한 코드입니다
내 XML 파일도 여기
<?xml version="1.0" encoding="utf-8" ?>
<Activities>
<Activity Type="Cooking">
Cook some Mexican food
</Activity>
<Activity Type="Art">
Draw a picture
</Activity>
<Activity Type="Language">
Learn 5 words in Polish you didn't know yet
</Activity>
<Activity Type="Science">
Write a simple program in C
</Activity>
<Activity Type="Sport">
Go to the gym
</Activity>
</Activities>
도와 주시겠습니까? 나는 꽤 붙어있어 아마 명백한 것을 잃어 버렸을 것이다. 미리 감사드립니다.
에 중단 점을 넣어주세요 사용 발견
목록을 업데이트 필터 목록 체크 된 이벤트와 FilterActivity Happend 후에 ItemsSource가 null이 아니고 객체가 있는지 확인하십시오. – csharpwinphonexaml
@verdesrobert 체크 된 이벤트가 발생하면 소스가 비어 있습니다. FilterActivity가 발생하면 마지막으로 객체가 있습니다. – Tajgun92