我使用MVVM體系結構來解耦我的應用程序。也就是說,你經常看到駐留在資源字典在自己的XAML文件類似在運行時切換數據模板 - 刷新問題
var u = new UserControl();
u.Content = new MyCustomType(); // MyCustomType is not a control
用戶界面是通過數據模板定義
<ResourceDictionary ...>
<DataTemplate DataType="{x:Type local:MyCustomType}">
...
我在應用程序啓動時加載的資源和應用程序高興地展示我的用戶界面。但是,如果我刪除數據模板並添加一個新的數據模板(相同的鍵,相同的數據類型),UI仍然使用舊的數據模板。當然,我可以重新設置我的容器的內容,以強制刷新,但是這似乎是愚蠢的,因爲我必須通知有關的變更都控制,這樣
var tmp = control.Content;
control.Content = null;
control.Content = tmp; // New data template will be used
任何其他方法?謝謝!
爲我工作的臨時解決方案是在視圖上調用UpdateLayout()。 – Kolky 2012-04-02 14:17:56