Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/silverlight/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Silverlight 5数据网格中具有祖先相对资源绑定的展开/折叠按钮_C#_Silverlight_Data Binding_Datagrid_Silverlight 5.0 - Fatal编程技术网

C# Silverlight 5数据网格中具有祖先相对资源绑定的展开/折叠按钮

C# Silverlight 5数据网格中具有祖先相对资源绑定的展开/折叠按钮,c#,silverlight,data-binding,datagrid,silverlight-5.0,C#,Silverlight,Data Binding,Datagrid,Silverlight 5.0,我发现了几篇关于在SL3和SL4中实现扩展/折叠的文章,它们实际上是缺少的“祖先相对资源绑定”的变通方法。所以现在SL5已经发布了,我想知道SL5是如何做到这一点的 以下是SL4的答案: 使用SL5,操作起来很简单: <sdk:DataGrid ItemsSource="{Binding Items}" AutoGenerateColumns="False" RowDetailsVisibilityMode="Collapsed"> <sdk:DataGr

我发现了几篇关于在SL3和SL4中实现扩展/折叠的文章,它们实际上是缺少的“祖先相对资源绑定”的变通方法。所以现在SL5已经发布了,我想知道SL5是如何做到这一点的

以下是SL4的答案:

使用SL5,操作起来很简单:

<sdk:DataGrid ItemsSource="{Binding Items}" 
   AutoGenerateColumns="False" 
   RowDetailsVisibilityMode="Collapsed">
   <sdk:DataGrid.Resources>
     <SL5:VisibilityToBoolConverter x:Key="converter"/>
   </sdk:DataGrid.Resources>
   <sdk:DataGrid.Columns>
      <sdk:DataGridTemplateColumn>
         <sdk:DataGridTemplateColumn.CellTemplate>
            <DataTemplate>
              <ToggleButton Content="Expand" 
                  IsChecked="{Binding Path=DetailsVisibility, 
                  Mode=TwoWay, 
                  RelativeSource={RelativeSource AncestorType=sdk:DataGridRow},
                  Converter={StaticResource converter}}"/>
            </DataTemplate>
          </sdk:DataGridTemplateColumn.CellTemplate>
       </sdk:DataGridTemplateColumn>
   </sdk:DataGrid.Columns>
</sdk:DataGrid>
public class VisibilityToBoolConverter : IValueConverter
{
    public object Convert(object value, Type targetType, object parameter,
        CultureInfo culture)
    {
        Visibility visibility = (Visibility)value;
        return (visibility == Visibility.Visible);
    }

    public object ConvertBack(object value, Type targetType, object parameter,
        CultureInfo culture)
    {
        bool visibility = (bool)value;
        return visibility ? Visibility.Visible : Visibility.Collapsed;
    }
}