找回密码
 立即注册

QQ登录

只需一步,快速开始

dddsssssqq

注册会员

13

主题

40

帖子

115

积分

注册会员

积分
115
dddsssssqq
注册会员   /  发表于:2022-5-16 16:55  /   查看:2166  /  回复:8
1金币
本帖最后由 dddsssssqq 于 2022-5-16 16:56 编辑



public MainWindow() {        InitializeComponent();
    FlexGridL1.ItemsSource =new ObservableCollection<ElementItem> {
        new("A0", 1),
        new("A1", 1),
        new("A2", 1),
        new("A3", 1),
        new("A4", 1),
        new("A5", 1)
    };
    FlexGridL1.FrozenRows = 7;
}



private void Add_OnClick(object sender, RoutedEventArgs e) {

    FlexGridL1.FrozenRows = 5;
    FlexGridL1.ItemsSource =  new ObservableCollection<ElementItem> {
        new("A0", 1),
        new("A1", 1),
        new("A3", 1),
        new("A4", 1),
        new("A5", 1)
    };
}

启动后执行
Add_OnClick就会出现越界异常




附件: 您需要 登录 才可以下载或查看,没有帐号?立即注册

最佳答案

查看完整内容

问题已经重现,这个可能是产品bug,我这边会报bug 给研发 暂时的解决办法的话,将 FrozenRows设置和ItemsSource设置对调一下吧

8 个回复

倒序浏览
最佳答案
最佳答案
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2022-5-16 16:55:09
来自 5#
问题已经重现,这个可能是产品bug,我这边会报bug 给研发

暂时的解决办法的话,将 FrozenRows设置和ItemsSource设置对调一下吧

评分

参与人数 1满意度 +5 收起 理由
dddsssssqq + 5

查看全部评分

回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2022-5-16 17:47:17
2#
你可以把demo项目上传上来我帮你看看(压缩成zip),如果上传有问题的话,截图看一下具体原因
回复 使用道具 举报
dddsssssqq
注册会员   /  发表于:2022-5-16 18:42:27
3#
Richard.Ma 发表于 2022-5-16 17:47
你可以把demo项目上传上来我帮你看看(压缩成zip),如果上传有问题的话,截图看一下具体原因

MainWindow.xaml.cs  :

using System;
using System.Collections.ObjectModel;
using System.Linq;
using System.Threading;
using System.Timers;
using System.Windows;
using System.Windows.Controls;
using Prism.Commands;
using Timer = System.Timers.Timer;

namespace FlexGridDemo;

/// <summary>
///     Interaction logic for MainWindow.xaml
/// </summary>
public partial class MainWindow : Window {


  

   public MainWindow() {        InitializeComponent();
    FlexGridL1.ItemsSource =new ObservableCollection<ElementItem> {
        new("A0", 1),
        new("A1", 1),
        new("A2", 1),
        new("A3", 1),
        new("A4", 1),
        new("A5", 1)
    };
    FlexGridL1.FrozenRows = 7;
}
  


private void Add_OnClick(object sender, RoutedEventArgs e) {
    FlexGridL1.FrozenRows = 5;
    FlexGridL1.ItemsSource =  new ObservableCollection<ElementItem> {
        new("A0", 1),
        new("A1", 1),
        new("A3", 1),
        new("A4", 1),
        new("A5", 1)
    };
}

    public class ElementItem {
        public ElementItem(string elementName, double elementValue) {
            ElementName = elementName;
            ElementValue = elementValue;
        }

        public string ElementName { get; set; }
        public double ElementValue { get; set; }
    }
}
MainWindow.xaml  :

