2010-05-26 84 views
3

这里是什么,我试图完成一个例子:如何将另一个DependencyProperty绑定到CheckBox的IsChecked属性?

<Window x:Class="CheckBoxBinding.MainWindow" 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    Title="MainWindow" Height="350" Width="525"> 

<StackPanel> 
    <CheckBox Name="myCheckBox">this</CheckBox>  
    <Grid> 
     <Grid.Resources> 
      <Style TargetType="ListBox"> 
       <Style.Triggers> 
        <Trigger Property="{Binding ElementName=myCheckBox, Path=IsChecked}" Value="True"> 
         <Setter Property="Background" Value="Red" /> 
        </Trigger> 
       </Style.Triggers> 
      </Style> 
     </Grid.Resources> 
     <ListBox> 
      <ListBoxItem>item</ListBoxItem> 
      <ListBoxItem>another</ListBoxItem> 
     </ListBox> 
    </Grid> 
</StackPanel> 
</Window> 

当我尝试运行它,我得到这个XamlParseException:

A“绑定”不能在“属性设置'Trigger'类型的属性。 '绑定'只能在DependencyObject的DependencyProperty上设置。

那么如何将ListBox上的属性绑定到CheckBox的IsChecked属性?

回答

16

尝试使用DataTrigger。更换您的Grid.Resources与以下,它的工作原理:

<Grid.Resources> 
     <Style TargetType="ListBox"> 
      <Style.Triggers> 
       <DataTrigger Binding="{Binding ElementName=myCheckBox, Path=IsChecked}" Value="True"> 
        <Setter Property="Background" Value="Red" /> 
       </DataTrigger> 
      </Style.Triggers> 
     </Style> 
    </Grid.Resources> 
+0

谢谢!这也有道理:) – 2010-05-26 20:16:27

相关问题