2012-04-26 6 views
0

コンボボックスのフォントファミリを別のコンボボックスのフォントファミリにバインドしようとしています。それは、データテンプレートをコンボボックスの中に入れてから、私が取り出そうとしているまでうまくいきます。以下のコードを参照してください:内部のDataTemplateのバインディングコントロール

<Window Height="350" x:Class="MainWindow" Width="525" FontFamily="Palatino Linotype" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"> 
    <StackPanel Grid.Column="1" Name="ComboBoxStackPanel" Margin="6" VerticalAlignment="Top"> 
     <ComboBox FontFamily="Wingdings" Name="SS0"> 
      <ComboBox.ItemTemplate> 
       <DataTemplate x:Name="SSD"> 
        <Grid> 
         <Grid.RowDefinitions> 
          <RowDefinition SharedSizeGroup="Row" Height="Auto"/> 
         </Grid.RowDefinitions> 
         <TextBlock Name="SS1" FontSize="14" Text="{Binding}" FontFamily="Wingdings"/> 
        </Grid> 
       </DataTemplate> 
      </ComboBox.ItemTemplate> 
     </ComboBox> 
     <ComboBox FontFamily="{Binding FontFamily, ElementName=SS1}" SelectedIndex="1"> 
      Test 
      <ComboBoxItem FontStyle="Normal" FontWeight="Normal">Regular</ComboBoxItem> 
      <ComboBoxItem FontStyle="Italic" FontWeight="Normal">Italic</ComboBoxItem> 
      <ComboBoxItem FontStyle="Normal" FontWeight="Bold">Bold</ComboBoxItem> 
      <ComboBoxItem FontStyle="Italic" FontWeight="Bold">Bold Italic</ComboBoxItem> 
     </ComboBox> 
    </StackPanel> 
</Window> 

私はSS0にアクセスできますが、SS1にアクセスしようとすると失敗します。私はRelativeSourceを使ってみましたが、このコンテキストでどのように使用するのか混乱しています。

+1

あなたのSS0コンボボックスに 'ItemsSource'がありません。 – devuxer

+2

SS1にアクセスすることはできず、SS0コンボボックスにバインドしてください。 – Zabavsky

答えて

0

DataTemplateにはVisualTreeというプロパティがあり、これを使用して内容を調べることができますが、テンプレートが適用されるまで内容は存在しません。

関連する問題