TreeView에서 일부 XML 데이터를 표시하려고합니다. Xml 데이터는 XmlDataProvider 유형의 ViewModel 속성에서 제공됩니다. 그러나 TreeView 함께 바인딩 할 수 없습니다. XAML에서 XmlDataProvider를 사용하고 있으며 XAML에서 ViewModel 속성을 XmlDataProvider와 바인딩 할 수 없습니다.보기에서 XmlDataProvider를 사용하여 viewmodel의 XmlDataProvider 속성을 바인딩하는 방법은 무엇입니까?
public class MainViewModel : ViewModelBase {
private static XmlDataProvider xDoc;
public static XmlDataProvider XDoc {
get {
return xDoc;
}
set {
xDoc = value;
RaisePropertyChanged("XDoc");
}
}
public MainViewModel() {
Data d = new Data();
d.int1 = 12;
d.int2 = 20;
d.str = "Hello World";
XmlSerializer serializer = new XmlSerializer(d.GetType());
StringWriter strWriter = new StringWriter();
serializer.Serialize(strWriter, d);
XDoc = new XmlDataProvider { Document =XDocument.Parse(strWriter.ToString()).ToXmlDocument(), XPath="child::node"} ;
}
}
XAML 코드 : 내가 MVVM 빛 프레임 워크를 사용하고
<XmlDataProvider x:Key="xmlDP" Source="{ x:Static A:MainViewModel.XDoc}" XPath="">
</XmlDataProvider>
<TreeView Grid.Row="2" Grid.ColumnSpan="2" Name="xmlTree"
DataContext="{StaticResource xmlDP}" ItemsSource="{Binding}" ItemTemplate="{StaticResource treeViewTemplate}"/>
아래는 코드입니다. 시도 할 때 XDoc 속성이 정적이어야하고 정적으로 만들고 싶지 않다는 예외가 있습니다. 내 X를 정의하면
: XAML 파일 내에서 XmlDataProvider 내부 데이터는 트 리뷰 작품 : 당신은 트리 뷰에서 XML 데이터를 보여주는 done..means로 원하는 작업을 수행이 링크 것 말이다
<XmlDataProvider x:Key="xmlDP" XPath="">
<x:XData>
<Employees>
<Employee Name="Steven Ballmer" DOB="1-Mar-1956">
<Title>CEO</Title>
</Employee>
</Employees>
</x:XData>
</XmlDataProvider>
<TreeView Grid.Row="2" Grid.ColumnSpan="2" Name="xmlTree"
DataContext="{StaticResource xmlDP}" ItemsSource="{Binding}" ItemTemplate=" {StaticResource treeViewTemplate}"/>
[1] 나는 그가 생각 [이 링크를 확인] http://stackoverflow.com/questions/1017843/how-to-bind-an-xmldataprovider-class-property-to-a-xaml-treeview – loop
링크 .. [1]을 LP로 언급 한 MVVM 아키텍처를 따르지 않습니다. 코드에서 많은 일들이 이루어졌습니다. – User1551892
괜찮아요 먼저 괜찮아요 mainviewmodel 페이지 datacontext 설정 (당신이 해줬 으면 좋겠) 이제 treeview xdoc 속성에 액세스 할 수 – loop