تطبيق DataTrigger إلى زر لمن يأتي من تحكم آخر ملزم؟
-
21-08-2019 - |
سؤال
وأنا أحاول أن تطبيق DataTrigger
إلى Button
وذلك يعتمد على خاصية من العنصر المحدد حاليا من TreeView
. والفكرة هي أن أريد تغيير نص Button
اعتمادا على خاصية العنصر المحدد.
وما قلته يبدو مثل هذا:
<Button x:Name="m_AddObject" Margin="192.708,0.909,6,6.363" Click="AddObject_Click" >
<DataTrigger Binding="{Binding ElementName=ObjectTreeView, Path=SelectedItem.Removable}" Value="true">
<Setter TargetName="m_AddObject" Property="Content" Value="Remove" />
</DataTrigger>
</Button>
ولكن لا أستطيع الحصول عليه للترجمة. واضعة يشكو "المحتوى" لا يجري صالح لأنه لايوجد اسم نوع التصفيات، ولكن إذا كنت تغييره إلى "Button.Content" في ذلك الوقت يشكو من "كائن مرجع لم يتم تعيين إلى مثيل كائن".
وكما أنني حاولت:
<Setter TargetName="m_AddObject.Content" Value="Remove" />
وعلى الرغم أن يجمع، فإنه لم ينجح أيضا.
وأنا متعكز.
وأي أفكار؟
وشكرا!
المحلول
وDataTriggers في نمط للزر. ما نحاول القيام به سبق هو أساسا استخدام DataTriggers باسم "التسمية" ( "المحتوى"، وبرنامج الأغذية العالمي يضعه) للزر (بدلا من، يقول، "OK").
وهذا هو المخصص، لذلك قد لا تكون صحيحة تماما، لكنه أقرب إلى ما تريد:
<Button x:Name="m_AddObject"
Margin="192.708,0.909,6,6.363"
Click="AddObject_Click">
<Button.Style>
<Style TargetType="{x:Type Button}">
<Style.Triggers>
<DataTrigger Binding="{Binding ElementName=ObjectTreeView, Path=SelectedItem.Removable}" Value="True">
<Setter Property="Content" Value="Remove" />
</DataTrigger>
</Style.Triggers>
</Style>
</Button.Style>
</Button>