เมื่อใดจึงจะใช้ตัวแปลงค่าในแอปพลิเคชัน mvvm

หากมีใครใช้แอปพลิเคชัน WPF โดยใช้รูปแบบการออกแบบ MVVM มีสถานการณ์ใดที่จะใช้ตัวแปลงค่าหรือไม่ สำหรับฉันแล้วดูเหมือนว่าตัวแปลงค่าจะทำเหมือนกับที่โมเดลมุมมองทำเช่นกัน นั่นคือการเตรียมข้อมูลสำหรับมุมมอง

แล้วตัวแปลงค่ามีประโยชน์อะไรบ้าง?

ขอแสดงความนับถือ
โอลิเวอร์ ฮานัปปี


person Oliver Hanappi    schedule 10.02.2010    source แหล่งที่มา


คำตอบ (2)


ตัวแปลงค่ามีประโยชน์ในการแปลสถานะตรรกะเป็นสถานะภาพที่เกี่ยวข้องกับ UI เท่านั้น ตัวอย่างเช่น ตัวแปลง BooleanToVisibility มีอยู่ในแอปพลิเคชัน MVVM

อย่างไรก็ตาม ฉันจะไม่แนะนำให้ใช้ตัวแปลงเพื่อทำการแปลงที่ซับซ้อนด้วยพารามิเตอร์อินพุตต่างๆ หรือเรียกตรรกะทางธุรกิจใดๆ ในการใช้งาน นั่นคือสิ่งที่ VM

person olli-MSFT    schedule 10.02.2010
comment
คุณไม่ควรใช้ตัวแปลงค่าสำหรับบางอย่างเช่นการแปลง Bool-Visibility ทางออกที่ดีกว่าคือการใช้สไตล์ที่มี DataTrigger เชื่อมโยงกับตัวแปรโดยตรงใน XAML และใช้ Setter สำหรับการมองเห็น - person mDC; 22.06.2016

คำถามนี้อยู่ในใจฉันมาก เพราะฉันเขียนตัวแปลงมูลค่าจำนวนมากสำหรับโปรเจ็กต์ของฉัน ก่อนที่จะตระหนักว่าฉันสามารถทำทุกอย่างนั้นในโมเดลมุมมองของฉันได้ ฉันยังคงใช้มันอยู่ - ฉันแค่ไม่ได้อ้างอิงมันจาก XAML โมเดลมุมมองของฉันเรียกมันอย่างชัดเจน

จริงๆ แล้วการแยกการแปลงมูลค่าออกจากโมเดลมุมมองจะมีประโยชน์จริง ๆ แม้ว่าคุณจะไม่เรียกตัวแปลงมูลค่าจาก XAML และเพียงแค่เรียกพวกมันจากโมเดลมุมมองแทน ช่วยให้ทดสอบตรรกะการแปลงมูลค่าได้ง่ายขึ้น ใช้ซ้ำได้มากขึ้น และจัดองค์ประกอบได้ ฉันยังใช้ตัวแปลงค่าในชั้นการเข้าถึงข้อมูลของโมเดลของฉันโดยไม่มีผลกระทบที่เห็นได้ชัด

person Robert Rossney    schedule 10.02.2010