我想從後面的代碼的GridView
設置樣式。由於這是ListView.View
依賴項屬性,我想監視它何時更改。Monitor for ListView.View的變化
試圖增加依賴屬性更改回調從this answer:
var handler = new DependencyPropertyChangedEventHandler(Handler);
DependencyPropertyDescriptor.FromProperty(ListView.ViewProperty,
typeof(ListView)).AddValueChanged(listView, handler);
其中處理器是
void Handler(object sender, DependencyPropertyChangedEventArgs e) { ... }
會導致編譯器錯誤:
Error CS1503 Argument 2: cannot convert from 'System.Windows.DependencyPropertyChangedEventHandler' to 'System.EventHandler'
嘗試投放(EventHandler)handler
仍保持編譯抱怨:
Error CS0030 Cannot convert type 'System.Windows.DependencyPropertyChangedEventHandler' to 'System.EventHandler'
如果我嘗試使用標準的事件處理程序:
var handler = new EventHandler(Handler);
其中
void Handler(object sender, EventArgs e) { ... }
使得它編譯,但隨後會在運行時崩潰與
An unhandled exception of type 'System.ArgumentException' occurred in PresentationFramework.dll
Additional information: Handler type is not valid.
還有什麼可以嘗試使AddValueChanged
處理依賴屬性回調?也許這種做法是錯誤的,爲什麼? ListView.View
更改時我還能得到通知嗎?
我不想應用this answer中的任一解決方案:無法使用綁定(值將在xaml中設置),也不希望僅爲此設置MyListView
。
感謝您檢查,這是真正的幫助。錯誤確實來自另一個事件處理程序(這使得我的問題很糟糕),但標題+答案可能對我猜測的其他人有用。 – Sinatr