为什么控制模板在启动时为空?

时间:2017-01-01 00:48:02

标签: c# wpf wpf-controls expression-blend

我想获得Thumb的{​​{1}}。

Slider

这会抛出NRE,因为_thumb = ((Track)AssociatedObject.Template.FindName("PART_Track", AssociatedObject))?.Thumb; 为空。应用程序启动期间为什么Template为空?我该如何解决这个问题?

我尝试过以下代码

Template

即使我应用模板,它仍然为空。

之前我覆盖了滑块AssociatedObject.ApplyTemplate(); // no effect. returns false. var template = AssociatedObject.Template; // returns null. 而模板不为空。

OnApplyTemplate

但是现在我正在尝试为Slider创建Behavior而不是创建子类,所以我无法覆盖。任何想法如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

哦,我可以使用public class CartInfoProvider { private static ArrayList<Item> cart = new ArrayList<Item>(); public static void addToCart(Item i){ cart.add(i); } public static void removeFromCart(Item i){ cart.remove(i); } public static ArrayList<Item> getCart(){ return cart; } } 事件并在那里获取Thumb。

Loaded