在listview中也可以,谢谢了,就急啊

解决方案 »

  1.   

    写个datatemplate,将内容放在textblock中,将该textblock的background和绑定源的对应属性绑定,更改该属性就可以改变背景色,或者放个border也可以,放在最底层,同样也要绑定,用后台的model来控制
      

  2.   

    谢谢2L回复 呵呵!
    http://www.bababagame.org
      

  3.   

    只更改集合中一个model的颜色属性,那就只有一个单元格会变色
      

  4.   

    <ListView Name="dg1" SelectionMode="Extended">
                <ListView.View>
                    <GridView>
                        <GridViewColumn Width="100" DisplayMemberBinding="{Binding 0}" >                        <GridViewColumn Header="星期天" Width="140">
                                <GridViewColumn.CellTemplate>
                                    <DataTemplate>
                                        <TextBlock Text="{Binding Balance}" Background="AliceBlue" />
                                    </DataTemplate>
                                </GridViewColumn.CellTemplate>
                            </GridViewColumn>
                        </GridViewColumn>
                        <GridViewColumn Header="星期一" Width="100" DisplayMemberBinding="{Binding 1}"/>
                        <GridViewColumn Header="星期二" Width="100" DisplayMemberBinding="{Binding 2}"/>
                        <GridViewColumn Header="星期三" Width="100" DisplayMemberBinding="{Binding 3}"/>
                        <GridViewColumn Header="星期四" Width="100" DisplayMemberBinding="{Binding 4}"/>
                        <GridViewColumn Header="星期五" Width="100" DisplayMemberBinding="{Binding 5}"/>
                        <GridViewColumn Header="星期六" Width="100" DisplayMemberBinding="{Binding 6}"/> 
                    </GridView>
                </ListView.View>
            </ListView>
    是这样吗??那个model属性加到哪里 阿
      

  5.   

    Background="AliceBlue"这个属性也绑定,绑定到后台数据model的某个属性上,就是要在你的需要绑定的数据对象中再加个brush类型的属性
      

  6.   

    不好意思,我才接触wpf,可不可以麻烦你举一个例子啊
      

  7.   

    我做到的项目里都是有原始数据和界面展示两层的,获得原始数据后再经过处理放入界面展示的model,该model通常继承DependencyObject,属性都为依赖属性,该model中除了存放数据外还可存放和界面呈现有关的一切东西,包括颜色,各种控件的属性,等等,然后通过绑定的方式展示在界面上,通过更改model的方式更改展现形式
      

  8.   

    你好,那个model属性我还是不会用。。比如说我在前台有个listview
    <ListView Name="lvEducation" Margin="0,0,6,139" MouseDoubleClick="lvEducation_MouseDoubleClick">
                                <ListView.View>
                                    <GridView>
                                        <GridViewColumn Header="Education" Width="0"  DisplayMemberBinding="{Binding educationskey}"Style="{StaticResource backgroundcolor}"/>
      </GridView>
                                </ListView.View>
                            </ListView>
    在后台的绑定是
    this.lvEducation.ItemsSource =dt;
    注:dt中有数据,是datatable类型的
    我该怎样在后台改变一个单元格的颜色啊
      

  9.   

    后台的数据不要直接放在datatable中,自己写个类,继承DependencyObject,再写个这个类的集合,继承ObservableCollection,用这个集合作为绑定源,集合中的每一个对象对应一行,集合中的每个属性都对应该行的一个呈现元素,不管是文字,还是颜色,style,都存放在该对象中,通过绑定在界面上显示
      

  10.   

    老兄,我也在弄这个问题..在后台类中集合可不可以写list泛型集合阿..怎样使集合作为一个数据源..在前台有怎样绑定阿..你可以不可以举一个简单的例子阿..拜托..
      

  11.   

    public class TestModel : DependencyObject
        {
            public string Test
            {
                get
                {
                    return ((string)(GetValue(TestProperty)));
                }
                set
                {
                    SetValue(TestProperty, value);
                }
            }
            /// <summary>
            /// Using a DependencyProperty as the backing store for BondSecurityNameForBinding.  This enables animation, styling, binding, etc...
            /// </summary>
            public static DependencyProperty TestProperty = DependencyProperty.Register("Test", typeof(string), typeof(TestModel));
        }
    最简单的只有一个依赖属性的model,将需要展示的东西,不管是文字还是背景颜色都定义成model的属性,如果是要改变单元格颜色,在定义一个brush类型的依赖属性,比如叫Backpublic class TestModelCollection : ObservableCollection<TestModel>
    {}model的集合,继承ObservableCollection,可以在界面上自动更新,该集合作为绑定的集合直接作为datacontext……
    <GridViewColumn.CellTemplate>
                  <DataTemplate>
                    <TextBlock TextAlignment="Left" Text="{Binding Test}" Background="{Binding Back}"/>
                  </DataTemplate>
                </GridViewColumn.CellTemplate>
    ……这是listview一列的datatemplate,将展示内容绑定,最后设置该listview的datacontext为上面的TestModelCollection,当然集合里的内容需要自己从原始数据中获取
      

  12.   

    这种做法可不可以用到datagrid中阿...那么在TestModelCollection 中怎么写啊..这个类是得到数据源,并且把数据赋值 给界面的作用吗 ??
      

  13.   

    应该可以,不过没试过,这个collection什么东西都没有也可以,只要继承ObservableCollection,自己加个索引也可以,该类是model的集合,作用相当于你之前的绑定源List<T>,其实如果集合不变的话,用list也可以,但是集合会增加或减少项,界面需要实时反应变化的话就要用ObservableCollection,这个集合直接作为datacontext,绑定到界面元素
      

  14.   

    那么 Text="{Binding Test}" Background="{Binding Back}"这两个值是从哪里来 的阿
      

  15.   

    这些都是定义在model中的属性阿
      

  16.   

    好 那假如我要 Background是红色我在哪里给红色给他哦
      

  17.   

    在后台的集合中将你需要改变的model从集合中找到,然后更改model的Back属性为Red
      

  18.   

    还是不能出来哦...我现在是用的DataGrid.其它要求都OK了,就是要改变单元格的背景颜色...怎么搞
      

  19.   

    <my:DataGrid AutoGenerateColumns="False" Name="dg1" CanUserReorderColumns="False" CanUserResizeColumns="False" CanUserResizeRows="False" CanUserSortColumns="False" EnableRowVirtualization="False" Focusable="False" IsEnabled="False" IsHitTestVisible="False" Padding="0,0,0,0" Width="885" >
                <my:DataGrid.Columns>  
                    <my:DataGridTextColumn Binding="{Binding 0}" Header="SUN"  Width="125">
                    </my:DataGridTextColumn>
                    <my:DataGridTextColumn Binding="{Binding 1}" Header="MON"  Width="125"/>
                    <my:DataGridTextColumn Binding="{Binding 2}" Header="TUE"  Width="125"/>
                    <my:DataGridTextColumn Binding="{Binding 3}" Header="WED"  Width="125"/>
                    <my:DataGridTextColumn Binding="{Binding 4}" Header="THU"  Width="125"/>
                    <my:DataGridTextColumn Binding="{Binding 5}" Header="FRI"  Width="125"/>
                    <my:DataGridTextColumn Binding="{Binding 6}" Header="SAT"  Width="125"/>
                </my:DataGrid.Columns>
            </my:DataGrid>我前台就是这样
      

  20.   

    this.dg1.ItemsSource = null;
                this.dg1.ItemsSource = DT_changed(year, 4).DefaultView;
                Change(dg1, 4, UsersLogin.companyId, year);
                this.lbOne.Content = year + "年" + 4 + "月";这是后台
      

  21.   

    其中DT_changed(year, 4)是一个方法.我这样的运行效果就是可以把这个年份的4月分的日期以表格的形式显示出来...现在我就是要实现如果时间是4月6号.我那个显示6的单元格的背景颜色要改变.
      

  22.   

    其实不管怎么做,最主要的要把界面显示和后台的数据用绑定关联起来,如果要改变颜色在后台的model中加入一个颜色属性,datagrid是toolkit中的吧,没用过,如果DataGridTextColumn有background属性,就把这个属性和后台model中的颜色属性绑定
      

  23.   

    datagrid是toolkit中的.就是没实现的了阿.那怎么办..我从来没实现过阿.
      

  24.   

    用DataGridTemplateColumn,不要用DataGridTextColumn,然后自己写个template,放个textblock,把textblock的background绑定