编辑,删除,随时添加项目到数据网格

时间:2012-08-01 09:23:38

标签: c# wpf

我的WPF应用程序窗口中有一个数据网格,我必须绑定到一个可观察的集合。我必须为用户提供选项,以便能够编辑,删除,添加和编辑此数据网格中的项目。

我在下面对datagrid进行了绑定,但是想问一下如何让用户轻松添加,编辑/更新数据网格中的项目。

这是我目前的代码:

的.xaml

<DataGrid x:Name="dgrQuestions" AutoGenerateColumns="False" Height="272" HorizontalAlignment="Left" Margin="42,73,0,0" VerticalAlignment="Top" Width="669" ItemsSource="{Binding QuestionsList}">
      <DataGrid.Columns>                
            <DataGridTextColumn Header="FirstQues" Binding="{Binding Question}"/>
            <DataGridTextColumn Header="SecondQues" Binding="{Binding Answer}"/>
            <DataGridTextColumn Header="ThirdQues" Binding="{Binding Hint}"/>
      </DataGrid.Columns>
</DataGrid>

.xaml.cs代码

using Quest; //class having the format of the question

public class Master
{

    private ObservableCollection<Quest> questList;
        public event PropertyChangedEventHandler PropertyChanged;        

        public ObservableCollection<Quest> QuestionList
        {
            get { return questList; }
            set 
            {             
                questList = value;
                if (PropertyChanged != null)
                    PropertyChanged(this, new PropertyChangedEventArgs("QuestionsList"));
            }
        }

    //Add, Edit, Remove, Reset methods required
}
对于要为其创建对象的类,

.cs代码(仅限此处提到的属性):

public string Question
        {
            get { return _question; }
            set{ _question = value; OnPropertyChanged("Question"); }
        }

        public string Answer
        {   get { return _answer; }
            set {_answer = value; OnPropertyChanged("Answer"); }
        }

        public string Hint
        {
            get { return _hint; }
            set { _hint = value; OnPropertyChanged("Hint"); }
        }

1 个答案:

答案 0 :(得分:0)

要添加/删除,请确保将CanUserAddRows和CanUserDeleteRows属性设置为true。然后,用户可以通过输入底部的空白行来添加行,并通过选择它们并按键盘上的删除来删除行。

要编辑行,IsReadOnly属性必须为false(默认情况下)。