سؤال

وأنا على وشك بدء مشروع جديد لي، وأنا حاليا بتقييم بعض التقنيات للتوطين، نمطية الخ.

ولدي (على الأقل في رأيي) مقاربة جيدة جدا لتوطين ولكن الآن أنا النضال من أجل ايجاد حل جيد لربط البيانات.

وأريد أن ربط قيم الحقول النصية وما إلى ذلك (UIElements بشكل عام) إلى طريقة محددة في DataContext من النموذج. طريقة يبدو مثل هذا:

وpublic void GetValue(string name)

وحيث الاسم هو "مسار" في شكل "عقدة / فرعية / subsubnode". فكرت باستخدام ValueConverter لملزمة وهذا عملت بها جيدة حتى الآن.

والتعبير ملزمة بلدي يشبه ما يلي:

و{Binding Path=Localization, Converter={StaticResource LocalizationConverter}, ConverterParameter=PrismBreak/Shell.xaml/New}

وأعتقد أن هذا التعبير ملزم على الرغم من القيام بعملها هو في مهب كيندا لاستخدام كل UIElement واحد. حتى ظننت إذا كان من الممكن تحديد ValueConverter الافتراضي لنوع معين. (-> كلما يرتبط هذا النوع إلى مكان ما يستخدم ValueConverter)

هل هذا ممكن في برنامج الأغذية العالمي؟

وإذا كان من غير الممكن وجود أي وسيلة أخرى جيدة لربط الأسلوب مع المعلمات الديناميكية؟

وشكرا مقدما وأطيب التحيات،

وكريس

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

المحلول

والطريقة المنصوص عليها للقيام بهذه الترجمة لبرنامج الأغذية العالمي، هو خلق BAML المحلية في المجالس الفضائية. ويتحقق هذا عن طريق إضافة س: رمز المستخدم الملكية تعلق على العناصر التي ترغب في أن تكون مترجمة. هناك Localizatio القسم ن على MSDN واصفا ل WPF العولمة و التقنيات.

وثمة نهج آخر أود أن أقترح أن يكون لخلق "توطين قاموس 'نوع ثابت، وتنفيذ <وأ href =" http://msdn.microsoft.com/en-us/library/system.componentmodel.icustomtypedescriptor. ASPX "يختلط =" نوفولو noreferrer "> ICustomTypeDescriptor ، لإعادة توجيه الملكية الواردة بربط السلاسل في قاموسك. قد ينتهي بك المطاف القيام بشيء من هذا القبيل:

<Button Content="
    {Binding Source={x:Static local:MyStaticType.Localization}, 
             Path=HelloButtonTitle}" /> 

ويمكن أن تستمر في الاستفادة من التكنولوجيات القائمة مثل RESX المجالس + الفضائية.

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