codebase นี้ได้รับการดูแลอย่างแข็งขัน แต่ไม่ได้รับการพัฒนาอย่างแข็งขัน คำขอดึงด้วยคุณสมบัติใหม่จะมีโอกาสที่จะผอมบางมากขึ้น ในหลาย ๆ ด้าน codebase นี้คือ "เสร็จสิ้น"
โปรดอย่าลังเลที่จะใช้รหัส แต่งดเว้นจากการมีความหวังว่าจะมีแรงบันดาลใจในการเป็นอะไรมากกว่าที่เป็นอยู่ในปัจจุบัน
กล่องโต้ตอบ MVVM เป็นไลบรารีที่ทำให้แนวคิดของการเปิดกล่องโต้ตอบเปิดจากโมเดลมุมมองเมื่อใช้ MVVM ใน WPF (เฟรมเวิร์กการนำเสนอของ Windows) ช่วยให้นักพัฒนาสามารถเขียนการทดสอบหน่วยสำหรับโมเดลมุมมองได้อย่างง่ายดายในการทดสอบหน่วยลักษณะเดียวกันจะถูกเขียนขึ้นสำหรับชั้นเรียนอื่น ๆ
ห้องสมุดได้สร้างการสนับสนุนสำหรับกล่องโต้ตอบต่อไปนี้:
หากต้องการเปิดหน้าต่างโมดอลให้ตกแต่งมุมมองด้วยกล่อง DialogServiceViews.IsRegistered คุณสมบัติที่แนบมา
< UserControl
x : Class = " DemoApplication.Features.Dialog.Modal.Views.ModalDialogTabContent "
xmlns = " http://schemas.microsoft.com/winfx/2006/xaml/presentation "
xmlns : x = " http://schemas.microsoft.com/winfx/2006/xaml "
xmlns : md = " https://github.com/fantasticfiasco/mvvm-dialogs "
md:DialogServiceViews.IsRegistered= " True " >
...
</ UserControl > ด้วยมุมมองที่ลงทะเบียนโมเดลมุมมองสามารถเปิดกล่องโต้ตอบได้โดยใช้อินเตอร์เฟส IDialogService :
public class ModalDialogTabContentViewModel : INotifyPropertyChanged
{
private readonly IDialogService dialogService ;
public ModalDialogTabContentViewModel ( IDialogService dialogService )
{
this . dialogService = dialogService ;
}
.. .
private void ShowDialog ( )
{
var dialogViewModel = new AddTextDialogViewModel ( ) ;
bool ? success = dialogService . ShowDialog ( this , dialogViewModel ) ;
if ( success == true )
{
Texts . Add ( dialogViewModel . Text ) ;
}
}
} กล่องโต้ตอบใน WPF ที่ไม่ได้รับมรดกจาก Window เรียกว่ากล่องโต้ตอบที่กำหนดเอง กล่องโต้ตอบที่กำหนดเองเหล่านี้ได้รับการสนับสนุน แต่เพื่อให้ DialogService ทราบวิธีการโต้ตอบกับพวกเขาคุณจะต้องใช้อินเตอร์เฟส IWindow
กล่องโต้ตอบ MVVM เป็นค่าเริ่มต้นการเปิดกล่องข้อความ Windows มาตรฐานหรือกล่องโต้ตอบเปิดไฟล์เมื่อถูกถาม อย่างไรก็ตามสิ่งนี้สามารถเปลี่ยนแปลงได้โดยการให้การใช้งาน IFrameworkDialogFactory ของคุณเองเป็น DialogService
สำหรับข้อมูลเพิ่มเติมเกี่ยวกับแนวคิดของกล่องโต้ตอบ MVVM และตัวอย่างเพิ่มเติมในวิชาโปรดดูวิกิ
เพื่อประโยชน์ของทุกสิ่งที่เรามุ่งมั่นที่จะเล่นได้ดีกับกรอบ MVVM ที่มีอยู่ การสร้างแอปพลิเคชันใหม่อาจเป็นเรื่องที่น่ากลัว ต้องมีการตัดสินใจมากมายและข้อผิดพลาดบางอย่างนั้นยากที่จะแก้ไขได้ยากกว่าคนอื่น ๆ เพื่อช่วยคุณในการเดินทางของคุณเราได้สร้างแอปพลิเคชันตัวอย่างโดยใช้เฟรมเวิร์ก MVVM ยอดนิยมที่มีอยู่ในปัจจุบันเพื่อแสดงให้คุณเห็นว่าคุณรวมกล่องโต้ตอบ MVVM เข้ากับเฟรมเวิร์กนั้นได้อย่างไร
ขณะนี้แอปพลิเคชันตัวอย่างถูกนำไปใช้โดยใช้เฟรมเวิร์กต่อไปนี้
หากเฟรมเวิร์กเฉพาะของคุณไม่ได้อยู่ในรายการโปรดสร้างคำขอดึงใหม่และแจ้งให้เราทราบ
โลกเต็มไปด้วยเกล็ดหิมะและแอพพลิเคชั่นทั้งหมดมีลักษณะเฉพาะในบางวิธี กล่องโต้ตอบ MVVM ไม่ได้อ้างสิทธิ์ในการแก้ปัญหาทั้งหมดเกี่ยวกับกล่องโต้ตอบ แต่เป็นโซลูชันที่ยอดเยี่ยมสำหรับแอปพลิเคชันส่วนใหญ่ ส่วนที่เหลือแอปพลิเคชันที่เบี่ยงเบนจากเส้นทางทั่วไปอาจต้องมีการเปลี่ยนแปลงเฉพาะพฤติกรรมของกล่องโต้ตอบ MVVM สำหรับผู้ที่มีกล่องโต้ตอบ MVVM Contrib พื้นที่เก็บข้อมูลที่มีคุณสมบัติและฟังก์ชั่นที่พัฒนาโดยชุมชนโอเพ่นซอร์สแก้ปัญหาที่เฉพาะเจาะจงมาก
หากกล่องโต้ตอบ MVVM ด้วยเหตุผลบางอย่างไม่เหมาะกับแอปพลิเคชันของคุณให้เพิ่มปัญหาในกล่องโต้ตอบ MVVM และเราจะเห็นสิ่งที่เราสามารถทำได้ คุณสมบัติเหล่านี้จะถูกนำไปใช้เสมอโดยชุมชน แต่ผู้ดูแลบทสนทนา MVVM
หากคุณต้องการรวมกล่องโต้ตอบ MVVM ในโครงการของคุณคุณสามารถติดตั้งได้โดยตรงจาก NuGet
ในการติดตั้งกล่องโต้ตอบ MVVM ให้เรียกใช้คำสั่งต่อไปนี้ในคอนโซลตัวจัดการแพ็คเกจ:
PM > Install-Package MvvmDialogsกล่องโต้ตอบ MVVM เริ่มต้นจากบทความเกี่ยวกับ CodeProject ด้วยการแก้ไขครั้งแรกที่เผยแพร่ในเดือนพฤษภาคม 2552 ในเวลานั้น MVVM ยังคงใหม่และสดใหม่และแสง MVVM ที่เลิกใช้แล้วในขณะนี้ยังไม่ได้รับการเผยแพร่ ในความเป็นจริงไม่มีไลบรารี MVVM ที่ใช้กันทั่วไปในปัจจุบัน กล่องโต้ตอบ MVVM นั้นไม่จำเป็นที่จะต้องทำงานกับกล่องโต้ตอบจากโมเดลมุมมองซึ่งเป็นปฏิกิริยาต่อความจริงที่ว่าแม้ว่า MVVM จะเป็นรูปแบบที่ได้รับความนิยม แต่การสนับสนุนในการนำไปใช้ค่อนข้าง จำกัด
ดังนั้นสิ่งพิมพ์เริ่มต้นคือกว่า 10 ปีที่ผ่านมา ให้ความคิด โครงการโอเพ่นซอร์สที่หลังจาก 10 ปียังคงได้รับการดูแลและเกี่ยวข้องอย่างมากกับการเปิดตัวของ. NET นำสิ่งที่คุณออกไปที่นั่นโดยอ้างว่ารหัสโอเพนซอร์สนั้นผันผวน!
กล่องโต้ตอบ MVVM ได้รับชื่อเสียงมากพอที่จะอยู่ในรายการที่ยอดเยี่ยม. NET! ใน บริษัท ที่มีห้องสมุด MVVM ที่ยอดเยี่ยมอื่น ๆ
ขอบคุณ Jetbrains สำหรับความคิดริเริ่มที่สำคัญของคุณเพื่อสนับสนุนชุมชนโอเพ่นซอร์สด้วยใบอนุญาตฟรีสำหรับผลิตภัณฑ์ของคุณ
