Привязать к указанному XML-элементу - PullRequest
0 голосов
/ 20 марта 2009

Вкратце: я хочу определить, какой элемент XML ButtonSettings использовать для кнопки XAML, и использовать дочерние элементы выбранного элемента ButtonSettings в стиле, применяемом к этой кнопке.

Возможно ли это?

Образец XML:

<Buttons>
  <ButtonSettings ID="Bye">
    <Text lang="NL">Doei!</Text>
    <Text lang="DE">Tsusch!</Text>
    <Text lang="FR">Bonjour</Text>
    <Text lang="EN">CU</Text>
    <Image>D:\bye.PNG</Image>
  </ButtonSettings>
</Buttons>

Для каждой кнопки я хочу выбрать, какие ButtonSettings использовать, указав ее идентификатор. Затем я хочу передать этот ButtonSettings-элемент стилю как привязку или текстовый текст. Дочерние элементы выбранного элемента (например, Текст и Изображение) будут затем использоваться в стиле.

Выбор и определение содержимого кнопки работает идеально, если я определяю это непосредственно для кнопки, а не в стиле. Это XAML, который у меня есть для одной кнопки:

<Button
            x:Name="ByeButton" 
            DataContext="{StaticResource dataProvider}">
            <Button.Content>
                <Grid>
                    <Grid.RowDefinitions>
                        <RowDefinition/>
                        <RowDefinition/>
                    </Grid.RowDefinitions>
                    <TextBlock Grid.Row="0">
                        <TextBlock.Text>
                            <Binding XPath="//ButtonSettings[@ID='Bye']/Text[@lang='FR']" />
                        </TextBlock.Text>                        
                    </TextBlock>
                    <Image Grid.Row="1" Width="20" Height="20">
                        <Image.Source>
                            <Binding XPath="//ButtonSettings[@ID='Bye']/Image" />
                        </Image.Source>
                    </Image>
                </Grid>
            </Button.Content>
        </Button>

Я хочу иметь возможность определять // ButtonSettings [@ ID = 'id'] для каждой кнопки и позволять стилю обрабатывать оставшуюся часть расположения кнопок и размещения содержимого и текста. Можно ли это сделать?

1 Ответ

1 голос
/ 20 марта 2009

Я думаю, что вы ищете ItemsControl и поместите свою кнопку внутри DataTemplate, которая нацелена на ваш DataType.

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