小编Rui*_*Rui的帖子

对 WPF 数据网格列重新排序

我想为用户提供一个设置,他可以在其中重新排序datagrid. 我知道我可以使用 来DisplayIndex实现此目的,但我的问题是如何保存每列的顺序,我如何知道哪一列被移动到第一个位置等等?

我想过使用列标题,但我不知道这是否是最好的解决方案。

下面是我使用的数据网格:

<DataGrid GridLinesVisibility="All" VerticalGridLinesBrush="#FFE5E2DB" IsReadOnly="true" AutoGenerateColumns="False" VerticalContentAlignment="Center" 
                      ItemsSource="{Binding DisplayIndexes, UpdateSourceTrigger=PropertyChanged}" CanUserSortColumns="True" SelectionUnit="FullRow" 
                      HorizontalAlignment="Stretch" Margin="5,5,5,0" Name="dgDisplayIndexes"  
                      TabIndex="1" RowHeight="30" 
                      CanUserAddRows="False" HorizontalScrollBarVisibility="Hidden" VerticalScrollBarVisibility="Hidden" ColumnWidth="Auto" CanUserReorderColumns="True" 
                      CanUserResizeColumns="False" CanUserResizeRows="False" VerticalAlignment="Top" Height="150">
                <DataGrid.RowStyle>
                    <Style TargetType="{x:Type DataGridRow}">
                        <Setter Property="Padding" Value="0"/>
                        <Setter Property="Margin" Value="0"/>
                        <Setter Property="VerticalAlignment" Value="Center"/>
                    </Style>
                </DataGrid.RowStyle>
                <DataGrid.Columns>
                    <DataGridTextColumn Header="ID" Binding="{Binding ID}" DisplayIndex="0" Visibility="Hidden" />
                    <DataGridTemplateColumn SortMemberPath="status"  
                                        Header="{Binding Vertaling.DELIVERY_BEZORGORDER_LOPENDEORDERSTAB_DG_STATUS.Vertaling, Source={x:Static Application.Current}, NotifyOnSourceUpdated=True}" 
                                        DisplayIndex="1" >
                        <DataGridTemplateColumn.CellTemplate>
                            <DataTemplate>
                                <Image Height="16" Width="16" Stretch="Fill" Source="{Binding status, Converter={StaticResource getIconForStatus}}" />
                            </DataTemplate>
                        </DataGridTemplateColumn.CellTemplate>
                    </DataGridTemplateColumn> …
Run Code Online (Sandbox Code Playgroud)

wpf datagrid

3
推荐指数
1
解决办法
5405
查看次数

c#方法名称预期INotifypropertyChanged

我遇到了问题.我是一名VB.net程序员,我正在努力学习C#.在我做过的很多VB项目中,我总是使用一个viewModelBase类,我可以通过我的项目通知我的属性,当我尝试将代码从vb转换为C#时,我得到一个method name expected就行了:if (TypeDescriptor.GetProperties(this)(propertyName) == null)

[Conditional("DEBUG"), DebuggerStepThrough()]
    public void VerifyPropertyName(string propertyName)
    {
        if (TypeDescriptor.GetProperties(this)(propertyName) == null)
        {
            string msg = "Invalid property name: " + propertyName;

            if (this.ThrowOnInvalidPropertyName)
            {
                throw new Exception(msg);
            }
            else
            {
                Debug.Fail(msg);
            }
        }
    }
Run Code Online (Sandbox Code Playgroud)

我真的找不到任何解决方案!有帮助吗?

谢谢

c# inotifypropertychanged

1
推荐指数
1
解决办法
182
查看次数

标签 统计

c# ×1

datagrid ×1

inotifypropertychanged ×1

wpf ×1