OK、次のような XElement があります。
<authentication mode="Forms">
<forms loginUrl="login.aspx" name=".LOGIN" protection="All" timeout="4800" path="/" />
</authentication>
次に、XAML で次のような ContentControl をセットアップします。
<ContentControl Content="{Binding Data}">
<ContentControl.ContentTemplate>
<DataTemplate>
<DataTemplate.Triggers>
<DataTrigger Binding="{Binding Path=Attribute[mode].Value}" Value="Forms">
<Setter Property="ContentTemplate" Value="{StaticResource FormsTemplate}"/>
</DataTrigger>
</DataTemplate.Triggers>
</DataTemplate>
</ContentControl.ContentTemplate>
</ContentControl>
Data は、XElement を含むパブリック プロパティです。私のテンプレートは次のようになります。
<DataTemplate x:Key="FormsTemplate">
<StackPanel>
<StackPanel Orientation="Horizontal">
<TextBlock Text="Login URL"/>
<TextBox Text="{Binding Path=Element[forms].Attribute[loginUrl].Value}"/>
</StackPanel>
<StackPanel Orientation="Horizontal">
<TextBlock Text="Name"/>
<TextBox Text="{Binding Path=Attribute[name].Value}"/>
</StackPanel>
<StackPanel Orientation="Horizontal">
<TextBlock Text="Protection"/>
<TextBox Text="{Binding Path=Attribute[protection].Value}"/>
</StackPanel>
<StackPanel Orientation="Horizontal">
<TextBlock Text="Timeout"/>
<TextBox Text="{Binding Path=Attribute[timeout].Value}"/>
</StackPanel>
<StackPanel Orientation="Horizontal">
<TextBlock Text="Path"/>
<TextBox Text="{Binding Path=Attribute[path].Value}"/>
</StackPanel>
</StackPanel>
</DataTemplate>
<DataTemplate DataType="passport">
<StackPanel>
<StackPanel Orientation="Horizontal">
<TextBlock Text="Redirect URL"/>
<TextBox Text="{Binding Path=Attribute[redirectUrl].Value}"/>
</StackPanel>
</StackPanel>
</DataTemplate>
なぜこれが機能しないのですか?これを行うと、画面に何も表示されません。