Привязка текстового поля RadDataGrid к Telerik для UWP - PullRequest
0 голосов
/ 08 июня 2018

Мы использовали DataGridTemplateColumn для нашей сетки, чтобы отобразить текстовое поле для столбца.через Prism MVVM у нас есть требование обновить другой столбец в сетке, если значение текстового поля было изменено.ех.У меня есть 3 столбца в моей RadDataGrid, когда я обновляю столбец 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 голосов
/ 09 июня 2018

отл.У меня есть 3 столбца в моей RadDataGrid, когда я обновляю столбец 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));
        }
    }
}

Дело в том, что вам нужно изменить значение Data3 в методе Data1's set.И когда вы изменяете значение Data1 ', набирая некоторые слова, Data3 будет изменен автоматически.

И это пример кода , на который вы могли бы ссылаться.

...