わかりました、私は XAML と WPF にかなり慣れていないので、周期表を構築するための学習プロジェクトを試みています。XML の要素データのセットがあります。XAML でコントロール テンプレートを定義して、各化学元素の情報をグリッド内のボタンとして表示します。
<ControlTemplate x:Key="elementTemplate" TargetType="{x:Type Button}">
<Grid>
<Rectangle x:Name="backingRect" Margin="2" StrokeThickness="0" RadiusX="3" RadiusY="3" Fill="{TemplateBinding Property=Button.Background}">
<Rectangle.Effect>
<DropShadowEffect BlurRadius="8"/>
</Rectangle.Effect>
</Rectangle>
<Viewbox>
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="0.2*"/>
<RowDefinition Height="*"/>
<RowDefinition Height="0.2*"/>
</Grid.RowDefinitions>
<TextBlock FontWeight="DemiBold" TextAlignment="Center" Grid.Row="0" diag:PresentationTraceSources.TraceLevel="High">
<TextBlock.Text>
<Binding Source="{StaticResource elementData}">
<Binding.XPath>atom[@id='H']/scalar[@dictRef='bo:atomicNumber']</Binding.XPath>
</Binding>
</TextBlock.Text>
</TextBlock>
<TextBlock FontWeight="Bold" TextAlignment="Center" FontSize="28" Grid.Row="1" >
<TextBlock.Text>
<Binding Source="{StaticResource elementData}" >
<Binding.XPath>atom[@id='H']/label[@dictRef='bo:symbol']/@value</Binding.XPath>
</Binding>
</TextBlock.Text></TextBlock >
<TextBlock FontWeight="DemiBold" TextAlignment="Center" Grid.Row="2">1.0021</TextBlock>
</Grid>
</Viewbox>
</Grid>
</ControlTemplate>
これで、基礎となる XML データに静的にバインドするボタンが作成されます。私がやりたいことは、@id='H'
XPath 基準を、このテンプレートを使用するボタンのコンテンツを取得する式@id={TemplateBinding Button.Content}
(そのようなことが可能であれば)に置き換えることです。 '、それは質量、原子番号などの XML ファイル内の対応するデータを取得します。このような動的 XPath を XAML で指定し、それをコントロール テンプレートのプロパティにバインドするための構文は何ですか?