2
我試圖完成有幾個ToggleButtons的行爲有點像單選按鈕 - 但重要的區別是既沒有檢查是有效的情況 (只有到可以一次檢查,它們是互斥的)。當DataTrigger綁定到它時,WPF ToggleButton沒有被檢查
下面是一些XAML,幾乎工作:
<Window>
<Grid>
<ToolBarTray DockPanel.Dock="Top">
<ToolBar>
<ToggleButton x:Name="ShowLineGridToggleButton">
<ToggleButton.Style>
<Style TargetType="ToggleButton">
<Style.Triggers>
<DataTrigger Binding="{Binding IsChecked, ElementName=ShowDotGridToggleButton}" Value="True">
<Setter Property="IsChecked" Value="False" />
</DataTrigger>
</Style.Triggers>
</Style>
</ToggleButton.Style>
<Image Source="../Images/ShowLineGrid.png" />
</ToggleButton>
<ToggleButton x:Name="ShowDotGridToggleButton">
<ToggleButton.Style>
<Style TargetType="ToggleButton">
<Style.Triggers>
<DataTrigger Binding="{Binding IsChecked, ElementName=ShowLineGridToggleButton}" Value="True">
<Setter Property="IsChecked" Value="False" />
</DataTrigger>
</Style.Triggers>
</Style>
</ToggleButton.Style>
<Image Source="../Images/ShowDotGrid.png" />
</ToggleButton>
</ToolBar>
</ToolBarTray>
<Grid>
</Window>
點擊一個按鈕,將取消的確是其他。不幸的是,所發生的事情是,點擊的按鈕不會被檢查。當鼠標移動到其上時,背景會正確更改,但當鼠標移開時,按鈕會顯示爲未選中。
註釋Setters允許點擊按鈕進行檢查。就好像Setter也沒有選中點擊按鈕。
我寧願在XAML中處理這個問題,也不願意通過事件處理程序實現代碼;這將會把所有的東西都定義在一個地方。
想法?
TIA!