تطبيق DataTrigger إلى زر لمن يأتي من تحكم آخر ملزم؟

StackOverflow https://stackoverflow.com/questions/860633

  •  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>
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top