WPF组合框XML绑定
本文关键字:绑定 XML 组合 WPF | 更新日期: 2023-09-27 18:14:10
我还没有找到适合我正在尝试做的XML绑定的特定情况的东西
我有以下的xml片段:
我想将type属性绑定到用户控件上的组合框,但要让可选择值的列表由用户控件上的列表驱动。
在我的usercontrol上,我创建了可能值的列表:
<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中。类似地,即使设置了初始值,也不会显示在组合框中。我知道基本数据上下文是正确的,因为分组框
中有一个标签<TextBox Text="{Binding XPath=HP/@amount}" Height="23" HorizontalAlignment="Right" Margin="0,16,6,0" Name="HPFieldHealingAmount" VerticalAlignment="Top" Width="112" />
并正确显示金额。我确定这只是我不知道如何正确设置绑定。当我在谷歌上搜索这个问题时,我尝试了许多建议,但没有一个有效。任何帮助都会很感激。由于
在绑定中尝试过Mode= two - way吗?
您尝试过使用转换器吗?我相信绑定属性的类型不是字符串类型,您将需要IValueConverter
来正确读取和更新XML。