【问题标题】:Change the value in a cell in a datagrid (binding)更改数据网格中单元格中的值(绑定)
【发布时间】:2015-02-27 20:01:41
【问题描述】:

这是我的问题。

当我选择一行并单击按钮时,单元格必须更改值,但不会更改任何内容

这是 XAML 代码。

        <DataGrid 

        ItemsSource="{Binding Dati_Viaggio, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" 
        SelectedItem="{Binding SelectDati_Viaggio, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"

        AutoGenerateColumns="False" HorizontalAlignment="Left" Height="119" Margin="10,10,0,0" VerticalAlignment="Top" Width="497">

        <DataGrid.Columns>
            <DataGridTextColumn x:Name="NumOrd" Binding="{Binding Path=NumOrd, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"  Header="NumOrd" Width="150" />
        </DataGrid.Columns>

    </DataGrid>

这是c#代码

Public ObservableCollection<Model_Ricerca_Dati_Viaggio> Dati_Viaggio 
{ get; set; }
private Model_Ricerca_Dati_Viaggio _SelectDati_Viaggio;
public Model_Ricerca_Dati_Viaggio SelectDati_Viaggio {
get { return _SelectDati_Viaggio; }
set {
    _SelectDati_Viaggio = value;
    OnPropertyChanged("SelectDati_Viaggio");}}

private string _NumOrd { get; set; }
public string NumOrd {
get { return _NumOrd; }
set {
    _NumOrd = value;
    OnPropertyChanged("NumOrd");}}

Private void Cmd_TrovaExe()
{
SelectDati_Viaggio.NumOrd = Now.@string;

OnPropertyChanged("NumOrd");
OnPropertyChanged("Dati_Viaggio");
OnPropertyChanged("SelectDati_Viaggio");
}

为什么在 SelectDati_Viaggio.NumOrd = Now.@string; 之后单元格不引用?

【问题讨论】:

  • 请发布您的完整数据模型和 xaml 代码。

标签: c# wpf binding datagrid cell


【解决方案1】:

您的类Model_Ricerca_Dati_Viaggio 还必须实现INotifyChanged 接口,以便将更改暴露给UI:

  public class Model_Ricerca_Dati_Viaggio:INotifyPropertyChanged
{
    private string _numOrd ;
    public string NumOrd  
    {
        get
        {
            return _numOrd;
        }

        set
        {
            if (_numOrd == value)
            {
                return;
            }

            _numOrd = value;
            OnPropertyChanged("NumOrd");
        }
    }

    public event PropertyChangedEventHandler PropertyChanged;

    protected virtual void OnPropertyChanged([CallerMemberName] string propertyName = null)
    {
        PropertyChangedEventHandler handler = PropertyChanged;
        if (handler != null) handler(this, new PropertyChangedEventArgs(propertyName));
    }
}

【讨论】:

  • 我更改了 Model_Ricerca_Dati_Viaggio 类,现在可以了。非常感谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-08-16
  • 1970-01-01
  • 1970-01-01
  • 2012-09-30
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多