0

WPF アプリケーション ウィンドウにデータ グリッドがあり、監視可能なコレクションにバインドする必要があります。このデータ グリッド内のアイテムを編集、削除、追加、および編集できるオプションをユーザーに提供する必要があります。

以下でデータグリッドのバインドを行いましたが、ユーザーがデータグリッドからアイテムを簡単に追加、編集/更新、削除できるようにする方法を知りたいと思いました。

これが私の現在のコードです:

.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"); }
        }
4

1 に答える 1

0

追加/削除するには、CanUserAddRows および CanUserDeleteRows プロパティが true に設定されていることを確認してください。ユーザーは、一番下の空白行に入力して行を追加し、行を選択してキーボードの [削除] を押すことで行を削除できます。

行を編集するには、IsReadOnly プロパティを false (デフォルト) にする必要があります。

于 2012-08-01T10:37:40.943 に答える