wpf 关于PathListBoxItem里添加Trigger

sl1264350023 2014-07-31 07:21:28
问题是这样的,我需要一个加入PathListBoxItem的style里的Trigger.
比如说这样。
<Trigger Property="Status" Value="True">

然后我在装着这个PathListBox的usercontrol(类名是UC_Meeting_Topology)对应的.cs文件中加了一个依赖属性。

#region DependencyProperty Status
public string Status
{
get { return (string)GetValue(StatusProperty); }
set { SetValue(StatusProperty, value); }
}

// Using a DependencyProperty as the backing store for Status. This enables animation, styling, binding, etc...
public static readonly DependencyProperty StatusProperty =
DependencyProperty.Register("Status", typeof(string), typeof(UC_Meeting_Topology), new PropertyMetadata(null));
#endregion

这样的。


现在,在Trigger中无法使用这个依赖属性。提示无法识别或访问成员“Status”。

怎么注册这个属性,才可以在PathListBoxItem的style中的Trigger中调用。

...全文
214 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
sl1264350023 2014-08-02
  • 打赏
  • 举报
回复
好了,谢谢各位给的意见,我已经搞定,在PathListBoxItem里我加了一个其它控件,放了一些动画,和数据,这个可以自定义了。嘿嘿,
exception92 2014-08-01
  • 打赏
  • 举报
回复
引用 4 楼 sl1264350023 的回复:
[quote=引用 3 楼 duanzi_peng 的回复:] 你把
<Trigger Property="Status" Value="True">
写到哪里了?
写在这个标签下 <ControlTemplate TargetType="{x:Type ec:PathListBoxItem}"> <ControlTemplate.Triggers>[/quote] 可以啊,没有出错啊。
sl1264350023 2014-08-01
  • 打赏
  • 举报
回复
引用 3 楼 duanzi_peng 的回复:
你把
<Trigger Property="Status" Value="True">
写到哪里了?
写在这个标签下 <ControlTemplate TargetType="{x:Type ec:PathListBoxItem}"> <ControlTemplate.Triggers>
exception92 2014-08-01
  • 打赏
  • 举报
回复
你把
<Trigger Property="Status" Value="True">
写到哪里了?
sl1264350023 2014-08-01
  • 打赏
  • 举报
回复
引用 1 楼 vbfool 的回复:
当然不能用了,那个Trigger只能针对当前目标,也是就是更改PathListBoxItem的属性,你在UserControl上加属性有毛用。请正确确定好作用范围,然后选择合适的方式来更新。
是这样嘛?,但是PathListBoxItem他是系统类库中的啊,还不能继承,可以提供一个解决方案吗。
vbfool 2014-08-01
  • 打赏
  • 举报
回复
当然不能用了,那个Trigger只能针对当前目标,也是就是更改PathListBoxItem的属性,你在UserControl上加属性有毛用。请正确确定好作用范围,然后选择合适的方式来更新。
vbfool 2014-08-01
  • 打赏
  • 举报
回复
来,说一个大概比较简单的,把你PathListBoxItem的DataContext绑定到你那个Status属性上,然后在这个Trigger里,设置你的DataContext属性,也许这样有效,你试试看吧。
exception92 2014-08-01
  • 打赏
  • 举报
回复
引用 11 楼 sl1264350023 的回复:
[quote=引用 10 楼 duanzi_peng 的回复:] [quote=引用 9 楼 sl1264350023 的回复:] [quote=引用 8 楼 sl1264350023 的回复:] [quote=引用 7 楼 duanzi_peng 的回复:] 就是想给pathListBoxItem里定义一个Trigger,这个Trigger的Property希望是我自定义的依赖属性。 那这个依赖项属性必须定义到你的 PathListBoxItem 类里边。
但是这个 PathListBoxItem 在Microsoft.Expression.Controls 里我怎么去改啊? [/quote] 关键是不给继承[/quote] public class myListBoxItem : System.Windows.Controls.ListBoxItem 不能通过这种方式继承吗??如果不行,那就没辙了。[/quote] 不行啊,无法继承,有sealed修饰符修饰。[/quote] 想想其它方式吧。。。
sl1264350023 2014-08-01
  • 打赏
  • 举报
