ListView
XML ファイルのデータを表示するコントロールがあります。ただし、アイコンとタイトルの 2 つの列をListView
持つ子があります。GridView
アイデアは、要素をクリックしてタイトル列からのみ値を取得することです。代わりに、XML ノード全体を取得します。
これは理論的な質問ですが、コードが必要な場合は提供します:)
ありがとうございました
アップデート:
XML ファイル:
<list>
<item>
<title>demo</title>
<icon>icon.png</icon>
</item>
<item>
<title>demo2</title>
<icon>icon2.png</icon>
</item>
</list>
XAML:
<Page.Resources>
<XmlDataProvider x:Key="feed"
Source="http://feedurl/sites.xml"
XPath="list/item" />
<DataTemplate x:Key="itemIcons">
<Grid x:Name="ImageGrid">
<Image Source="{Binding XPath=icon}" Width="40" Height="40"></Image>
</Grid>
</DataTemplate>
</Page.Resources>
より多くの XAML:
<ListView Name="myList" ItemContainerStyle="{StaticResource MyContainer}"
SelectionChanged="clicked" FontSize="16" HorizontalAlignment="Left"
Height="auto" ScrollViewer.VerticalScrollBarVisibility="auto" VerticalAlignment="Stretch" Width="240"
BorderBrush="Transparent" BorderThickness="0"
ItemsSource="{Binding Source={StaticResource feed}}"
SelectionMode="Single" Margin="1,36,1,1">
<ListView.View>
<GridView>
<GridView.ColumnHeaderContainerStyle>
<Style>
<Setter Property="FrameworkElement.Visibility" Value="Collapsed"/>
</Style>
</GridView.ColumnHeaderContainerStyle>
<GridView.Columns>
<GridViewColumn x:Name="showIcon" CellTemplate="{StaticResource itemIcons}"/>
<GridViewColumn x:Name="showSites" DisplayMemberBinding="{Binding XPath=title}" Header="some header"/>
</GridView.Columns>
</GridView>
</ListView.View>
</ListView>
C#:
private void clicked(object sender, SelectionChangedEventArgs e)
{
var title= this.myList.SelectedValue.ToString();
//MessageBox.Show(title);
}
アイテムをクリックするListView
と、タイトルとアイコンノードが連結されます。たとえば、「demoicon.png」で、「タイトル」値のみが必要です:)
前もって感謝します ;)