gpt4 book ai didi

wpf - 定义数据上下文

转载 作者:行者123 更新时间:2023-12-03 11:00:07 25 4
gpt4 key购买 nike

鉴于 XML,有人可以解释和更正以下 XAML定义 ComboBox ItemsSource 的文件?

XAML:

<ComboBox Name="cbConnection" DataContext="{Binding Source=c:\temp\ConnectionList.xml, XPath=DBConnection}" ItemsSource="{Binding XPath=ComboItem}" DisplayMemberPath="Key" SelectedValuePath="Value">

c:\temp\ConnectionList.xml:

<?xml version="1.0" encoding="utf-8" ?>    
<DBConnection>
<ComboItem>
<Key>Computer-A</Key>
<Value>Server=COMPA;Database=MyDB;Integrated Security=SSPI;</Value>
</ComboItem>
<ComboItem>
<Key>Computer-B</Key>
<Value>Server=COMPB\SQL2012STD;Database=MyDB;Integrated Security=SSPI;</Value>
</ComboItem>
</DBConnection>

最佳答案

您不一定需要与 DataContext 混为一谈。只需适本地设置 ItemsSource。

  • 设置一个 XMLDataProvider,并让它读取 xml 文件
    并向其他 WPF 元素提供数据。 ItemsSource 应指向此提供程序。
  • 在您的 XML 中添加结束标签
  • 修复您的 XPath 查询以查询名为 ComboItem 的所有节点,而不仅仅是顶级节点。

  • 这是 XMLDataProvider,将其放入页面的资源字典中:
    <XmlDataProvider x:Key="XmlData"
    Source="c:\temp\ConnectionList.xml">
    </XmlDataProvider>

    这是更正后的组合框:
    <ComboBox x:Name="cbConnection"
    ItemsSource="{Binding Source={StaticResource XmlData}, XPath=//ComboItem}"
    DisplayMemberPath="Key"
    SelectedValuePath="Value" />

    这是更正后的 XML:
    <?xml version="1.0" encoding="utf-8" ?>    
    <DBConnection>
    <ComboItem>
    <Key>Computer-A</Key>
    <Value>Server=COMPA;Database=MyDB;Integrated Security=SSPI;</Value>
    </ComboItem>
    <ComboItem>
    <Key>Computer-B</Key>
    <Value>Server=COMPB\SQL2012STD;Database=MyDB;Integrated Security=SSPI;</Value>
    </ComboItem>
    </DBConnection>

    关于wpf - 定义数据上下文,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14464247/

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