ฉันใช้คลาส datacontextproxy ที่กำหนดโดย Dan Wahlin เพื่อแก้ไขสิ่งที่ดูเหมือนยากมากเป็นเวลาหลายชั่วโมงก่อนที่จะนำไปสู่การค้นพบครั้งนั้น
ฉันมีคอมโบบ็อกซ์ที่ผูกไว้กับ ObservableCollection<Accounts>
Combobox ยังมีค่า: DisplayMemberPath=AccountNumber
และ SelectedValue={Binding SelectedAccount}
จากนั้นฉันมี DataForm ที่มีคุณสมบัติ CurrentItem ซึ่งเชื่อมโยงกับ SelectedAccount ด้วย ภายใน DataForm ของฉัน ฉันมีฟิลด์จำนวนหนึ่งที่ต้องมีดรอปดาวน์เพิ่มเติม (AcctCode, UseCode ฯลฯ) เพื่อบรรเทาปัญหาการเชื่อมโยงที่ฉันพบภายใน DataForm ฉันจึงใช้ datacontextproxy ซึ่งช่วยให้ฉันตั้งค่า ItemsSource ของ cbobox ของฉันเป็น {Binding Source={StaticResource DataContextProxy}, Path=DataSource.AccountCodes}"
สิ่งนี้ใช้งานได้ดีในแง่ของผลลัพธ์สุดท้าย
ก่อนที่จะสะดุดกับสิ่งนี้ ฉันต้องดิ้นรนกับการค้นหานี้จริงๆ ฉันไม่ได้ใช้บริบทโดเมน ดังนั้นฉันจึงใช้ Kyle Mcllelans ComboBoxex ไม่ได้ และไม่สามารถใช้โซลูชันส่วนใหญ่ที่นำเสนอได้ ฉันพยายามสร้างอินสแตนซ์ของ ViewModel ของฉันเป็นทรัพยากรภายในเครื่องใน View ของฉัน แต่ ก) ฉันรู้สึกสกปรกในแง่ของ MVVM และ b) ไม่สามารถสร้างอินสแตนซ์ VM ใหม่ได้ เนื่องจาก VM ของฉันต้องการการอ้างอิงบริการจำนวนมาก ที่จะส่งต่อในการก่อสร้าง
ไม่ว่าในกรณีใด ฉันแค่สงสัยว่ามีวิธีใดที่ฉันควรทำสิ่งนี้ซึ่งมีประสิทธิภาพมากกว่า MVVM มากกว่า บำรุงรักษาได้ดีกว่า ดีที่สุดมากกว่า ฯลฯ
ขอบคุณ,
สกอตต์