سؤال

على افتراض أن الملزمة صحيحة وملفات الصور هي المكان الذي يكون فيه shuld، هل يمكن لأي شخص أن يطرح لماذا لن تتغير الصورة الموجودة في XAML أدناه عندما يقيم الزناد إلى True؟

هتافات،
berryl.

<Image Source="..\..\Images\OK.png" Grid.Column="2" Stretch="None">
    <Image.Style>
        <Style>
            <Style.Triggers>
                <DataTrigger Binding="{Binding TimeSheet, Converter={StaticResource overQuotaConv}}" Value="True">
                    <Setter Property="Image.Source" Value="..\..\Images\Error.png"/>
                </DataTrigger>
            </Style.Triggers>
        </Style>
    </Image.Style>
</Image>
هل كانت مفيدة؟

المحلول

حاول القيام بما يلي...

  • اضبط TargetType = "{x: اكتب image}" على النمط
  • تغيير خاصية STERTER إلى الخاصية = "Source"

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

بالإضافة إلى ذلك، قم بإزالة السمة المصدر من علامة الصورة في الأعلى. سيؤدي ذلك إلى تجاوز كل ما يتم تطبيقه من قبل النمط. يمكنك نقله إلى DataTrigger آخر أو يمكنك وضعه في مجموعة عشية عادية مثل ذلك:

<Image Grid.Column="2" Stretch="None">
    <Image.Style>
        <Style TargetType="{x:Type Image}">
            <Setter Property="Source" Value="..\..\Images\OK.png" />
            <Style.Triggers>
                <DataTrigger Value="True" Binding="{Binding TimeSheet, Converter={StaticResource overQuotaConv}}">
                    <Setter Property="Source" Value="..\..\Images\Error.png"/>
                </DataTrigger>
            </Style.Triggers>
        </Style>
    </Image.Style>
</Image>

توقيتك مثيرة للاهتمام. أنا على وشك نشر شيء ما على مدونتي حول عنصر تحكم يفعل شيئا مشابها للغاية لهذا الأمر ولكن في بناء جملة موجز أكثر بكثير.

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