【问题标题】:WPF Combobox XML bindingWPF 组合框 XML 绑定
【发布时间】:2011-11-09 15:15:26
【问题描述】:

我无法找到适用于我正在尝试执行的特定 XML 绑定情况的方法。

我有以下sn-p的xml:

我想将 type 属性绑定到用户控件上的组合框,但有一个由用户控件上的列表驱动的可选值列表。

在我的用户控件上,我创建了可能值的列表:

<UserControl.Resources>
    <x:Array x:Key="HealingComponentTypes" Type="sys:String">
        <sys:String>Absolute</sys:String>
        <sys:String>AbsolutePercent</sys:String>
        <sys:String>RelativePercent</sys:String>
    </x:Array>
</UserControl.Resources>

然后我将它们绑定到组合框

<GroupBox DataContext="{Binding XPath=FieldHealingComponent}"  Header="Field Use" Height="328" HorizontalAlignment="Left" Margin="231,2,0,0" Name="groupBox3" VerticalAlignment="Top" Width="220">
            <Grid>
                <GroupBox Header="HP Healing Component" Height="101" HorizontalAlignment="Left" Margin="6,0,0,0" Name="HPFieldUseGroup" VerticalAlignment="Top" Width="192">
                    <Grid>
                        <ComboBox ItemsSource="{StaticResource HealingComponentTypes}" SelectedItem="{Binding XPath=HP/@type}" Height="23" HorizontalAlignment="Left" Margin="62,49,0,0" Name="MPBattleUseType" VerticalAlignment="Top" Width="112" />
                    </Grid>
                </GroupBox>
           </Grid>
        </GroupBox>

问题是这不会绑定值。我在组合框下拉列表中看到了三种可能性,但无论我选择什么,它都不会反映回 xml。同样,即使设置了初始值也不会显示在组合框中。我知道基本数据上下文是正确的,因为我在 groupbox 中有一个标签

<TextBox Text="{Binding XPath=HP/@amount}"  Height="23" HorizontalAlignment="Right" Margin="0,16,6,0" Name="HPFieldHealingAmount" VerticalAlignment="Top" Width="112" />

它正确显示金额。我确定只是我不知道如何正确设置绑定。我已经尝试了很多建议,这些建议在我用谷歌搜索时显示,但没有一个有效。任何帮助,将不胜感激。谢谢

【问题讨论】:

    标签: c# wpf binding


    【解决方案1】:

    您在绑定中尝试过 Mode=TwoWay 吗?

    【讨论】:

      【解决方案2】:

      您是否尝试过使用转换器?我相信绑定属性的类型不是字符串类型,您需要IValueConverter 才能正确读取和更新您的 XML。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-06-18
        • 2011-03-09
        • 1970-01-01
        • 2015-09-15
        相关资源
        最近更新 更多