1

所以过去一年我一直在使用 android,你们中的一些人可能知道 android 中的所有静态字符串值都保存在 String.xml 文件中。

现在我正在开发一个 WPF 项目,在这个项目中我有一个 Combobox。这个组合框包含的值永远不会改变!

因此,我想知道您是否可以将组合框数据绑定到一个 XML 文件中,该文件包含组合框包含的所有字符串值。

我的问题分为两个小部分:

  1. 是否可以将组合框的数据与 XML 文档绑定,甚至建议这样做吗?如果是这样,我该怎么做?

  2. 如果可能的话,您将如何调整用户从组合框中选择的“选项”?

4

2 回答 2

2

.NET 编程中没有类似于“保存在 string.xml 文件中的所有静态字符串值”的东西,所以忘记这一点。

有很多方法可以做到这一点,包括创建自己的 strings.xml 文件、在运行时加载它并绑定到结果。

或者,您可以快速简单地完成此操作。如果您想通过绑定来实现,请创建一个类型并将您的字符串添加到其中。

namespace HerpDerp
{
    public static class Strings
    {
        public static string[] ComboLol {get;set;} // must be a Property
        static Strings()
        { 
            ComboLol = new string[]{"Lol", "kthx", "bai" };
        }
    }
}

然后您可以使用静态标记扩展从 xaml 引用它。

<ComboBox xmlns:derp="clr-namespace:HerpDerp"
          ItemsSource="{x:Static derp:Strings.ComboLol}" />

或者,地狱,直接添加它们

<ComboBox>
    <ComboBoxItem>Lol</ComboBoxItem>
    <ComboBoxItem>kthx</ComboBoxItem>
    <ComboBoxItem>bai</ComboBoxItem>
</ComboBox>

取决于您对列表的要求。如果它永远不会改变,那么第二个可能会更好。

于 2013-07-26T12:53:10.257 回答
1

无法从 XML 绑定值。但是如果你已经知道要显示的值,那么你可以做这样的事情。

    <ComboBox x:Name="MyCombo">
        <ComboBoxItem>Item1</ComboBoxItem>
        <ComboBoxItem>Item2</ComboBoxItem>
        <ComboBoxItem>Item3</ComboBoxItem>
    </ComboBox>

如果您熟悉 MVVM,则可以使用 ViewModel 处理 selectedItem;否则,您可以从表单/控件类访问“MyCombo”。

于 2013-07-26T12:56:09.547 回答