2012-04-26 106 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 2012-04-26 23:53:40

+2

您无法访问SS1,绑定到SS0组合框。 – Zabavsky 2012-04-27 05:25:48

回答

0

DataTemplate有一个VisualTree属性,你可以用它来询问它的内容,但是内容不存在,直到应用模板。