【发布时间】:2016-05-30 23:16:34
【问题描述】:
我有一个具有视图模型的视图。这一切都很好。但是,我只想将一个按钮的数据上下文更改为后面的代码,以便我可以利用 DataTrigger 并将其绑定到后面代码中的属性。这是按钮:
<telerik:RadButton DataContext="{Binding RelativeSource={RelativeSource Self}}" Grid.Column="9" Grid.Row="4" FontWeight="Bold" FontSize="20" Click="RadCapButton_Click">
<telerik:RadButton.Content>
<Image Source="/TrainLoader;component/Images/UpArrow.png"/>
</telerik:RadButton.Content>
<telerik:RadButton.Style>
<Style TargetType="telerik:RadButton">
<Style.Triggers>
<DataTrigger Binding="{Binding IsCap}" Value="True">
<Setter Property="Background">
<Setter.Value>
<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
<GradientStop Color="GhostWhite" Offset="0"/>
<GradientStop Color="Yellow" Offset="0.5"/>
<GradientStop Color="Yellow" Offset="0.5"/>
<GradientStop Color="GhostWhite" Offset="1"/>
</LinearGradientBrush>
</Setter.Value>
</Setter>
</DataTrigger>
<DataTrigger Binding="{Binding IsCap}" Value="False">
<Setter Property="Background">
<Setter.Value>
<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
<GradientStop Color="GhostWhite" Offset="0"/>
<GradientStop Color="Gray" Offset="0.5"/>
<GradientStop Color="Gray" Offset="0.5"/>
<GradientStop Color="GhostWhite" Offset="1"/>
</LinearGradientBrush>
</Setter.Value>
</Setter>
</DataTrigger>
</Style.Triggers>
</Style>
</telerik:RadButton.Style>
</telerik:RadButton>
如你所见,我已经设置了
DataContext="{Binding RelativeSource={RelativeSource Self}}"
在按钮中。我认为这应该绑定到正确的代码后面?
在我的 DataTrigger 中,我试图绑定到 IsCap 属性,如下所示:
<DataTrigger Binding="{Binding IsCap}" Value="True">
但是,我收到了 DataBinding 错误:
System.Windows.Data Error: 40 : BindingExpression path error: 'IsCap' property not found on 'object' ''RadButton' (Name='')'. BindingExpression:Path=IsCap; DataItem='RadButton' (Name=''); target element is 'RadButton' (Name=''); target property is 'NoTarget' (type 'Object')
【问题讨论】:
标签: wpf xaml data-binding binding