WPF Combobox XML привязка - PullRequest
       0

WPF Combobox XML привязка

1 голос
/ 09 ноября 2011

Мне не удалось найти что-то подходящее для конкретного случая привязки XML, который я пытаюсь сделать.

У меня есть следующий фрагмент XML:

Я хочу связать атрибут типа с полем со списком в пользовательском контроле, но у меня есть список выбираемых значений, управляемых списком в пользовательском контроле.

В моем 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" />

и отображает количество правильно. Я уверен, что я просто не знаю, как правильно установить привязку. Я пробовал многочисленные предложения, которые показали, когда я гуглил по этому поводу, но ни одно из них не сработало. Любая помощь будет оценена. спасибо

Ответы [ 2 ]

0 голосов
/ 09 ноября 2011

Вы пробовали использовать конвертер? Я считаю, что тип связанного атрибута не относится к типу string, и вам потребуется IValueConverter для правильного чтения и обновления вашего XML.

0 голосов
/ 09 ноября 2011

Вы пробовали Mode = TwoWay в привязке?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...