私は私の問題の解決策を見つけました。
XML:
<?xml version="1.0" encoding="UTF-8"?>
<List>
<Person>
<Number>1</Number>
<FirstName>Frank</FirstName>
<LastName>Heist</LastName>
</Person>
<Person>
<Number>1</Number>
<FirstName>James</FirstName>
<LastName>Calder</LastName>
</Person>
<Person>
<Number>1</Number>
<FirstName>Jane</FirstName>
<LastName>Calder</LastName>
</Person>
</List>
のモデル> Data.cs
public class dataRaw
{
public string data { get; set; }
public string firstName { get; set; }
public string lastName { get; set; }
}
public class collectionGenerator
{
public static List<dataRaw> getList()
{
var doc = XDocument.Load("Data.xml");
var dataList = doc.Root
.Descendants("Person")
.Select(node => new dataRaw
{
data = node.Element("Number").Value,
firstName = node.Element("FirstName").Value,
lastName = node.Element("LastName").Value,
})
.ToList();
return dataList;
}
}
xaml.cs
public sealed partial class MainPage : Page
{
public List<dataRaw> t1;
public List<dataRaw> t3;
public ObservableCollection<dataRaw> t2;
public MainPage()
{
this.InitializeComponent();
t1 = collectionGenerator.getList();
t2 = new ObservableCollection<dataRaw>(t1);
}
private void Filter_Click(object sender, RoutedEventArgs e)
{
t1 = collectionGenerator.getList();
t2.Clear();
string data = TB1.Text;
if(data != "")
{
var Vtest = from VT in t1
where VT.firstName == data || VT.lastName == data
select VT;
foreach (var VT in Vtest)
{
t2.Add(new dataRaw { data = "1", firstName = VT.firstName, lastName = VT.lastName });
}
}
else
{
var Vtest = from VT in t1
where VT.data == "1"
select VT;
foreach (var VT in Vtest)
{
t2.Add(new dataRaw { data = "1", firstName = VT.firstName, lastName = VT.lastName });
}
}
}
}
XAML
<Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
<Grid.RowDefinitions>
<RowDefinition Height="200" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<GridView ItemsSource="{x:Bind t2}" Grid.Row="1">
<GridView.ItemTemplate>
<DataTemplate x:DataType="data:dataRaw">
<StackPanel>
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<TextBlock Width="200" FontSize="48" Text="{x:Bind firstName}" Margin="0,0,20,0" Grid.Row="0"/>
<TextBlock Width="200" FontSize="48" Text="{x:Bind lastName}" Margin="0,0,20,0" Grid.Row="1"/>
</Grid>
</StackPanel>
</DataTemplate>
</GridView.ItemTemplate>
</GridView>
<Button Content="Filter" Name="Filter" FontSize="36" Click="Filter_Click" Width="200" Height="100" Grid.Row="2" />
<TextBox Name="TB1" Height="100" Width="400" Grid.Row="2" />
</Grid>
「だから私は私の問題に対する解決策を見つけました。 - いいですが、自己回答として投稿してください。質問に追加しないでください。サイトのガイドラインを参照してください。 –
わかりませんでした。 Iv'eはここでこれをやって、同じミスをした他の投稿にも行った。 – Hudlommen