• DataGrid的Template的问题


    最近Silverlight 5 Beta发布,作为专注于Silverlight的开发人员,我还是很高兴的,至少证明Sl依然还在完善,还在发展。

    闲话少说,这篇帖子主要是解决DataGrid开发中常见到的问题:

    当DataGrid出现ScrollView时,如果对其进行拖动,你会发现DataGrid中的CheckBox和Expander会发生错乱的情形

    通过对DataGrid的Template中的ScrollView中添加一个DataGridRowsPresenter可以有效的解决该问题:

           <ScrollViewer >
          <sdk:DataGridRowsPresenter x:Name="RowsPresenter" />
          </ScrollViewer>    

             具体代码就不贴了,下载地址:DataGridScrollView.rar

             将DataGrid的Style去掉进行测试即可 

             在实际情况中,我们可能需要对记录为0时进行处理,这里给出一种方式

             image

           这里依然是修改DataGrid的Template,找到DataGridRowsPresenter部分的XAML 

             <sdk:DataGridRowsPresenter x:Name="RowsPresenter" Grid.ColumnSpan="2" Grid.Row="1" />
         将其替换为:
              <Grid Grid.ColumnSpan="2" Grid.Row="1" >
                <sdk:DataGridRowsPresenter x:Name="RowsPresenter"/>
                <TextBlock Text="没有相关的记录" 
               Visibility="{Binding ElementName=RowsPresenter, Path=Children.Count, Converter={StaticResource noRecordsConverter}}" 
               HorizontalAlignment="Center" VerticalAlignment="Center" FontSize="12"/>
             </Grid>

           可以看到是对DataGridRowsPresenter对象的Children属性进行的绑定

           值转换器部分的代码:

            public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
            {
                return value.ToString() == "0" ? Visibility.Visible : Visibility.Collapsed;
            }
     
            public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
            {
                return null;
            }

            本篇就写到这里,希望这2个实际开发中很有用的技巧给你思路上的帮助.

  • 相关阅读:
    学习数据结构的框架思维
    算法数据结构中有哪些奇技淫巧?
    五分钟小知识之什么是后缀表达式
    LeetCode 第 9 号问题:回文数
    酷!60 s 速学HTTP 状态码 !
    每天一算:Move Zeros
    用动画演示二叉树的前序遍历
    PPT动画之每天一算:Reverse Linked List
    五分钟小知识之有趣的「欧拉回路」
    五分钟小知识之什么是前缀表达式
  • 原文地址:https://www.cnblogs.com/626498301/p/2020503.html
Copyright © 2020-2023  润新知