Telerik的RadDataGrid单元格文本框绑定UWP

时间:2018-06-08 09:54:02

标签: uwp grid prism

我们已经使用DataGridTemplateColumn为我们的网格显示列的texbox。通过Prism MVVM,如果文本框值已更改,我们需要更新网格中的其他列。 恩。我的RadDataGrid中有3列,当我更新data1列时, data3列将自动更新(data1文本框值+ data2值)。

感谢您的帮助〜

<telerikGrid:RadDataGrid
x:Name="DataGrid"
ItemsSource="{x:Bind ViewModel.DataList,Mode=TwoWay}">
<telerikGrid:RadDataGrid.Columns>
    <telerikGrid:DataGridTemplateColumn Header="Data1" >
                            <telerikGrid:DataGridTemplateColumn.CellContentTemplate>
                                <DataTemplate>
                                    <TextBox Text="{Binding Data1, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" HorizontalAlignment="Left"  VerticalAlignment="Center" MinWidth="100" />
                                </DataTemplate>
                            </telerikGrid:DataGridTemplateColumn.CellContentTemplate>
                            </telerikGrid:DataGridTemplateColumn>
<telerikGrid:DataGridTextColumn Header="Data2" PropertyName="Data2" CanUserResize="False"/>                            
<telerikGrid:DataGridTextColumn Header="Data3" PropertyName="Data3" CanUserResize="False"/>              

                  

1 个答案:

答案 0 :(得分:0)

  

离。我的RadDataGrid中有3列,当我更新data1列时,data3列将自动更新(data1文本框值+ data2值)。

根据您的要求,您可以创建包含Item Data1 Data2三个属性的Data3类,如下所示。

public class Item : INotifyPropertyChanged
{
    private string _data1;

    public string Data1
    {
        get
        {
            return _data1;
        }
        set
        {
            _data1 = value;

            this.Data3 = Data1 + Data2;
            OnPropertyChanged();
        }
    }


    private string _data2;

    public string Data2
    {
        get
        {
            return _data2;
        }
        set
        {
            _data2 = value;
            OnPropertyChanged();
        }
    }

    private string _data3;

    public string Data3
    {
        get
        {
           return _data1 + _data2;
        }
        set
        {
            _data3 = value;
            OnPropertyChanged();
        }
    }
    public event PropertyChangedEventHandler PropertyChanged;
    private void OnPropertyChanged([CallerMemberName] string PropertyName = null)
    {
        if (PropertyChanged != null)
        {
            PropertyChanged(this, new PropertyChangedEventArgs(PropertyName));
        }
    }
}

关键是您需要修改Data1&#39; Data3方法中的值set。当你修改Data1&#39;键入一些单词,Data3将自动更改。

这是你可以参考的code sample