該主題是我定義了一個綁定到DataContext的自定義控件。我希望根據DataContext的特定屬性值動態更改控件模板。如何在WPF中有效地更改控件模板?
我想到了兩種方式,但我不知道哪種方式更好。
1.不要在ResourceDictionary中使用控件模板,並且控件的所有細節都在C#代碼中定義。使用DependencyProperty CallBack方法在DataContext的屬性值更改時呈現控件。
2.在ResourceDictionary中定義控件模板並使用DataTrigger來更改'Control.Template'屬性。
在我的應用程序中,會創建成千上萬個此類型的實例,所以如果ControlTemplate changging無效,這實在是不可接受的。
您能否給我一些建議或更好的解決方案?
模板渲染完成後是否需要更改模板?所以控件加載後屬性值發生了變化? –
當屬性值發生變化時,應該更改模板。例如,屬性'Shape'可能具有不同的值,例如'Triangle''Rectangle''Circle'等等,當值爲改變。 @Martin Moser – Claw