2010-07-20 3 views
0

몇 가지 작업 샘플에 도달하기 위해 몇 시간 동안 노력한 후에 여기에서 내 운을 시험하기로 결심했습니다. 저는 WPF의 초보자입니다.하지만 시간이 지나면 쉽게 이해할 수 있습니다 ...XmlDataProvider를 사용하는 WPF DataGrid 간단한 예제

나는 XML 파일을 보여주는 DataGrid를 가지고 있습니다. 그게 전부 야. 내가으로

<dg:DataGrid ItemsSource="{Binding cars}" /> 

: 내 응용 프로그램 cars.xml에있는

<cars> 
    <car type="Ford" size="4" /> 
    <car type="Mercedes" size="2" /> 
    <car type="BMW" size="1" /> 
    </cars> 

는 지금은 데이터 그리드 (CodePlex의 툴킷과 VS2008에 .NET 3.5 SP1을 사용하여)가 UserControl이 있습니다 그것이 AutoColumn을 가지고 있기 때문에 그것이 나에게 차로 격자를 보여줘야한다고 이해한다. .. 그러나 그것은 아니다. 내 오류가 Binding과 같아 보입니다. WPF에서이 바인딩 아이디어를 얻지 못했지만 잘 배우고 있습니다. 그렇다면 ItemSource에서 내 cars.xml을 올바르게 가리 키려면 어떻게해야합니까?

10x.

답변

1

XML 파일을 그리드 또는 사용자 창의 리소스로 지정해야합니다. 예를 들어 :

<Window.Resources> 
<XmlDataProvider XmlNamespaceManager="{StaticResource ns}" x:Key="rss" Source="http://weather.yahooapis.com/forecastrss?p=RSXX1410&amp;u=c" XPath="/rss/channel" /> 
... 

정적 자원 NS - 그것은 당신이 당신의 XML에서이 -if 다른 접두사에 대한 네임 스페이스는 다음과 같습니다

<XmlNamespaceMappingCollection x:Key="ns"> 
     <XmlNamespaceMapping Prefix="yweather" Uri="http://xml.weather.yahoo.com/ns/rss/1.0" /> 
     <XmlNamespaceMapping Prefix="geo" Uri="http://www.w3.org/2003/01/geo/wgs84_pos#" /> 
    </XmlNamespaceMappingCollection> 
... 
</Window.Resources> 

지금 당신은 당신의 XML 요소로 XAML 요소를 결합 할 수 있습니다 :

<Grid DataContext="{Binding Source={StaticResource rss}, XPath=item}"> 
    <Image Width="200" Height="180" Source="{Binding XPath=yweather:condition/@code, Converter={StaticResource WeatherCodeToImageConverter}}" /> 
</Grid> 

그 것이다.