C# 显示选定的编辑项';s属性
因此,我为我的DataGrid启用了右键单击选项。我只想显示selecteditem的一个属性,但它的行为与我所希望的不同。它显示我的名称空间和额外的名称空间C# 显示选定的编辑项';s属性,c#,wpf,C#,Wpf,因此,我为我的DataGrid启用了右键单击选项。我只想显示selecteditem的一个属性,但它的行为与我所希望的不同。它显示我的名称空间和额外的名称空间 public class Paymentinfo { public int PaymentNo { get; set; } public String Date { get; set; } public double Payment { get; set; } public double Principle { g
public class Paymentinfo
{
public int PaymentNo { get; set; }
public String Date { get; set; }
public double Payment { get; set; }
public double Principle { get; set; }
public double Interest { get; set; }
public double Balance { get; set; }
}
private void MenuItem_OnClick(object sender, RoutedEventArgs e)
{
MessageBox.Show(AmortGrid.SelectedItem.ToString());
}
我正在尝试在不使用viewmodel的情况下实现此功能!如果我将断点放在Messagebox所在的位置,并将光标放在selectedItem上,它将显示properties paymentNo date payment principle利息余额。我唯一需要的价值是薪水否
我希望是这样的
MessageBox.Show(AmortGrid.SelectedItem.PaymentNo.ToString());
当您这样调用
ToString()
时,您会得到类类型的名称,这就是您看到的
如果这是Paymentinfo
的集合,请先将SelectedItem
转换回该类型:
MessageBox.Show(((Paymentinfo)AmortGrid.SelectedItem).PaymentNo.ToString());
FWIW,我会重新考虑
ViewModel
。如果您从代码背后获取代码,那么测试代码就容易得多
您可以将您的
SelectedItem
直接绑定到ViewModel
中的属性(可能称为SelectedPaymentinfo),这样就不会在强制转换方面乱来。当您这样调用ToString()
时,您会得到类类型的名称,这就是您看到的
如果这是Paymentinfo
的集合,请先将SelectedItem
转换回该类型:
MessageBox.Show(((Paymentinfo)AmortGrid.SelectedItem).PaymentNo.ToString());
FWIW,我会重新考虑
ViewModel
。如果您从代码背后获取代码,那么测试代码就容易得多
您可以将SelectedItem
直接绑定到ViewModel
中的属性(可能称为SelectedPaymentinfo),这样就不会在施法上乱来。您还可以设置and而不是使用SelectedItem use。您还可以设置and而不是使用SelectedItem use。在PaymentInfo上创建一个ToString()方法
public class Paymentinfo
{
public override string ToString()
{
return PaymentNo.ToString();
}
}
在PaymentInfo上创建一个ToString()方法
public class Paymentinfo
{
public override string ToString()
{
return PaymentNo.ToString();
}
}
+1用于viewmodel和绑定。很遗憾没有使用如此强大的工具。+1用于viewmodel和绑定。没有使用如此强大的工具真是太遗憾了。