سؤال

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

وهكذا، ولدي نموذج عرض بسيط جدا:

public class MyViewModel : INotifyPropertyChanged
{
    private bool changingProperty;
    public bool ChangingProperty
    {
        get { return changingProperty; }
        set
        {
            if (changingProperty != value)
            {
                changingProperty = value;
                NotifyPropertyChanged("ChangingProperty");
            }
        }
    }
    public string SomeProperty { get { return "SomePropertyValue"; } }

    // INotifyPropertyChanged implementation here.......
}

وهذا النموذج الرأي سياق البيانات لعنصر تحكم المستخدم الذي لديه كتلة نص منضم إلى SomeProperty:

<TextBlock x:Key="myTextBlock" Text="{Binding SomeProperty}" />

وهذا كله يعمل بشكل جيد. الآن أود أن أرفق السلوك myTextBlock التي يتم تشغيلها بواسطة تغييرات على ChangingProperty في بلدي نموذج عرض. يجب تسليط الضوء على سلوك TextBlock، على سبيل المثال (أو شيء أكثر تعقيدا).

وكيف يمكنني تحديد هذا المشغل؟ هل هذا ممكن على الإطلاق؟

مع أطيب التحيات،

ورونالد

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

المحلول

شيء على غرار جوابي لتشبه قضية هنا قد مساعدة.

وهنا مثال على كيف يمكن تطبيق هذا الأسلوب لمتطلباتكم.

<Grid.Resources>
   <local:BoolToBrushConverter x:Key="Highlighter"
    FalseBrush="Transparent" TrueBrush="Yellow" />
</Grid.Resources>

<Border Background="{Binding ChangingProperty, Converter={StaticResource Highlighter}}">
    <TextBlock x:Name="txtTarget" Text="{Binding SomeProperty}" />
</Border>
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top