我有這種類型的XML文檔。帶有Chekbox的TreeView僅適用於兒童
<?xml version="1.0" encoding="utf-8"?>
<Parameters>
<Param Name="Father0_0" ID="1">
<Param0 Name="Father0_1" ID="2">
<Param1 Name="Father0_2" ID="3">
<Param2 Name="Child0_0" ID_ch="1"/>
</Param1>
<Param1 Name="Father0_3" ID="4">
<Param2 Name="Father0_4" ID="5">
<Param3 Name="Child0_3" ID_ch="2"/>
</Param2>
</Param1>
</Param0>
</Param>
<Param Name="Father1_0" ID="6">
<Param0 Name="Child1_0" ID_ch="3" />
</Param>
<Param Name="Father2_0" ID="7">
<Param1 Name="Child2_0" ID_ch="3"/>
</Param>
<Param Name="Child3_0" ID_ch="4"/>
</Parameters>
.CS
所以我打開我的XML
XmlDataProvider _xml = FindResource("xmldata") as XmlDataProvider;
var xmlDocument = new XmlDocument();
xmlDocument.Load("34.xml");
_xml.Document = xmlDocument;
,如果我這樣做如下的XAML描述我得到Chechkboks了在樹視圖的所有項目?
.XAML
<Window.Resources>
<XmlDataProvider x:Key="xmldata" XPath="Parameters"/>
<!--The same is done for the Param0,Param1,Param2,Param3 changing DataType=""-->
<HierarchicalDataTemplate DataType="Param" ItemsSource="{Binding XPath= ./*}">
<StackPanel Orientation="Horizontal">
<CheckBox Margin="5,0,0,0" Content="{Binding [email protected]}" />
</StackPanel>
</HierarchicalDataTemplate>
<!-------------------------------->
</Window.Resources>
<Grid>
<TreeView ItemsSource="{Binding Source={StaticResource xmldata}, XPath=Param}" />
</Grid>
如何使CheckBox僅用於兒童。
完美地工作,僅強調示例,告訴我如何單擊複選框以獲取有關孩子和父母的信息。我的意思是從XML標籤「名稱」,「價值」,「ID」。非常感謝你。 – XmaksasX
當您需要一些複雜的邏輯時,XML不適合您的數據上下文。如果你需要一個類似「當複選框被點擊時,然後做點什麼」的代碼,那麼考慮將你的XML轉換爲視圖模型。 – Dennis
我更正了上面的XML,當我點擊複選框時需要獲取孩子的ID和它的第一個父母的ID – XmaksasX