回复
引用 10 楼 duanzi_peng 的回复:
[quote=引用 9 楼 sl1264350023 的回复:] [quote=引用 8 楼 sl1264350023 的回复:] [quote=引用 7 楼 duanzi_peng 的回复:] 就是想给pathListBoxItem里定义一个Trigger,这个Trigger的Property希望是我自定义的依赖属性。 那这个依赖项属性必须定义到你的 PathListBoxItem 类里边。
但是这个 PathListBoxItem 在Microsoft.Expression.Controls 里我怎么去改啊? [/quote] 关键是不给继承[/quote] public class myListBoxItem : System.Windows.Controls.ListBoxItem 不能通过这种方式继承吗??如果不行,那就没辙了。[/quote] 不行啊,无法继承,有sealed修饰符修饰。
exception92 2014-08-01
  • 打赏
  • 举报
回复
引用 9 楼 sl1264350023 的回复:
[quote=引用 8 楼 sl1264350023 的回复:] [quote=引用 7 楼 duanzi_peng 的回复:] 就是想给pathListBoxItem里定义一个Trigger,这个Trigger的Property希望是我自定义的依赖属性。 那这个依赖项属性必须定义到你的 PathListBoxItem 类里边。
但是这个 PathListBoxItem 在Microsoft.Expression.Controls 里我怎么去改啊? [/quote] 关键是不给继承[/quote] public class myListBoxItem : System.Windows.Controls.ListBoxItem 不能通过这种方式继承吗??如果不行,那就没辙了。
sl1264350023 2014-08-01
  • 打赏
  • 举报
回复
引用 8 楼 sl1264350023 的回复:
[quote=引用 7 楼 duanzi_peng 的回复:] 就是想给pathListBoxItem里定义一个Trigger,这个Trigger的Property希望是我自定义的依赖属性。 那这个依赖项属性必须定义到你的 PathListBoxItem 类里边。
但是这个 PathListBoxItem 在Microsoft.Expression.Controls 里我怎么去改啊? [/quote] 关键是不给继承
sl1264350023 2014-08-01
  • 打赏
  • 举报
回复
引用 7 楼 duanzi_peng 的回复:
就是想给pathListBoxItem里定义一个Trigger,这个Trigger的Property希望是我自定义的依赖属性。 那这个依赖项属性必须定义到你的 PathListBoxItem 类里边。
但是这个 PathListBoxItem 在Microsoft.Expression.Controls 里我怎么去改啊?
exception92 2014-08-01
  • 打赏
  • 举报
回复
就是想给pathListBoxItem里定义一个Trigger,这个Trigger的Property希望是我自定义的依赖属性。 那这个依赖项属性必须定义到你的 PathListBoxItem 类里边。
sl1264350023 2014-08-01
  • 打赏
  • 举报
回复
引用 5 楼 duanzi_peng 的回复:
[quote=引用 4 楼 sl1264350023 的回复:] [quote=引用 3 楼 duanzi_peng 的回复:] 你把
<Trigger Property="Status" Value="True">
写到哪里了?
写在这个标签下 <ControlTemplate TargetType="{x:Type ec:PathListBoxItem}"> <ControlTemplate.Triggers>[/quote] 可以啊,没有出错啊。[/quote] 是这样的,这个Status是我在其它类中自定义的,不是在pathListBoxItem中定义的,而且这个item的文件好像是在dll中的吧,我也不好改。, <Trigger Property="Status" Value="True">这样写会报不识别, #region DependencyProperty Status public string Status { get { return (string)GetValue(StatusProperty); } set { SetValue(StatusProperty, value); } } // Using a DependencyProperty as the backing store for Status. This enables animation, styling, binding, etc... public static readonly DependencyProperty StatusProperty = DependencyProperty.Register("Status", typeof(string), typeof(Mstatus) new PropertyMetadata(null)); #endregion 这个依赖属性可以加入到上面那个Trigger 的Property项去嘛?怎么放?现在就是放不过去。 就是想给pathListBoxItem里定义一个Trigger,这个Trigger的Property希望是我自定义的依赖属性。

8,737

社区成员

发帖
与我相关
我的任务
社区描述
WPF/Silverlight相关讨论
社区管理员
  • WPF/Silverlight社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