سؤال

لديّ هذا التطبيق الذي يحتوي على لغة ديناميكية مبنية. بناءً على الثقافة المحددة ، ستتغير الأوتار في جميع أنحاء التطبيق. الأوتار المترجمة وقيمها الأصلية تأتي من ملفات الموارد. أستخدم الارتباطات لإرفاق قيم الموارد بالأزرار والعلامات ، وما إلى ذلك. يحدث معظم هذا الربط في الكود وراء.

لقد تمكنت من تسلسل السلاسل المترجمة بالبيانات باستخدام خاصية binding.stringformat:

mybinding.StringFormat = "# {0}";

ل "# من العناصر". مشكلتي هي أنني بحاجة الآن إلى تسلسل سلاسل محلية (أو أكثر) في الكود. أدركت بسرعة أنه يمكنني استخدام التعددية المتعددة وإضافة روابطاتي إليها ، مع الحفاظ على كيفية عمل الأشياء حاليًا ، باستخدام متعددي. لا يبدو أن Tringformat يعمل. أحاول استخدام myMultiBinding.StringFormat = "{0} {1}"; لإدراج مسافة بين قيمتي الربط ، ولكن يبدو فارغًا عند ربط علامة "التحية".

Binding b = GetBinding("HelloWorld");   
Binding b2 = GetBinding("Name");

MultiBinding multib = new MultiBinding();
multib.StringFormat = "{0} {1}";
multib.Bindings.Add(b);
multib.Bindings.Add(b2);
Greetings.SetBinding(Label.ContentProperty, multib);

وإليك وظيفة getBinding () التي تلتقط الربط بناءً على قيمة المسار:

public Binding GetBinding(string name)
{
    Binding binding = new Binding();
    binding.Source = mySource;
    binding.Path = new PropertyPath(name);
    return binding;
}

أيضًا ، يجب أن ألاحظ أنني أستخدم .NET 4. لا يبدو أنه يعمل في XAML أيضًا. لقد جربت هذا أيضًا في .NET 3.5 بعد أن لم يعمل في 4.0. كل من روابط الطفل تعمل ... إذا قمت بتزويد المحول ، تظهر القيم. أفضل استخدام خاصية StringFormat.

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

المحلول

إنها مشكلة في الملصق. stringformat على textblock يبدو أن العمل ...

http://social.msdn.microsoft.com/forums/en-us/wpf/thread/69bca541-379f-4f8d-ab19-2f55b566e2c9/#1c06f05e-631c-4e51-95f4f457b

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