Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Wpf 表达式混合中的数据触发器_Wpf_Vb.net_Datatrigger - Fatal编程技术网

Wpf 表达式混合中的数据触发器

Wpf 表达式混合中的数据触发器,wpf,vb.net,datatrigger,Wpf,Vb.net,Datatrigger,我有一个列表框,显示使用datatemplate格式化的装运项目(自定义类)(见下文)。模板中有一个border元素(我称之为Gem),用于显示哪个项目处于活动状态(未选中),哪个项目将是要添加产品的项目 Shipping类(Active)中有一个布尔属性,该属性在Gem元素的click事件处理程序中设置。通常情况下,宝石应该像第一张图像一样暗,然后在激活时亮起 我在DataTemplate中设置了一个DataTrigger来处理宝石颜色的变化 <DataTemplate.Tri

我有一个列表框,显示使用datatemplate格式化的装运项目(自定义类)(见下文)。模板中有一个border元素(我称之为Gem),用于显示哪个项目处于活动状态(未选中),哪个项目将是要添加产品的项目

Shipping类(Active)中有一个布尔属性,该属性在Gem元素的click事件处理程序中设置。通常情况下,宝石应该像第一张图像一样暗,然后在激活时亮起

我在DataTemplate中设置了一个DataTrigger来处理宝石颜色的变化

    <DataTemplate.Triggers>
 <DataTrigger Binding="{Binding Active}" Value="True">
  <Setter TargetName="ActiveGem" Property="Background">
   <Setter.Value>
    <RadialGradientBrush>
     <GradientStop Color="Red" Offset="0"/>
     <GradientStop Color="#FF820000" Offset="1"/>
    </RadialGradientBrush>
   </Setter.Value>
  </Setter>
 </DataTrigger>
 <DataTrigger Binding="{Binding Active}" Value="False">
  <Setter TargetName="ActiveGem" Property="Background">
   <Setter.Value>
    <RadialGradientBrush>
     <GradientStop Color="Red" Offset="0"/>
     <GradientStop Color="#FF820000" Offset="1"/>
    </RadialGradientBrush>
   </Setter.Value>
  </Setter> 
 </DataTrigger>
</DataTemplate.Triggers>
宝石不会返回到未点亮的状态(它们从一开始就没有)。它们只会一直亮着。有什么想法吗

科里


--奇怪的是,只在第一次编辑时出现在代码框中。。。现在修好了。

事实上,我已经解决了。当我制作RadialGradiantBrush时,我要么没有保存未照亮的笔刷,要么复制/粘贴了照亮的笔刷,没有对其进行编辑或其他操作。datatrigger正常启动,但由于两个渐变都是亮的,所以看起来什么都没有发生。抱歉给你添麻烦了


Cory

另外,我忘了问,有没有办法在Expression Blend 3中创建和编辑数据触发器?我看不出任何方法可以做到这一点,如果可能的话,我想使用设计器,因为我不确定上面用于绑定的语法。CoryNeed需要查看更多代码,特别是处理颜色变化的数据触发器。90%确定这就是问题所在。嗨,科里,你找到了在Expression Blend中处理数据触发器的方法吗?我受够了。谢谢对编码后的触发器工作正常。我分配错了二传手。
    Dim ActiveShipments = From ship In ShipmentData _
                         Where ship.Active = True
    For Each MyShipment As Shipment In ActiveShipments
        MyShipment.Active = False
    Next
    Dim Gem As Border = sender
    Dim ShipmentObject As ContentPresenter = Gem.TemplatedParent
    ShipmentObject.Content.Active = True