构建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