Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/visual-studio-2012/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 显示选定的编辑项';s属性_C#_Wpf - Fatal编程技术网

C# 显示选定的编辑项';s属性

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

因此,我为我的DataGrid启用了右键单击选项。我只想显示selecteditem的一个属性,但它的行为与我所希望的不同。它显示我的名称空间和额外的名称空间

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和绑定。没有使用如此强大的工具真是太遗憾了。