簡體   English   中英

xaml中的圖像源取決於變量后面的代碼

[英]image source in xaml depends on code behind variable

我有圖片

<Image HorizontalAlignment="Left"  VerticalAlignment="Top" Source="" Width="20" Height="20" />

我在代碼隱藏中有變量bool IsOk。 我如何將其綁定到源屬性,並具有以下條件:當源屬性為true時,源將為“ ../Shared/Images/ok.png”,而為false“ ../Shared/Images/cancel.png”? 我可以使用它觸發嗎?

無需觸發。

只需將Image的Source屬性綁定到ViewModel上的屬性即可,該屬性返回確定的圖像或取消的圖像。

修改您的代碼,以便每當IsOk更改時,都會觸發按鈕圖像屬性的PropertyChanged事件。 這樣,只要您更改IsOk屬性,圖像就會自動更新。 像這樣:

public bool IsOk
{
    get
    {
        return _isOk;
    }
    set
    {
        if (_isOk != value)
        {
            _isOk = value;
            RaisePropertyChanged("IsOk");
            RaisePropertyChanged("ButtonImage");
        }
    }
}

public Image ButtonImage
{
    get
    {
        if (_isOk)
            return _okImage;
        else
            return _cancelImage;
    }
}

..然后在您的XAML中:

<Image Source="{Binding ButtonImage}" ... />

馬蒂的答案很干凈,但是如果您真的只是想使用扳機...類似的事情也可能起作用,但是就像我說的那樣,馬蒂的答案更干凈。 :)

<Image HorizontalAlignment="Left"  VerticalAlignment="Top" Source="" Width="20" Height="20">
          <i:Interaction.Triggers>
                <ei:DataTrigger Value="False"
                                Binding="{Binding BooleanValueBinding}">
                  <ei:ChangePropertyAction PropertyName="Source"
                                           Value="../Shared/Images/cancel.png" />
                </ei:DataTrigger>
                <ei:DataTrigger Value="True"
                                Binding="{Binding BooleanValueBinding}">
                  <ei:ChangePropertyAction PropertyName="Source"
                                           Value="../Shared/Images/ok.png" />                  
                </ei:DataTrigger>
          </i:Interaction.Triggers>
    </Image>

暫無
暫無

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

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