<Window
    Height="450"
    Title="MainWindow"
    Width="800"
    mc:Ignorable="d"
    x:Class="FlexGridDemo.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:c1="http://schemas.componentone.com/winfx/2006/xaml"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
    <Grid x:Name="Grid">
        <Grid.Resources>
            <Style TargetType="c1:FlexGrid" x:Key="Style">
                <Setter Property="DefaultRowHeight" Value="Auto" />
                <Setter Property="CellStyle">
                    <Setter.Value>
                        <Style TargetType="c1:GridCellView">
                            <Setter Property="Foreground" Value="#1C1C1C" />
                            <Setter Property="ToolTipService.InitialShowDelay" Value="1000" />
                            <Setter Property="ToolTipService.ToolTip" Value="{Binding RelativeSource={RelativeSource Mode=Self}, Path=Content.Child .Text}" />
                            <Style.Triggers>
                                <Trigger Property="IsSelected" Value="True">
                                    <Setter Property="Background" Value="LightGray" />
                                </Trigger>
                                <Trigger Property="ToolTipService.ToolTip" Value="">
                                    <Setter Property="ToolTip.IsEnabled" Value="False" />
                                </Trigger>
                            </Style.Triggers>
                        </Style>
                    </Setter.Value>
                </Setter>
            </Style>

        </Grid.Resources>
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="1*" />
            <ColumnDefinition Width="Auto" />
            <ColumnDefinition Width="1*" />
            <ColumnDefinition Width="1*" />
        </Grid.ColumnDefinitions>

        <c1:FlexGrid
            AutoGenerateColumns="False"
            BorderThickness="1,0,1,0"
            ColumnHeaderGridLinesVisibility="All"
            FrozenLinesBrush="Black"
            FrozenRows="{Binding FrozenRows}"
            Grid.Column="1"
            GridLinesVisibility="Vertical"
            HeadersVisibility="Column"
            Height="Auto"
            IsReadOnly="True"
            MinWidth="200"
            RowHeaderGridLinesVisibility="All"
            SelectionMode="RowRange"
            Style="{StaticResource Style}"
            TopLeftHeaderGridLinesVisibility="All"
            VerticalScrollBarVisibility="Auto"
            Width="Auto"
            x:Name="FlexGridL1">


            <c1:FlexGrid.Columns>
                <c1:GridColumn Header="元素" HeaderHorizontalAlignment="Center">
                    <c1:GridColumn.CellTemplate>
                        <DataTemplate>
                            <Border BorderBrush="#D0D0D0" BorderThickness="0,0,0,1">
                                <TextBlock
                                    Margin="5,0,0,0"
                                    Text="{Binding ElementName}"
                                    TextAlignment="Left" />
                            </Border>
                        </DataTemplate>
                    </c1:GridColumn.CellTemplate>
                </c1:GridColumn>
                <c1:GridColumn
                    Binding="ElementValue"
                    Header="值"
                    HeaderHorizontalAlignment="Center">
                    <c1:GridColumn.CellTemplate>
                        <DataTemplate>
                            <Border BorderBrush="#D0D0D0" BorderThickness="0,0,0,1">
                                <TextBlock
                                    Margin="5,0,0,0"
                                    Text="{Binding ElementValue}"
                                    TextAlignment="Right" />
                            </Border>
                        </DataTemplate>
                    </c1:GridColumn.CellTemplate>
                </c1:GridColumn>
            </c1:FlexGrid.Columns>
        </c1:FlexGrid>
        <Button Click="Add_OnClick" Grid.Column="2">Add</Button>
    </Grid>
</Window>

回复 使用道具 举报
dddsssssqq
注册会员   /  发表于:2022-5-16 18:44:58
4#
Richard.Ma 发表于 2022-5-16 17:47
你可以把demo项目上传上来我帮你看看(压缩成zip),如果上传有问题的话,截图看一下具体原因

上传被限制了,我把demo的代码贴在回复里。麻烦复制下
回复 使用道具 举报
dddsssssqq
注册会员   /  发表于:2022-5-17 09:33:17
6#
Richard.Ma 发表于 2022-5-17 09:26
问题已经重现,这个可能是产品bug,我这边会报bug 给研发

暂时的解决办法的话,将 FrozenRows设置和Item ...

好的
回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2022-5-17 09:57:09
7#
嗯,帖子保留处理,有进展的话会在帖子中回复
回复 使用道具 举报
dddsssssqq
注册会员   /  发表于:2022-11-10 16:09:15
8#
Richard.Ma 发表于 2022-5-17 09:57
嗯,帖子保留处理,有进展的话会在帖子中回复

修复的新版本发布了吗
回复 使用道具 举报
Richard.Ma讲师达人认证 悬赏达人认证 SpreadJS 开发认证
超级版主   /  发表于:2022-11-10 18:23:17
9#
暂无新版本发布,有新的进展会在帖子中更新
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 立即注册
返回顶部