单击时使数据网格可见

时间:2011-11-08 22:32:06

标签: c# silverlight c#-4.0 silverlight-4.0

我有这个数据网格,我放置了所有按钮

<Grid x:Name="ButtonGrid" HorizontalAlignment="Left" Margin="0,90,0,4" Width="186">
   <Button x:Name="B1" Content="B1" Height="18" Margin="73,0,59,16" VerticalAlignment="Bottom" Click="B1"/>
   <Button x:Name="B2" Content="B2" Height="18" Margin="0,0,-2,16" VerticalAlignment="Bottom" Click="B2_Click" HorizontalAlignment="Right" Width="57"/>
 </Grid>

我在开始时将网格折叠起来。但是当单击按钮{testGrid}时,我希望网格可见。 这是我的代码

   namespace project.Test
    {
        public partial class MainPage : UserControl
        {
            public MainPage()
            {
                InitializeComponent();
            }

EDUTED

        private void testGrid_Click(object sender, System.Windows.RoutedEventArgs e)
        {
             FrameworkElement ButtonGrid = (sender as FrameworkElement).FindName("ButtonGrid") as FrameworkElement;

    if ( ButtonGrid.Visibility == System.Windows.Visibility.Collapsed)
        ButtonGrid.Visibility = System.Windows.Visibility.Visible;
    else
        ButtonGrid.Visibility = System.Windows.Visibility.Collapsed;

        }



    }
}

1 个答案:

答案 0 :(得分:1)

我认为如果您将Grid移到DataTemplate之外,它就可以了。 :)

但是,如果您确实需要将其放在DataTemplate中,只要您的ButtonGrid处于同一级别,您仍然可以找到它。

假设您的xaml代码如下所示,

<UserControl xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
             x:Class="controlstoryboardactionrefissue.MainPage" Width="640" Height="480">
    <UserControl.Resources>
        <DataTemplate x:Key="DataTemplate1">
            <Grid x:Name="myGrid" Height="128" Background="#FFE7C0C0" Width="333">
                <Button x:Name="myButton" Content="Button" HorizontalAlignment="Left" VerticalAlignment="Top" Width="75" Margin="31,29,0,0" Click="myButton_Click" />
            </Grid>
        </DataTemplate>
    </UserControl.Resources>

    <Grid x:Name="LayoutRoot" Background="White">
        <ContentControl HorizontalAlignment="Left" VerticalAlignment="Top" Margin="175,198,0,0" ContentTemplate="{StaticResource DataTemplate1}" />
    </Grid>
</UserControl>

然后是代码,

    private void myButton_Click(object sender, System.Windows.RoutedEventArgs e)
    {
        var myButton = (Button)sender;

        var grid = myButton.Parent as Grid;

        if (grid != null)
        {
            // do stuff
        }
    }

希望它有所帮助。 :)