【问题标题】:Telerik RadGridView insert new row MVVMTelerik RadGridView 插入新行 MVVM
【发布时间】:2018-06-09 13:55:42
【问题描述】:

我的视图中有一个 RadGridView,我将它的 ItemSource 绑定到我的 ViewModel 中的一个列表。一切正常。但是如何使用 MVVM 方法插入新行。我宁愿不为此使用代码隐藏。

<telerik:RadGridView x:Name="radGridView" Grid.Row="1" ShowGroupPanel="False" IsFilteringAllowed="False" ItemsSource="{Binding Lieferadressen}" ColumnWidth="*" />

有人知道如何实现吗?

我在 Telerik 文档中找不到任何关于使用 MVVM 插入新行的内容。

【问题讨论】:

    标签: c# mvvm telerik radgridview


    【解决方案1】:

    我自己想通了,我会为那些苦苦挣扎的人发布我的答案。

    所以基本的方法是使用交互触发器。为此,您必须通过 NuGet 将 System.Windows.Interactivity 包添加到您的项目中。

    然后在包含 RadGridView 的 xaml 文件中添加以下 2 个命名空间:

    xmlns:i="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity"
    xmlns:ei="http://schemas.microsoft.com/expression/2010/interactions"
    

    然后你用触发器配置你的 RadGridView。

    <telerik:RadGridView x:Name="radGridView" Grid.Row="1" ShowGroupPanel="False" IsFilteringAllowed="False" ItemsSource="{Binding Lieferadressen}" ColumnWidth="*">
        <i:Interaction.Triggers>
            <i:EventTrigger EventName="RowEditEnded">
                <ei:CallMethodAction TargetObject="{Binding}" MethodName="OnLieferadresseRowEditEnded" />
            </i:EventTrigger>
        </i:Interaction.Triggers>
    </telerik:RadGridView>
    

    EventName 在这里很重要。

    然后在您的 ViewModel 中:

    public void OnLieferadresseRowEditEnded(object sender, GridViewRowEditEndedEventArgs e)
    {
        var row = e.Row as GridViewRow;
    
        if (e.EditAction == GridViewEditAction.Cancel)
        {
            return;
        }
        else if (e.EditOperationType == GridViewEditOperationType.Insert)
        {
            //Insert the entry in the data base
        }
        else if (e.EditOperationType == GridViewEditOperationType.Edit)
        {
            //Update the entry in the data base
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-04-25
      • 1970-01-01
      • 2016-01-14
      • 1970-01-01
      • 2011-09-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多