[C#/WPF]

■ XmlNamespaceMapping 요소를 사용하여 XML 네임스페이스를 바인딩하는 방법을 보여줍니다.


테스트 프로젝트.zip
0.01MB


MainWindow.xaml

<Window x:Class="TestProject.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Width="800"
    Height="600"
    Title="TestProject"
    FontFamily="나눔고딕코딩"
    FontSize="16">
    <Window.Resources>
        <XmlNamespaceMappingCollection x:Key="XmlNamespaceMappingCollectionKey">
            <XmlNamespaceMapping
                Prefix="dc"
                Uri="http://purl.org/dc/elements/1.1/" />
        </XmlNamespaceMappingCollection>
        <XmlDataProvider x:Key="XmlDataProviderKey"
            XmlNamespaceManager="{StaticResource XmlNamespaceMappingCollectionKey}"
            XPath="rss/channel/item"
            Source="https://icodebroker.rss" />
        <DataTemplate x:Key="DataTemplateKey">
            <Border
                BorderThickness="1"
                BorderBrush="Gray">
                <Grid Height="50">
                    <Grid.RowDefinitions>
                        <RowDefinition Height="25" />
                        <RowDefinition Height="25" />
                    </Grid.RowDefinitions>
                    <TextBlock Grid.Row="0" Text="{Binding XPath=title}"                     />
                    <TextBlock Grid.Row="1" Text="{Binding XPath=dc:date, FallbackValue=""}" />
                </Grid>
            </Border>
        </DataTemplate>
    </Window.Resources>
    <ListBox
        Margin="10"
        Background="Honeydew"
        ItemTemplate="{StaticResource DataTemplateKey}"
        ItemsSource="{Binding Source={StaticResource XmlDataProviderKey}}" />
</Window>

※ XmlDataProvider 요소의 Source 속성에 기존 URL이 없어져서 제 블로그 RSS URL을 설정했는데 데이터에 dc:date 요소가 없습니다.