【发布时间】:2009-03-20 10:36:57
【问题描述】:
简而言之:我想定义用于 XAML 按钮的 XML ButtonSettings 元素,并在应用于该按钮的样式中使用所选 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,并指定它的 ID。然后,我想将该 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'] 并让样式处理其余的按钮布局和内容和文本放入。 这个可以吗?
【问题讨论】:
标签: .net wpf data-binding xaml xpath