[英]Change image of a button in a datagrid cell when it is clicked - wpf
我有一個WPF應用程序,其中包含由一列按鈕組成的Datagrid。 相應的XAML代碼如下。
<DataGridTemplateColumn Header="Closed" Width="60">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<Button>
<Button.Content>
<Image>
<Image.Source>
<MultiBinding Converter="{StaticResource ImageConverter}"
ConverterParameter="Closed">
<Binding Path="IsClosed"/>
<Binding Path="DataContext.TickImage" RelativeSource="{RelativeSource AncestorType={x:Type UserControl}}"/>
<Binding Path="DataContext.CrossImage" RelativeSource="{RelativeSource AncestorType={x:Type UserControl}}"/>
</MultiBinding>
</Image.Source>
</Image>
</Button.Content>
<Button.Command>
<Binding Path="DataContext.ClosedClicked" RelativeSource="{RelativeSource FindAncestor, AncestorType={x:Type UserControl}}"/>
</Button.Command>
</Button>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
TickImage
和CrossImage
是圖像源,可以根據IsClosed
的值進行選擇。 現在,在ViewModel中,我需要編寫代碼來在單擊按鈕時切換圖像(黑白TickImage
和CrossImage
)。 換句話說,我需要一種同時將Button與ICommand
和BitmapImage
變量綁定的方法。
請幫忙!!
如果您的IsClosed
只是一個開關,可以知道是否按下了按鈕或釋放了按鈕,則可以通過使用以下觸發器來實現:
<ToggleButton>
<ToggleButton.Content>
<Image>
<Image.Style>
<Style TargerType="Image">
<Setter Property="Source" Value="{Binding Path="DataContext.TickImage" RelativeSource="{RelativeSource AncestorType={x:Type UserControl}}"/>
<Style.Triggers>
<DataTrigger Binding="{Binding IsChecked, RelativeSource="{RelativeSource AncestorType={x:Type ToggleButton}}" Value="true">
<Setter Property="Source" Value="{Binding Path="DataContext.CrossImage" RelativeSource="{RelativeSource AncestorType={x:Type UserControl}}"/>
</DataTrigger>
</Style.Triggers>
</Style>
</Image.Style>
</Image>
</ToggleButton.Content>
</ToggleButton>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.