2014-12-10 255 views
0

我想添加列Job列中的值,但它一直到0.为什么会发生这种情况?添加列表视图列来到0

enter image description here

MainWindow.xaml.cs:

int jobSum = 0; 
int bidSum = 0; 
foreach (dynamic item in PlotListView.Items) 
{ 
    jobSum += Convert.ToInt32(item.Jobs); 
    bidSum += Convert.ToInt32(item.Bids); 
} 
JobBidRatioTextBlock.Text = jobSum.ToString(); 

MainWindow.xaml:约后台代码

<ListView x:Name="PlotListView" HorizontalAlignment="Left" Height="228" Margin="5,37,0,0" VerticalAlignment="Top" Width="424"> 
    <ListView.View> 
    <GridView AllowsColumnReorder="False"> 
    <GridViewColumn Width="99" Header="Plot" DisplayMemberBinding="{Binding PlotId}"/> 
    <GridViewColumn Width="99" Header="Area" DisplayMemberBinding="{Binding Area}"/> 
    <GridViewColumn Width="99" Header="Jobs" DisplayMemberBinding="{Binding Jobs}"/> 
    <GridViewColumn Width="99" Header="Bids" DisplayMemberBinding="{Binding Bids}"/> 
    </GridView> 
    </ListView.View> 
</ListView> 

详细的运行:http://pastebin.com/z5kpDcUM

+0

什么是运行代码的代码隐藏?为什么没有这个领域的约束? – BradleyDotNET 2014-12-10 23:13:24

+0

@BradleyDotNET - 看看http://pastebin.com/z5kpDcUM – methuselah 2014-12-10 23:28:03

+0

不相关:而不是试图实现自己的关系/对象映射,只是使用实体框架。那就是说,你为什么使用动态而不是适当的对象类型?如果你的列包含数字数据,为什么你将它映射到string类型的属性而不是int? – 2014-12-10 23:31:26

回答

1

在你的构造函数主窗口下方的InitializeComponent()这样写:

 InitializeComponent(); 
     DependencyPropertyDescriptor 
.FromProperty(ListView.ItemsSourceProperty, typeof(ListView)) 
.AddValueChanged(PlotListView, PlotListView_ItemsSourceChanged); 

一个funtion然后添加到主窗口类:

 private void PlotListView_ItemsSourceChanged(object sender, EventArgs e) 
    { 
     ////Write your summation code here 
    }