2009-03-20 13 views
0

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

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

Образец 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 использовать, указав его ID. Затем, я хочу передать этот элемент ButtonSettings в качестве привязки или datacontext. В этом стиле будут использоваться дочерние элементы выбранного элемента (например, текст и изображение).

Выбор и определение содержимого кнопки отлично работает, если я определяю его непосредственно на кнопке, а не в стиле. Это 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

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

+0

Ну, я хочу указать, для каждой кнопки, какой экземпляр ButtonSettings использовать, передав Button ID экземпляра Buttonsettings-instance. С элементом ItemsContol, как потерянный ящик, listbox указывает, что получает каждый элемент. В этом случае у меня меньше контроля над своим пользовательским интерфейсом. – Loy