2011-03-23 71 views

回答

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

+0

謝謝,特倫斯。視頻很棒,正是我需要的。似乎我需要添加System.Windows.Controls.Toolkit作爲參考,但我無法找到SDK文件夾中的任何位置,您是否有任何想法可以找到它的位置?謝謝。我已經安裝了Visual Studio 2010和Silverlight 4.0 SDK :) – RKM 2011-03-23 14:08:50

+0

謝謝,好像我沒有安裝工具包,一旦安裝它就應該解決問題:) – RKM 2011-03-23 14:18:00

+0

您可以在這裏下載silverlight工具包:http://silverlight.codeplex。 COM /。然後它應該出現在vs2010作爲參考。如果沒有,您可以在這裏正常找到它:C:\ Microsoft SDKs \ Silverlight \ v4.0 \ Toolkit \ Apr10 \ Bin。 P.S.標記爲答案,如果這是解決您的問題;) – TerenceJackson 2011-03-23 14:18:55

2

我覺得一個轉換器是要走的路,就像TerrenceJackson說!

在DataGrid的綁定應該是這樣的:

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

你必須設置你的按鈕/複選框的名稱/ ...爲的ElementName中的可視性屬性的綁定。

這裏是一個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 
}