您好我想找到某種方式來單擊按鈕時更改其他控件的可見性,如帶XAML中的觸發器的DataGrid。按鈕點擊更改WPG中的觸發器DataGrid的可見性
該按鈕僅將DataGrid的可見性更改爲Visible,它在Code Behind中執行其他操作,但這是我認爲可以在具有觸發器的Style中完成的操作。
我試圖找到一個解決方案,它似乎有可能做但我無法理解如何。
在此先感謝。
您好我想找到某種方式來單擊按鈕時更改其他控件的可見性,如帶XAML中的觸發器的DataGrid。按鈕點擊更改WPG中的觸發器DataGrid的可見性
該按鈕僅將DataGrid的可見性更改爲Visible,它在Code Behind中執行其他操作,但這是我認爲可以在具有觸發器的Style中完成的操作。
我試圖找到一個解決方案,它似乎有可能做但我無法理解如何。
在此先感謝。
<Button Content="Button!">
<Button.Triggers>
<EventTrigger RoutedEvent="Button.Click">
<BeginStoryboard>
<Storyboard>
<ObjectAnimationUsingKeyFrames Storyboard.Target="{x:Reference dataGrid}"
Storyboard.TargetProperty="Visibility">
<DiscreteObjectKeyFrame KeyTime="0:0:0"
Value="{x:Static Visibility.Visible}"/>
</ObjectAnimationUsingKeyFrames>
</Storyboard>
</BeginStoryboard>
</EventTrigger>
</Button.Triggers>
</Button>
{x:Reference dataGrid}
引用名爲dataGrid
一個DataGrid,或者你可以只使用Storyboard.TargetName
。如果您綁定或引用資源,則通常會使用Storyboard.Target
屬性。
只是一個建議,但怎麼樣,爲了更容易理解,有一個複選框啓用/禁用DataGrid顯示?這是我平時做:
<DockPanel LastChildFill="True">
<CheckBox DockPanel.Dock="Right" VerticalAlignment="Center" x:Name="DisplayBox"
Content="Display grid" Margin="4" IsChecked="False"/>
<DataGrid Visibility="{Binding ElementName=DisplayBox, Path=IsChecked, Converter={StaticResource BoolToVisibilityConverter}}" />
</DockPanel>
,當然還有,你必須執行相應的轉換器
沒有必要實現,這樣的轉換器已經存在於框架中,它已經被稱爲'BooleanToVisibilityConverter'。 – 2011-04-14 12:55:13
謝謝,我甚至不知道,並繼續使用我很久以前做過的轉換器。我會考慮現在刪除它! – Damascus 2011-04-14 12:58:32
同樣在這裏,幾乎是我寫的第一個轉換器,不記得我何時發現了現有的轉換器。 – 2011-04-14 13:05:19
你逃脫我..我正要張貼相同.. :) – 2011-04-14 13:11:49
但在不要在標記擴展中添加命名空間'pc'。我會用這個 - –
2011-04-14 13:13:40
對我也有很大的幫助,快點!關於能見度的事情很有趣,不知道它已經可以這樣訪問了。 – 2011-04-14 13:14:33