<UserControl.Resources>
में शैली की स्थापनाअंक शैली में MultiBinding कनवर्टर और उत्प्रेरक मिश्रण
<Style x:Key="FieldToValidate" TargetType="{x:Type TextBox}">
<Setter Property="Background">
<Setter.Value>
<MultiBinding Converter="{StaticResource VisualQueueOnErrorConverter}">
<Binding RelativeSource="{RelativeSource self}" Path="Name" />
<Binding RelativeSource="{RelativeSource AncestorType={x:Type DockPanel}}" Path="DataContext.ErrorFieldName" UpdateSourceTrigger="PropertyChanged" Mode="TwoWay" />
</MultiBinding>
</Setter.Value>
</Setter>
<Style.Triggers>
<Trigger Property="Background" Value="Red">
<Setter Property="FocusManager.FocusedElement" Value="{Binding RelativeSource={RelativeSource self}}" />
<Setter Property="Foreground" Value="White" />
</Trigger>
</Style.Triggers>
</Style>
और नियंत्रण (कनवर्टर संभालने रंग लाल रिटर्न):
<TextBox Name="FirstName" Text="{Binding FirstName}" Style="{StaticResource FieldToValidate}">
अपेक्षित परिणाम के लिए है फोकस प्राप्त करने के लिए फ़ील्ड FirstName
और मल्टीबाइंडिंग कनवर्टर लाल रंग में पृष्ठभूमि रंग बदलता है, जबकि फ़ील्ड की पृष्ठभूमि लाल रंग में बदल जाती है, लेकिन इसे फोकस और न ही नया अग्रभूमि रंग मिलता है।
ऐसा लगता है कि एक्सएएमएल पार्सर से पहले संपत्ति सेटटर के मल्टीबाइंडिंग कनवर्टर से पहले ट्रिगर को संसाधित करता है।
कोई भी और सभी सुझाव आपका स्वागत है!
मैं एक सुंदर तरीका ट्रिगर गठबंधन करने के लिए और की तलाश कर रहा था मल्टीबाइंडिंग लेकिन कुछ भी नहीं मिला इसलिए मैंने रंग-आधारित ट्रिगर का सहारा लिया ... जब तक आप नहीं आए साथ! मैंने अभी आपके समाधान का परीक्षण किया और यह बहुत अच्छा काम करता है! मैंने "क्यू" के साथ "क्यूई" को बदलने के साथ परीक्षण नहीं किया है, लेकिन मुझे पूरा यकीन है कि यह काम करेगा ...;) Merci। – BlazingFrog