zoukankan      html  css  js  c++  java
  • Silverlight中DataGrid翻页或者滚动时CheckBox/RadioButton显示的问题

    问题现象

    Datagrid是silverlight中很常用的控件,经常被用来显示数据,当数据的个数较多时,我们可以使用滚动条或者分页的方式来显示。但是,如果DataGrid中使用了CheckBox或者RadioButton时,会出现如下图所示的问题:

    开始的界面:

    当我在第一页选中了第一行的radiobutton时:

    如果此时我翻到下一页,在没有点击的情况下,第二页中的第一行的RadioButton仍然是被选中了的:


    这样的选中方式比较难接受。


    问题原因

    当翻到下一页时,Datagrid重用了这些RadioButton,所以,还是按照第一页的方式显示了。

    解决办法

    可以使用partial class在对应的数据项中添加一个属性IsSelected:

        public partial class Book
        {
            private Boolean _isSelected;
    
            public Boolean IsSelected
            {
                get
                {
                    if (_isSelected == null) _isSelected = false;
                    return _isSelected;
                }
                set { _isSelected = value; }
            }
        }

    然后在xaml中Binding这个IsSelected:

       <RadioButton IsChecked="{Binding IsSelected, Mode=TwoWay}"></RadioButton>

    最终效果

    选择第一页中的第一行


    翻页就不再显示RadioButton被选中了


    具体代码:https://github.com/kiwiwin/silverlight-demo.git 中datagrid-radiobutton-demo

    github仓库位置:silverlight-demo

    参考资料:

    http://stackoverflow.com/questions/12960837/checkbox-in-silverlight-datagrid-behaving-strangely

    http://social.msdn.microsoft.com/Forums/en-US/silverlightbugs/thread/06b36cb1-a97c-46c6-872c-ae00e2102877/#501008

  • 相关阅读:
    纯CSS打造好看的按钮样式
    jQuery手机端触摸卡片切换效果
    CSS手动改变DIV高宽
    Windows 10 的音频和 MIDI API将统一
    美食网站响应式精美模板
    三道Javascript的练习题
    html5手机端遮罩弹出菜单代码
    CSS的::selection使用方法
    Html5绘制饼图统计图
    JQuery实现一个简单的鼠标跟随提示效果
  • 原文地址:https://www.cnblogs.com/java20130722/p/3206844.html
Copyright © 2011-2022 走看看