Silverlight, WPF ๋ฐ UWP์ ๊ฐ์ ์ฃผ์ XAML ๊ธฐ๋ฐ Microsoft ๊ธฐ์ ์๋ CollectionViewSource๋ผ๋ ํด๋์ค๊ฐ ์์ต๋๋ค. Xamarin Forms๋ ๊ทธ๋ ์ง ์์ต๋๋ค. INotifyCollectionChanged ์ธํฐํ์ด์ค๋ ๋ชจ๋ธ๊ณผ ์ฌ์ฉ์ ์ธํฐํ์ด์ค ๊ฐ์ ๋งค์ฐ ์ค์ํ ์ธํฐํ์ด์ค์ ๋๋ค. ์ธํฐํ์ด์ค๋ฅผ ์ฌ์ฉํ๋ฉด ํญ๋ชฉ ๋ชฉ๋ก์ ์์๋ฅผ ์์ ํ ์ง์ฐ๊ณ ํญ๋ชฉ์ด ์ถ๊ฐ๋๊ฑฐ๋ ์ ๊ฑฐ๋ ๋๋ง๋ค ํด๋น ์์๋ฅผ ์ฒ์๋ถํฐ ๋ค์ ์์ฑํ์ง ์๊ณ ๋ UI๋ฅผ ์๋ก ๊ณ ์น ์ ์์ต๋๋ค. ์ด๋ ๊ฒ ํ๋ฉด ์ฑ๋ฅ๊ณผ ์๋ต์ฑ์ด ํฅ์๋ฉ๋๋ค.
CollectionViewSource๋ ๊ธฐ์ ์ ๋ฐ์ ๊ฑธ์ณ INotifyCollectionChanged์ ๊ณตํต ๊ตฌํ์ ์ ๊ณตํ๊ณ INotifyCollectionChanged ์ธํฐํ์ด์ค๋ฅผ ํตํด ์ปจํธ๋กค ๊ฐ์ ๊ณตํต ํํฐ๋ง ๋ฐ ์ ๋ ฌ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ ๊ฒ์ ๋ชฉํ๋ก ํฉ๋๋ค. CollectionViewSource๋ฅผ ์ฌ์ฉํ ์ ์๋ ๊ฒฝ์ฐ ์ปจํธ๋กค์ ์์ฒด์ ์ผ๋ก ํํฐ๋ง ๋ฐ ์ ๋ ฌ์ ๊ตฌํํด์ผ ํ๋ฉฐ ์ด๋ ์ด๋ ์ ๋ ํดํน์ ๋๋ค. ์๋ฅผ ๋ค์ด ListView์๋ ์ด ์์ฑ์ด ์์ต๋๋ค(https://developer.xamarin.com/api/property/System.Windows.Forms.ListView.Sorting/).
CollectionViewSource๋ ๊ตฌํํ๋ ์ปจํธ๋กค์ด CollectionViewSource ํด๋์ค์ ์ด๋ฏธ ์กด์ฌํ๋ ๊ธฐ๋ฅ์ ๋ค์ ๊ตฌํํ ํ์๊ฐ ์๋๋ก ํํฐ๋ง, ๊ทธ๋ฃนํ ๋ฐ ์ ๋ ฌ์ ์ํ ์ถ์ํ ๊ณ์ธต์ ์ ๊ณตํฉ๋๋ค. ๋ํ ๋ชจ๋ธ์ ์ํฅ์ ๋ฏธ์น์ง ์๋ ์์ค์์ ํํฐ๋ง ๋ฐ ์ ๋ ฌ์ ์ ์ฉํ ์ ์์์ ์๋ฏธํฉ๋๋ค. ์๋ฅผ ๋ค์ด, ์ฃผ์ด์ง ๋ชฉ๋ก์ ์ ๋ ฌ์ด ๊ธฐ๋ณธ ๋ชจ๋ธ์ด ๋ณ๊ฒฝ๋ ๊ฒฝ์ฐ ์ผ๋ถ ๋ถ์์ฉ์ ์ผ์ผํฌ ์ ์๋ ๊ฒฝ์ฐ CollectionViewSource๊ฐ ๊ธฐ๋ณธ ๋ชจ๋ธ์ ๋ณ๊ฒฝํ์ง ์๊ธฐ ๋๋ฌธ์ CollectionViewSource๋ฅผ ์ฌ์ฉํ์ฌ ์ ๋ ฌ์ ๊ณ์ ์ํํ ์ ์์ต๋๋ค.
ListView ๋ฐ Picker ๋ฑ๊ณผ ๊ฐ์ XF ํดํท์ ๋ง์ ์ปจํธ๋กค์ ์๋ง๋ ์ด๋ค ๋ฐฉ์์ผ๋ก๋ ๊ธฐ๋ฅ์ ๊ตฌํํด์ผ ํ ๊ฒ์ ๋๋ค. ๋ค๋ฅธ ํ๋ซํผ์์ ํด๋์ค์ ๋ํ ๊ฐ์ฅ ์ผ๋ฐ์ ์ธ ์ฌ์ฉ์ DataGrid์ ๋ํ ๊ฒ์ด์ง๋ง ํ์ค XF ํดํท์๋ ์กด์ฌํ์ง ์์ต๋๋ค. ๊ทธ๋ฌ๋ Xamarin Forms์ ๋ํ ํ์ค์ด ์๋ ๊ฒฝ์ฐ SyncFusion DataGrid์ ๊ฐ์ ํ์ฌ ์ปจํธ๋กค์ ํ์ค Microsoft ํ์ค๊ณผ ์ผ์น์ํฌ ์ ์์ต๋๋ค.
MSDN ๊ธฐ์ฌ
https://msdn.microsoft.com/en-us/library/system.windows.data.collectionviewsource(v=vs.110).aspx
WPF ์ํ
https://github.com/Microsoft/WPF-Samples/tree/master/Data%20Binding/CollectionViewSource
ListViews, Pickers ๋ฐ ๋ ๋ง์ ์ปจํธ๋กค์ ์ด๋ฏธ INCC ์ด๋ฒคํธ๋ฅผ ์์ ํฉ๋๋ค.
@StephaneDelcroix , ์ถฉ๋ถํ ๊ณตํํฉ๋๋ค. ๊ทธ๋ฌ๋ ํ์ํ ๊ฒ์ ํ์ค INotifyCollectionChanged ๊ธฐ๋ฅ์ด ์ ๊ณตํ๋ ๊ฒ๋ณด๋ค ํจ์ฌ ๋ง์ต๋๋ค. ๊ธฐ๋ณธ์ ์ผ๋ก INCC๋ ๋ชฉ๋ก์ ์ธ๋ผ์ธ ์ ๋ ฌ ์์ด๋ ๊ทธ๋ค์ง ์ ์ฉํ์ง ์์ต๋๋ค. ObservableCollection<> ์ ๋ฐ์ธ๋ฉํ๋ฉด ๋ด์ฉ์ ์ด๋ป๊ฒ ์ ๋ ฌํด์ผ ํฉ๋๊น? ๊ธ์, ์๋ ๋ฒ๋ธ ์ ๋ ฌ์ ์ํํ ์ ์์ง๋ง Enumerable.OrderBy(TSource, TKey)๋ฅผ ํธ์ถํ๋ฉด ์ด์จ๋ ์ ์ฒด ์๋ก ๊ณ ์นจ์ ์ ๋ฐํ๋ ์๋ก์ด IEnumerable๋ก ๋๋ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ ๋์์ด ๋์ง ์์ต๋๋ค.
CollectionViewSource๋ ๋ฐฉ๊ธ ์ธ๊ธํ ๋ฌธ์ ์ ๋ํ ์๋ฃจ์ ์ ์ ๊ณตํ๋ XAML ๊ธฐ์ ์ ํฐ ๋ถ๋ถ์ด์์ต๋๋ค. ์ด๊ฒ์ด ์์ผ๋ฉด ์ ๋ ฌ์ ์์ํ๊ธฐ ์ํด ObservableCollection<>๊ณผ ๊ฐ์ ๋ชฉ๋ก์ ์ ๋ ฌํ๋ ์ฝ๋๋ฅผ ์์ฑํด์ผ ํฉ๋๋ค. ๊ทธ๋ฌ๋ ๊ทธ๋๋ ๋ถ์์ฉ์ ๋ฌธ์ ๊ฐ ๋ฐ์ํฉ๋๋ค. CollectionViewSource๊ฐ ์์ผ๋ฉด XF์๋ ๋ค๋ฅธ XAML ๊ธฐ์ ๊ณผ ํจ๊ป ํ์ค์ผ๋ก ์ ๊ณต๋๋ ๋ง์ ๊ธฐ๋ฅ์ด ๋๋ฝ๋ฉ๋๋ค.
์ด๊ฒ์ ํํฐ๋ง ๋ฐ ๊ทธ๋ฃนํ๋ ๊ฑด๋๋ฆฌ์ง๋ ์์ต๋๋ค... ์ด๊ฒ์ด ์์ผ๋ฉด SyncFusion๊ณผ ๊ฐ์ ํ์ฌ ์ปจํธ๋กค์ ํฌํจํ ๋ชจ๋ XF ์ปจํธ๋กค์ด ์์ฒด ์ ์ ์์ ์๋ํ์ง ์์ผ๋ฉฐ ๊ทธ ์ค ์ด๋ ๊ฒ๋ ๊ธฐ์กด์ ํ์ค ์์คํ ๊ณผ ํธํ๋์ง ์์ต๋๋ค. WPF ์ดํ XAML ์์ฝ์์คํ ์ ์ผ๋ถ์ ๋๋ค.
์ฌ๋ด์ผ๋ก, ๋ด ์์ฌ๋ ๊ตฌ์ฑ ๊ฐ๋ฅํ ์ ๋ ฌ, ํํฐ๋ง, ๊ทธ๋ฃนํ ๋ฑ์ ์ ๊ณตํด์ผ ํ๋ค๋ ์๋ ฅ์ ์ง์์ ์ผ๋ก ๋ฐ์์ต๋๋ค. ๋ฐ๋ผ์ ์ฐ๋ฆฌ๋ ์์ฒด ์ฝ๋๋ฅผ ์ฌ์ฉํ์ฌ ์ฑ์์ ๋ถ๋ถ ์๋ฃจ์ ์ ์ ๊ณตํ์ต๋๋ค. ๊ทธ๋ฌ๋ Silverlight ๋ฐ WPF์์ ์ฌ์ฉํ ์ ์์๋ ๊ฒ๊ณผ ๊ฐ์ ๊ฒ์ ์ ๊ณตํ์ง ์์ต๋๋ค. ์ฐ๋ฆฌ๋ ๊ธฐ๋ฅ์ ์ป๊ธฐ ์ํด Microsoft ํจ๋ฌ๋ค์์์ ์์ ํ ๋ฒ์ด๋ ๊ณณ์์ SyncFusion ์ปจํธ๋กค์ ์ฌ์ฉํด์ผ ํ์ต๋๋ค. ์ฐ๋ฆฌ๋ ์ด๋ฌํ ์ปจํธ๋กค๋ก ์ธํด ์ถฉ๋ ๋ฑ์ด ๋ฐ๋ณต์ ์ผ๋ก ๋ฐ์ํ์ฌ ์ด์ ์์กดํ ์ ์์ต๋๋ค.
CollectionViewSource๋ XAML ๊ธฐ์ ๊ณต๊ฐ์ ๊ธฐ๋ณธ ์๊ตฌ ์ฌํญ์ ๋๋ค.
INCC != ์ปฌ๋ ์ ๋ทฐ ์์ค
CollectionViewSource
์์ฑ์ ๋ฐฉํดํ๋ ๊ฒ์ด ์์ต๋๊น?
๋๋ฝ๋ ์ ์ผํ ๋ถ๋ถ์ ResourceDictionaries์ ๋ฐ์ธ๋ฉ ๊ฐ๋ฅํ ๊ฐ์ฒด๊ฐ ์์๋ ๋ฐ์ธ๋ฉ ์ปจํ ์คํธ๋ฅผ ๊ฐ์ ธ์ค๋ ๊ธฐ๋ฅ์ ๋๋ค. ์ด๊ฒ์ ๊ณ ์น ์ ์์ง๋ง ์์ค์ ๋ฐ์ธ๋ฉํ์ฌ ๋ฌธ์ ๋ฅผ ํด๊ฒฐํ๋ ๊ฒ์ ๋งค์ฐ ์ฝ์ต๋๋ค.
๊ทธ๋ค ์ค ๋๊ตฌ๋ ํ์ค ์์คํ ๊ณผ ํธํ๋์ง ์์ต๋๋ค.
์ด๋ค ํธํ์ฑ์ ๋ง์ํ์๋ ๊ฑด๊ฐ์? XAML์ด CollectionViewSources์ ๋ํด ์ทจํ ์ผ๋ฐ ๊ตฌ๋ฌธ๋ฟ์ ๋๊น?
์ด๋ค ๊ท๋ชจ์ ์ปฌ๋ ์ ์ ๋ํด ์ด์ํ๊ณ ์์ต๋๊น?
ObservableCollection<> ์ ๋ฐ์ธ๋ฉํ๋ฉด ๋ด์ฉ์ ์ด๋ป๊ฒ ์ ๋ ฌํด์ผ ํฉ๋๊น?
๋ด๊ฐ ๋ณธ ๋๋ถ๋ถ์ ๊ตฌํ์ ReadOnly ํ๋ก์ ๋ชฉ๋ก์ ์ฌ์ฉํฉ๋๋ค. ReactiveList, DynamicData, ๊ทธ๋ฆฌ๊ณ CollectionViewSource๊ฐ ๋ ธ์ถ๋๋ ICollectionView์์๋ ์ด ์์ ์ ์ํํ๋ค๊ณ ํ์ ํฉ๋๋ค. ์์ค ๋ชฉ๋ก์ ๋ํด ์๋ํ์ง ์์ผ๋ฉฐ ์์ค ๋ชฉ๋ก์ ์ฝ๊ธฐ ์ ์ฉ ๋ณด๊ธฐ์ ํฌ์ํฉ๋๋ค. ์์ ์ ๋ฐ์ดํธ๋ ๋๊ธฐํ๋์ง๋ง ํฐ ์ ๋ฐ์ดํธ๋ ์ฌ์ค์ ๋ฐ ์๋ก ๊ณ ์นจ์ ์ ๋ฐํฉ๋๋ค.
๋๋ ๋น์ ์ด ๋ฐ์ ํฌ์ด ์๋๋ผ๋ฉด ์ด๊ฒ์ด ๋น ์คํํฐ๋ผ๋ ๊ฒ์ ์๊ณ ์์ง๋ง
https://github.com/RolandPheasant/DynamicData
๋๋๊ณ ๋ ํฐ ๋ฐ์ดํฐ ์ธํธ๋ฅผ ์ฒ๋ฆฌํ๋ ๋ฐ ๋ฌธ์ ๊ฐ ๋ฐ์ํ ์ ์ด ์์ต๋๋ค.
๋๋ ์ด๊ฒ์ด ์ ์ ๊ณต๊ฐ๋ผ๊ณ ํ์ํ๋๋ฐ, ๋๋ ์ด๊ฒ์ ๋ํด ์กฐ๊ธ ๊ถ๊ธํ๊ธฐ ๋๋ฌธ์ ๋๋ค.
@StephaneDelcroix
์์ ์ CollectionViewSource๋ฅผ ์์ฑํ๋ ๊ฒ์ ๋ฐฉํดํ๋ ๊ฒ์ด ์์ต๋๊น?
ํด๋์ค์ ์์ชฝ์์ ๊ณ ๋ คํด์ผ ํ ๊ตฌํ์ด ์์ต๋๋ค. ์ฆ, ํด๋์ค ์์ฒด์์ ์ ๋ ฌ, ํํฐ๋ง ๋ฐ ๊ทธ๋ฃนํ๋ฅผ ์ํํด์ผ ํฉ๋๋ค. ์, ์ง์ ์์ฑํ ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ๊ทธ๊ฒ์ ๋ฐฉ์ ์์ ์ผ๋ถ์ผ ๋ฟ์ ๋๋ค. ์ปจํธ๋กค์ ์ ๋ ฌ, ํํฐ๋ง ๋ฑ์ ์ง์ํ๋ ๋ ผ๋ฆฌ๋ฅผ ๊ตฌํํด์ผ ํฉ๋๋ค. ์๋ฅผ ๋ค์ด WPF ๋ฐ Silverlight์์ DataGrid๋ ์ฃผ์ด์ง ์ด์ ํค๋๋ฅผ ํด๋ฆญํ ๋ CollectionViewSource์ ์ํธ ์์ฉํฉ๋๋ค. ์ด๊ฒ์ ์ด์ ์ํด ๋ฆฌ์กฐํธ๋ฅผ ์ผ์ผํฌ ๊ฒ์ ๋๋ค. Xamarin Forms์๋ ํ์ฌ ๊ณต์ DataGrid๊ฐ ์์ต๋๋ค. ๊ทธ๋ฌ๋ DataGrid๊ฐ ์๋ค๋ ๋ถ์์ฉ์ SyncFusion๊ณผ ๊ฐ์ ํ์ฌ์์ ์์ฒด DataGrid๋ฅผ ์์ฑํ์์ ์๋ฏธํฉ๋๋ค. DataGrid ์์ฒด์๋ ๋ฌธ์ ๊ฐ ์์ง๋ง ํ์ค Microsoft CollectionViewSource์ ์ปจํธ๋กค์ ๋ถ๋ฆฌํ์ง ์์์ต๋๋ค. ๋ชจ๋ ์ ๋ ฌ ๋ ผ๋ฆฌ๋ ํด๋น ์ปจํธ๋กค์ ๋ด์ฅ๋์ด ์์ผ๋ฉฐ ๋ค๋ฅธ ์ปจํธ๋กค๊ณผ ๊ณต์ ๋์ง ์์ต๋๋ค. ๋ฐ๋ผ์ ์ ๋ ฌ ๊ธฐ๋ฅ์ ์ํ๋ฉด ์ปจํธ๋กค์ ์ฌ์ฉํ๊ฑฐ๋ ์ ํ ์ฌ์ฉํ์ง ์์์ผ ํฉ๋๋ค. CollectionViewSource์ ์ ์ฒด ๋ฒ์ ์ ์์ฑํ๋๋ผ๋ ์ด ํค๋ ํด๋ฆญ ์ด๋ฒคํธ๋ฅผ ์บก์ฒํ๊ณ CollectionViewSource์์ ์ ๋ ฌ ์ด์ ์ค์ ํ๊ธฐ ์ํด DataGrid์ ๊ฐ์ ๊ฒ์ ์์ฑํด์ผ ํฉ๋๋ค.
Xamarin Forms๋ ์ด๋ฅผ ์ํด DataGrid๋ฅผ ๋ง๋ค ํ์๊ฐ ์์ต๋๋ค. ListView ๋ฐ Pickers ๋ฑ์ ์ ์ฉํ ์ ์์ต๋๋ค. ๊ทธ๋ฌ๋ ๋ค๋ฅธ ์ปจํธ๋กค๊ณผ ๊ธฐ๋ฅ์ ๊ตฌํํด์ผ ํฉ๋๋ค. ์๋ฅผ ๋ค์ด, ์ฐ๋ฆฌ ์ฑ์์๋ ๊ธฐ๋ณธ ์์ค(์ค๊ธ ํด๋์ค)์์ CollectionViewSource์ ๋งค์ฐ ์ ์ฌํ ๊ฒ์ ๋ง๋ค์์ต๋๋ค. ์ฐ๊ฒฐ๋ ๊ฒฝ์ฐ ์ค๊ฐ ํด๋์ค์ ์ ๋ ฌ ์ด์ ์ค์ ํ๊ณ ๊ธฐ๋ณธ ์์ค ์ปฌ๋ ์ ๊ณผ ๋ ๋ฆฝ์ ์ผ๋ก ์ ๋ ฌํ ์ ์๋ ButtonBehaviors๋ฅผ ๋ง๋ค์์ต๋๋ค.
์ด๊ฒ์ ํ๋์ ํด๋์ค๋ณด๋ค ํจ์ฌ ๋ ํฐ ์ธํ๋ผ์ ๋๋ค. ๋ค๋ฅธ XAML ํ๋ซํผ์์ CollectionViewSource๋ ๊ฒฉ๋ฆฌ๋ ํด๋์ค๊ฐ ์๋๋๋ค. ํน์ ๋ฐฉ์์ผ๋ก ๋ค๋ฅธ ํด๋์ค์ ์ํธ ์์ฉํฉ๋๋ค. ์ด ๊ธฐ๋ฅ์ ์ํด์๋ ์ผ๋ จ์ ์ปจํธ๋กค, ๋์, ๋ช ๋ น ๋ฑ์ด ํ์ํฉ๋๋ค. ์๋ฅผ ๋ค์ด ์์ฑ โโ์ด๋ฆ ๋ชฉ๋ก(๋ณ์นญ๋ณ)์ ํ์ํ๋ Action Sheet๊ฐ ์์ ์ ์์ผ๋ฉฐ ์ฌ์ฉ์๊ฐ ๋ชฉ๋ก์์ ํญ๋ชฉ์ ์ ํํ๋ฉด CollectionViewSource๊ฐ ํด๋น ์์ฑ๋ณ๋ก ์ ๋ ฌ์ ํธ๋ฆฌ๊ฑฐํฉ๋๋ค.
์ด๊ฒ์ด ๊ณง ๊ตฌํ๋์ง ์์ผ๋ฉด ์ 3์ ์ปจํธ๋กค ๋ฑ์ด ๋ ์์ฒด์ ์ผ๋ก ์๋ํ์ฌ ๊ฐ ์ปจํธ๋กค์ ํน์ ํ ํดํน ์ ๋ ฌ/ํํฐ๋ง ๊ธฐ๋ฅ์ ์ ์ ๋ ๋ง์ ์์ ์ ์์ ๋ถ๊ฒ ๋ฉ๋๋ค. ์ฝ๋๋ ๋ชฉ๋ก ํ์ ์ปจํธ๋กค ๊ฐ์ ๊ณต์ ๋์ง ์์ผ๋ฉฐ ์ด๋ ์ผ๋ฐ์ ์ผ๋ก ์ฅ๊ธฐ์ ์ผ๋ก Xamarin Forms์ ์ข์ง ์์ต๋๋ค.
๋ค์์ ํน์ ์ปจํธ๋กค์ ๋ํด ๊ตฌํ๋์์ง๋ง ํด๋น ๊ธฐ๋ฅ์ด ๋ค๋ฅธ ์ ์ฌํ ์ปจํธ๋กค๊ณผ ๊ณต์ ๋์ง ์๋ ์ ๋ ฌ ๊ธฐ๋ฅ์ ์์ ๋๋ค. https://developer.xamarin.com/api/property/System.Windows.Forms.ListView.Sorting /
@PureWeen , ์ด ๋ฌธ์ ์ ๋ํ ์ ๋ณด๊ฐ ํ์ํฉ๋๊น? CollectionViewSource๋ XAML ๊ธฐ๋ฐ ๊ธฐ์ ์ ๋ฐ์ ๊ฑธ์น Microsoft ํ์ค์ ๋๋ค. ์ด๋ค ์ ๋ณด๊ฐ ๋ ํ์ํฉ๋๊น?
์ฃ์กํฉ๋๋ค. ์ฌ๊ธฐ์์ ๊ทํ์ ์ง๋ฌธ์ ๋์ณค์ ๊ฒ์ ๋๋ค.
์ด๋ค ํธํ์ฑ์ ๋ง์ํ์๋ ๊ฑด๊ฐ์? XAML์ด CollectionViewSources์ ๋ํด ์ทจํ ์ผ๋ฐ ๊ตฌ๋ฌธ๋ฟ์ ๋๊น?
WPF, Silverlight ๋ฐ UWP์์ CollectionViewSource๋ฅผ ๊ตฌํํ๋ ์ปจํธ๋กค์ ๋์ผํ ๋ฐฉ์์ผ๋ก ์๋ํฉ๋๋ค. ๋๋ฝ๋ CollectionViewSource์ ๊ตฌ๋ฉ์ ์ฑ์ฐ๊ธฐ ์ํด ํ์ฌ ์ปจํธ๋กค(์: SfDataGrid)์ด ๋์ ๋๋ฉด ํ์ค Microsoft XAML ๊ธฐ๋ฐ CollectionViewSource ๊ธฐ๋ฅ๊ณผ ํธํ๋์ง ์๋ ์ ๋ ฌ, ํํฐ๋ง ๋ฐ ๊ทธ๋ฃนํ๊ฐ ์๋ฐ๋ฉ๋๋ค. ์ปจํธ๋กค์ ๊ตฌ์ถํ๋ ์ 3์์๊ฒ๋ ํญ์ ๊ณ ์ ํฉ๋๋ค.
์ด๊ฒ์ ์ ๋์ ์ผ๋ก ํ์ํฉ๋๋ค.
@jassmith ๊ฐ์ฌํฉ๋๋ค!
์๋ค์, ์ด๊ฑด ๋๋ฌด ํ์ํด. ํํฐ๋ ์์๊ฐ ๋ณ๊ฒฝ๋์๊ธฐ ๋๋ฌธ์ ๋ชฉ๋ก์ ๋ค์ ์์ฑํ์ญ์์ค.
์ฌ๊ธฐ๋ฅผ ์ฐธ์กฐํ์ญ์์ค. ์ค์ ๋ก ์ต์์ ์๋ฃจ์
์ ์๋๋๋ค.
https://forums.xamarin.com/discussion/32481/observablecollection-with-filter
ํ์คํ ํ์ํฉ๋๋ค. ์ด๊ฒ์ Xamarin์์ ๊ณ ํต์ค๋ฝ๊ฒ ๋๋ฝ๋ WPF์ ๋งค์ฐ ์ ์ฉํ ํญ๋ชฉ์ ๋๋ค.
์ด ๊ธฐ๋ฅ ์์ฒญ์ WPF System.Windows.Data.CollectionView ๋๋ System.ComponentModel.ICollectionView์ ์ ํ ๋ค๋ฅธ ์๋ก์ด Xamarin Forms 4.0 CollectionView ์ปจํธ๋กค์ ์ด๋ป๊ฒ ๋ฐฉํดํ๋์?
์ ๋ WPF์ ๋ํ ์๋ ๊ฐ์ ๊ฒฝํ์ ๋ฐํ์ผ๋ก Xamarin Forms๋ฅผ ์ฌ์ฉํ๊ธฐ ์์ํ์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ Xamarin์ CollectionViewSource ๊ตฌํ์ด ์๋ค๋ ์ ์ ๋งค์ฐ ์ค๋งํ์ต๋๋ค.
CollectionViewSource์ ๊ฐ์ ๊ฒ์ด ์๋์ง ๊ถ๊ธํด์ ์ฌ๊ธฐ์ ์์ต๋๋ค. ์ด๋ฌํ ๊ธฐ๋ฅ์ ๋ชจ๋ฐ์ผ ์ฑ ๋น๋์ ์ฌ์ฉํ ๊ธฐ์ (์: Xamarin.Forms)์ ๊ณ ๋ คํ ๋ ์ค์ํฉ๋๋ค.
๋ด์ฅ๋ ์ง์์ด ์๋ ํ, ๋๋ ๋ด ์์ ์ ๊ตฌํ์ ๊ณ ์ํด์ผ ํ ๊ฒ์
๋๋ค.
๋ด๊ฐ ๋๋ฝ๋ ๊ฒ์ด ์๋ค๋ฉด UWP์ CollectionViewSource ์๋ ๊ธฐ๋ณธ ์ ๊ณต ์ ๋ ฌ ๊ธฐ๋ฅ์ด ์์ต๋๋ค.
WindowsCommunityToolkit ์๋ ๊ทธ๋ฃนํ ๋ฐ ์ ๋ ฌ์ ์ถ๊ฐํ๋ UWP ์ถ๊ฐ ๊ธฐ๋ฅ
๋๋ ์ธ๋ถ ์ฌํญ์ ์ต์ํ์ง ์์ต๋๋ค. ๊ทธ๊ณณ์์ ์ํ๋ ์์ ์ ํ์ธํ๊ณ UWP์์ ์์ ํ๋ ์ฌ๋๋ค๊ณผ ํ์ค ์๋ฃจ์ ์ ์กฐ์ ํ๋ ๋ฐ ๋์์ด ๋๋ ๊ฒฝ์ฐ๋ฅผ ๋๋นํ์ฌ ์ธ๊ธํฉ๋๋ค.
๋ํ ์ด UWP ๋๋ฝ ๊ธฐ๋ฅ์ ๋ํ SO ๋ ผ์ ๋ฐ ์ผ๋ถ ๊ฐ์ ์๋. .
"์ด๊ฒ์ด ํ์ํ๋ค"๋ ๋ฐ์ง์ ๋ด ๊ฐ์ ๋ชจ์๋ฅผ ๋์ง๊ธฐ ์ํด ์ฌ๊ธฐ์ ์์ต๋๋ค. ์๋ ํํฐ๋ง, ์ ๋ ฌ ๋ฐ ๊ทธ๋ฃนํ๋ WPF/XAML ํ๊ฒฝ์ ๊ธฐ๋ณธ์ ์ธ ๋ถ๋ถ์ด๋ฏ๋ก ์ฌ๊ธฐ Xamarin์ ํ์ํ์ง ์ฌ๋ถ์ ๋ํ ์ง๋ฌธ์ด ์ ์๋์ง ๊ถ๊ธํฉ๋๋ค.
@jbhaywood ๋ค๋ฅธ ๋ง์ ๊ฒ๋ค๊ณผ ๋ง์ฐฌ๊ฐ์ง๋ก ์์ ํ ํ์ํฉ๋๋ค.
๋ถํํ๋ CollectionViewSource์ ๊ฐ์ ๊ฒ์ ์น์ํ์ง ์์์ Microsoft ์ง์์ด ๋ธ๋ก๊ทธ ๊ฒ์๋ฌผ์ด๋ ํ์์์ ์๋ํ ์ ์์ต๋๋ค. ๊ทธ๋ฆฌ๊ณ Microsoft๋ Xamarin.Forms ์์ฒด๋ฅผ ์์ฌ ์ ํ์ ์ฌ์ฉํ์ง๋ ์๊ธฐ ๋๋ฌธ์ ์ฐ๋ฆฌ ๊ฐ๋ฐ์๋ค์ ๊ณ ์ถฉ๋ ๋๋ผ์ง ์์ต๋๋ค.
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
์ด๊ฒ์ ์ ๋์ ์ผ๋ก ํ์ํฉ๋๋ค.