كيفية تقديم التركيز وتحديد النص في مربع نص من ViewModel

StackOverflow https://stackoverflow.com/questions/930828

  •  06-09-2019
  •  | 
  •  

سؤال

أقوم بتجربة MVVM في سياق تطبيق WPF بسيط. لدي أمر مرتبط بزر. إذا كان النص الموجود في مربع نص "غير صحيح"، فأنا أريد أن يحصل مربع النص على التركيز وجميع محتوياته المحددة. يبدو أن الطريقة الوحيدة للقيام بذلك هي إما من خلال نوع من الاتصال المباشر من الأمر في ViewModel الخاص بي إلى العرض، أو إعداد نوع من الحدث الذي تستمع إليه ViewModel و PRIEW ل. من هناك، يمكن للنظر إجراء مكالمات مباشرة على مربع النص في السؤال.

أحاول البقاء داخل الطبيعة التي تم فصلها من MVVM، ولكن يبدو أنه لا توجد طريقة يمكنني الحصول على هذا السلوك تعريفي في XAML، أو في التعليمات البرمجية مباشرة في ViewModel دون التحدث بشكل غير مباشر على الأقل إلى العرض (إما واجهة أو حدث ). أود أيضا إجراء مرجع إلى العرض في ViewModel.

ما الذي سيعتبر "أفضل الممارسات" هنا، وكيف من المفترض أن تكون المشاهدات من المفترض حقا من ViewModels في تطبيقات MVVM "الحقيقية"؟

هل كانت مفيدة؟

المحلول

إنه رمز مرتبط مباشرة عن عناصر التحكم في UI الخاص بك، لذلك أعتقد في هذه الحالة رمز العرض - وراءه هو المكان الذي ينتمي إليه. قد ترغب في إعداد حدث أو شيء من هذا القبيل. وبهذه الطريقة لا تزال ثابتة كما كان من قبل - الرأي يعرف من ViewModel على أي حال، لديك فقط عدد قليل من خطوط التعليمات البرمجية في الكود الخلف.

نصائح أخرى

لقد واجهت نفس المشكلة، ما قمت بتقديم مربع نص مخصص وفضح خاصية التبعية من هذا التحكم.

مثل التركيز، SelectallText وربط هذه الخصائص لعرض النموذج.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top