gpt4 book ai didi

.net - 如何在没有代码的情况下将 XML 绑定(bind)到 TreeView(MVVM,来自 XAML 的 dataContext)

转载 作者:行者123 更新时间:2023-12-03 10:24:38 26 4
gpt4 key购买 nike

我有一个窗口,里面有一个 TreeView 控件和一个 XML 文件。我想完全从 XAML 将 TreeView 绑定(bind)到 XML 文件,而不需要任何 C# 代码。

这就是我现在的做法:

XAML

<Window.Resources>
<HierarchicalDataTemplate ItemsSource="{Binding Path=Elements}" x:Key="TreeViewItemData">
<TreeViewItem Header="{Binding Path=Attribute[text].Value}" IsExpanded="True"/>
</HierarchicalDataTemplate>
</Window.Resources>
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="40" />
<RowDefinition Height="370*" />
</Grid.RowDefinitions>
<TextBlock Text="RD Admin Tool" Grid.Row="0" FontSize="22" FontWeight="Bold" Padding="50,5"></TextBlock>
<StackPanel Orientation="Horizontal" Grid.Row ="1">
<Border BorderBrush="#FF7C7B7B" BorderThickness="1" Name="tBorder" Width="200" CornerRadius="5" Background="#FFF5F2F2">
<TreeView Name="OptionsTree"
ItemsSource="{Binding Path=Root.Elements}"
ItemTemplate="{StaticResource TreeViewItemData}"
HorizontalAlignment="Left" VerticalAlignment="Top"
Margin="5,0,0,0" FontSize="18" Background="#FFF5F2F2">
</TreeView>
</Border>
<Canvas Name="OptionContent" Width="445">
</Canvas>
</StackPanel>
</Grid>

后面代码中的构造函数:
 public MyWindow()
{
InitializeComponent();

XDocument doc = XDocument.Parse(File.ReadAllText(@"C:\Tree.xml"));
this.MyTreeView.DataContext = doc;
}

但我真的很想从 XAML 编写它并且没有代码。

有什么建议吗?

最佳答案

您可以使用 XmlDataProvider在 XAML 中将外部 XML 定义为资源。然后可以在 XAML 中的各种元素中引用和绑定(bind)它。

走过可以找到here ...此外,一个 MSDN 示例使用了 XmlDataProvider结合 TreeView here

关于.net - 如何在没有代码的情况下将 XML 绑定(bind)到 TreeView(MVVM,来自 XAML 的 dataContext),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4443740/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com