, поэтому я занимаюсь шахматной игрой, чтобы узнать C# и WPF.C# WPF Chess binding и ObservableCollection, как изменить?
Были ли у вас много ошибок и до сих пор придумали какой-то код, теперь моя проблема в том, что когда я создаю шахматные фигуры на своей доске, я не знаю, как их модифицировать внутри коллекции observbleCollection, например, удаляя одну часть. С помощью этого кода я могу добавить части к доске.
Но как я могу изменить его после того, как я его создал?
this.ChessBoardd.ItemsSource = new ObservableCollection<ChessPiece>
{
new ChessPiece{Type_ = Piece.Pawn, Player_ = PiecePlayer.Black, Posx_ = 30, Posy_ = 50},
new ChessPiece{Type_ = Piece.Pawn, Player_ = PiecePlayer.Black, Posx_ = 30, Posy_ = 50}
};
В этом же файле у меня есть следующий код:
public class ChessPiece : INotifyPropertyChanging
{
private int posx_;
private int posy_;
public int Posx_
{
get { return this.posx_; }
set { this.posx_ = value; OnPropertyChanged("Posx_"); }
}
public int Posy_
{
get { return this.posy_; }
set { this.posy_ = value; OnPropertyChanged("Posy_"); }
}
public event PropertyChangedEventHandler PropertyChanged;
protected virtual void OnPropertyChanged(string propertyName)
{
PropertyChangedEventHandler handler = PropertyChanged;
if (handler != null) handler(this, new PropertyChangedEventArgs(propertyName));
}
}
Вот с моей идеей было то, что я мог бы некоторые, как изменить ObservableCollection массив, например (это не работает, так как я не знаю, как это сделать), а затем щ обновит платы automatlicy, поскольку я имею infotifyproperychangin и связывание в файле XAML,
this.ChessBoardd.IteamsSource[0].Posx_ = 50;
Любые идеи по этому поводу? Должен ли я соглашаться с другим способом?
Внесите 'INotifyPropertyChanged', а не' INotifyPropertyChanging'. – BradleyDotNET
Nice catch @BradleyDotNET ... –
Ах, конечно, должно быть, что, спасибо! –