簡體   English   中英

在視圖模型中選擇屬性更改的圖像

[英]Selecting an image on property change in viewmodel

我想在我的 WPF 應用程序中實現一個視覺指示(燈泡),只要我的視圖模型(MVVM)中的屬性( string RFID ,引發PropertyChanged事件)發生變化,它就會在短時間內發光。 我的 window 的DataContext設置為視圖模型。 我有兩張顯示燈泡開/關的圖像。

我嘗試使用觸發器和 styles,但沒有成功:

    <Image>
        <Image.Style>
            <Style TargetType="Image">
                <Setter Property="Source" Value="LightGrey.png"/>
                <Style.Triggers>
                    <Trigger Property="RFID" Value="???">
                        <Setter Property="Source" Value="LightGreen.png"/>
                    </Trigger>
                </Style.Triggers>
            </Style>
        </Image.Style>
    </Image>

任何幫助表示贊賞!

您可以在 ViewModel 中有一個 boolean IsLightOn屬性,並且每當RFID觸發 PropertyChanged 事件時,ViewModel 將變為IsLightOn = true並設置一個計時器,在 X 秒后變為IsLightOn = false

如果您不想要建議的額外 bool 屬性。 您可以編寫一個簡單的值轉換器來執行此操作。

    class AnyToBoolConverter: IValueConverter   
    { 
        public object Convert(object value, Type targetType, object parameter, CultureInfo culture) 
        { 
            return (value != null) ? true : false; 
        } 
          
        public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) 
        { 
            return DependencyProperty.UnsetValue; 
        } 
    } 

這個轉換器在很多情況下都會派上用場。 你可以這樣做:

<DataTrigger Binding="{Binding Path=RFID, Converter={StaticResource boolConverter}}" Value="True"> 
      <Setter Property="Source" Value="LightGreen.png"/> 
</DataTrigger>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM