我們有一些派生的控制類有特定的數據。這些控件還設置數據錯誤信息並綁定到某些特定屬性。例如,如果屬性IsNew(提供它)存在,則背景突出顯示。BindingExpression(path)錯誤會影響性能嗎?
現在我想知道,如果我使用這些控件並綁定到不揭露這種財產是否新款某些對象是什麼?它會影響Release版本的性能嗎?
我們有一些派生的控制類有特定的數據。這些控件還設置數據錯誤信息並綁定到某些特定屬性。例如,如果屬性IsNew(提供它)存在,則背景突出顯示。BindingExpression(path)錯誤會影響性能嗎?
現在我想知道,如果我使用這些控件並綁定到不揭露這種財產是否新款某些對象是什麼?它會影響Release版本的性能嗎?
本身的錯誤不會造成任何額外的性能問題,而是不斷Binding
檢查將並做導致一些很輕微的(幾乎無法察覺)的性能問題。這是WPF執行得不如其他許多語言的原因之一。但是,無論您是否有錯誤,這些檢查都會繼續進行。
發生錯誤的唯一時間實際上會減慢你的程序,當你正在使用PresentationTraceSources
to output information進入Visual Studio的輸出窗口或更糟糕的是,進入外部跟蹤文件。然而,即使在這種情況下,這是不可能的,你會發現在性能明顯下降,除非你已經設置了WPF跟蹤設置到Verbose
最詳細的設置。
感謝您的解釋。在發佈版本中,我們沒有任何這樣的跟蹤實用程序,所以它應該沒問題。而這種綁定性能對我來說總是一個難題,因爲它很難調試(因爲調試使用的不同於發佈的設置) – tete
沒有也不會影響性能,但是似乎你整個的做法是倒退。發佈相關代碼和XAML。 –
@HighCore我意識到這個設計並不完美。但是,我們有這種自定義控件的原因是,例如,我們有一些常用的組合框經常使用的項目,還有一些樣式的原因。坦率地說,我對這樣的設計也有一些猶豫,因爲它似乎將控件和Model/ViewModel緊密結合在一起。但是,這是我們目前的設計,我承認它不知何故使它更容易 – tete