如何实现在单击“展开”按钮时显示/展开的表格?

时间:2011-03-23 12:56:32

标签: silverlight

构建2个不同的页面会更好吗?这样当单击一个按钮时,它会导致另一个页面与表格?或者我们可以隐藏表格,直到点击“展开”按钮?将表格显示为列表框更好吗?感谢。

2 个答案:

答案 0 :(得分:2)

我认为转换器是可行的,就像TerrenceJackson所说的那样!

在DataGrid中,您的Binding应如下所示:

<CheckBox Content="Expand" Height="72" Name=MyExpandCheckbox IsChecked="False" />
<DataGrid Visibility="{Binding ElementName=MyExpandCheckbox, Path=IsChecked, Converter={StaticResource BoolToVisibleConverter}}"/>

您必须为visibility-properties中的ElementName设置Button / Checkbox / ...的名称。

以下是BoolToVisibilityConverter的示例:

public class BoolToVisibilityConverter : IValueConverter
{
    #region IValueConverter member

    public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
    {
        return (Boolean)value ? Visibility.Visible : Visibility.Collapsed;
    }

    public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
    {
        throw new NotImplementedException();
    }

    #endregion
}

答案 1 :(得分:1)

我不会用两个单独的页面来做。 您可以使用简单的扩展器并将其设计为您的目的。这是一个视频如何使用扩展器:http://silverlight.net/learn/videos/all/silverlight-toolkit-creating-a-toolkit-expander/这里是一个简单的教程http://www.c-sharpcorner.com/Resources/768/

您还可以使用一个简单的切换按钮,并将表格(DataGrid或ListBox,无论您想要什么)的可见性与转换器绑定到切换按钮的已检查状态。不知怎的,这样:

<ToggleButton x:Name="myToggleButton" />
<DataGrid Visibility="{Binding ElementName, Path=IsChecked, Converter={StaticResource BoolToVisibleConverter}}"/>

BoolToVisibleConverter是一个实现IValueConverter的类(http://msdn.microsoft.com/en-us/library/system.windows.data.ivalueconverter.aspx)。

我不知道你的确切目标,但我认为扩展器方法对你有好处。

希望这有帮助。

BR,

TJ