データグリッドに8列あり、特定の行が空のときに削除ボタンをクリックすると、「タイプ 'MS.Internal.NamedObject'オブジェクトをキャストすることができません。 「pojo」と入力してください。DataGridで空の行を削除できないWPF
[![ここに画像の説明を入力]
これは私のモデルクラスです...
public class pojo : INotifyPropertyChanged
{
private string prefix;
private int year;
public string Prefix
{
get { return prefix; }
set
{
if (prefix == value) return;
prefix = value;
OnPropertyChanged(nameof(PeriodName));
}
}
public int Year
{
get { return year; }
set
{
if (year == value) return;
year = value;
OnPropertyChanged(nameof(PeriodName));
}
}
public int QuarterNo { get; set; }
public int SerialNo { get; set; }
public string From { get; set; }
public string To { get; set; }
public string PeriodName => prefix + '-' + (year % 100).ToString();
public event PropertyChangedEventHandler PropertyChanged;
void OnPropertyChanged(string prop)
{
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(prop));
}
}
これは私の[削除]ボタンのクリックイベントです...
private void Delete_Btn_Click(object sender, RoutedEventArgs e)
{
if (calendarmstrDG.SelectedItem != null)
{
models.Remove((pojo)calendarmstrDG.SelectedItem);
}
}
することができます誰も.....
:あなたはそれを表示したくない場合は、
CanUserAddRows
False
に設定してください。データがない場合、なぜ削除ボタンで空の行を表示して削除するのですか? –これは型キャストに関連しています。あなたは、行が空ですが、 'if(calendarmstrDG.SelectedItem!= null)'と書いていますので、この行のエラーが発生したために機能しないと思います。 'models.Remove((pojo)calendarmstrDG.SelectedItem); '最後に、calendarmstrDG.SelectedItem型がpojo型と同じでないため、別の型にキャストできないため、コードを再度チェックします。 –
@AminSaadatiこのデータグリッドの行はユーザ入力フィールドなので、ページが読み込まれると自動的に最初の行が有効になります...行セルに何かを書き始めたときにエラーをスローしません...空行上記のエラーが表示されます。 – Markz