2011-11-09 154 views
1

我一直無法找到適用於我試圖做的XML綁定的特殊情況的東西。WPF Combobox XML綁定

我有下面的XML片段:

我想要的類型屬性在用戶控件組合框綁定,但必須通過在列表驅動的可選值的列表用戶控件。

在我的用戶,我創建可能值的列表:

<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> 

然後我將它們綁定到ComboBox

<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中。同樣,即使設置,初始值也不會顯示在組合框中。我知道基本datacontext是正確的,因爲我在groupbox中有一個標籤

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

它正確顯示金額。我確定這只是我不知道如何正確設置綁定。我嘗試了很多建議,這些建議顯示了我爲此搜索的時候,但都沒有工作。任何幫助,將不勝感激。謝謝

回答

0

你試過Mode = TwoWay在綁定?

+0

是的,沒有效果 – Megatron

0

您是否嘗試過使用轉換器?我相信綁定屬性的類型不是字符串類型,您需要IValueConverter才能正確讀取和更新XML。