如何更改selecteditem

时间:2016-08-25 16:19:35

标签: c# wpf

我有一个主窗口.xaml,其中我引用了Viewmodel和另一个名为Template.xaml的xaml页面。

Mainwindow.xaml将如下所示:

<Window ...>
<Window.Resorce ../>
<Window.DataContext>
<local:Viemodel/>
</Window.DataContext>
<Grid...
<local:Template/>
</Grid>
</Window>

这是我的Tempaltes.Xaml:

<ItemsControl HorizontalAlignment="Left"  ItemsSource="{Binding Path=ControlsList}" KeyboardNavigation.IsTabStop="False">
            <ItemsControl.ItemsPanel>
                <ItemsPanelTemplate>
                    <WrapPanel Width="950"
                                       Margin="28"
                                       KeyboardNavigation.IsTabStop="False"
                                       Orientation="Horizontal" />
                </ItemsPanelTemplate>
            </ItemsControl.ItemsPanel>
            <ItemsControl.ItemTemplate>
                <DataTemplate>
                    <Button Name="Mybutton" Height="200" Background="Red" Command="{Binding Path=SupportButton}">

.....

在上面的块中,我在3个地方使用过绑定。 1.项目控制 2.按钮 3.图像 在这里,命令绑定不适用于&#34; MyButton&#34;。这背后的原因是什么?

选择特定项目后,我需要更改按钮的背景。如何实现?

3 个答案:

答案 0 :(得分:0)

在按钮属性下,还有一个操作或操作方法的选项卡。您将要找到一个按钮点击事件。

从该操作创建事件处理程序后,您将能够更改按钮的背景或前景。

答案 1 :(得分:0)

不是10%肯定你在这里尝试实现的目标,但也许ListBox会更适合你吗?

在选择项目时,它会自动更改项目的背景,并在选择其他项目时删除背景。如果要在所选项更改时执行操作,则可以绑定到SelectedItem属性。

只是一个想法...

答案 2 :(得分:0)

很难从这个问题中看出来,但听起来好像使用ToggleButton可能适合你的情况。如果你走这条路,你可以简单地将IsChecked属性绑定到View Model,你的属性setter可以执行任何类似命令的逻辑。

当然,您可以按照自己喜欢的方式设置ToggleButton的样式,因此IsChecked状态可能与Normal状态看起来相对不同。