我正在實施一個ConvertingCollection,它旨在提供轉換項目(B)的集合,並給出原始項目(A)的實時集合。集合B將反映集合A中發生的任何更改。目標是在MVVM中將它用作給定模型集合的ViewModel的集合,但我相信它可以用於許多不同的上下文中。ivalueconverter vs system.converter vs delegate
該類需要用戶提供將對象從A類型轉換爲B類型的方法。我可以找到幾種繼續進行的方法,但我不知道它們的區別,以確定什麼是最佳方法:
我可以要求一個
IValueConverter
,這似乎是WPF相關。現在,沒有什麼可以阻止在其他地方使用它,但它可能會令人困惑。儘管我的類首先打算在WPF上下文中使用,但它足以應用於許多其他上下文。另外,IValueConverter
可以從一個對象轉換爲對象,這意味着向下遊投射,並且在構建時不會崩潰。我可以選擇
System.Converter
。這允許使用async
,甚至更令人愉快,我可以要求特定的類型。另外,就我所知,這在人們的腦海裏並不是WPF相關的。最後,我可以和一個代表一起做TypeIn => TypeOut。沒有類需要實例化,強類型化,用戶可以使用任何IValueConverter,Converter或自定義函數來實現委託。
現在,我不知道爲什麼,當一切都可以用僅委派處理的Converter
和IValueConverter
存在。所以我想我錯過了那裏的東西。
任何人都可以請幫忙嗎? 在此先感謝, 致以問候
好點,我沒有想到這個選項。儘管如此,這意味着轉換將適用於所有用戶的項目,而不僅僅是在使用我的課程時......我將編輯我的主要信息以告知更多關於上下文的內容。 –