我有一个事务表来存储一天内发生的所有事务。我把查询写成
select CurrencyCode,TransactionCode,TransactionAmount,COUNT(TransactionCode) as
[No. Of Trans] from TransactionDetails where CAST(CurrentTime as date)=CAST(GETDATE()as date)
group by TransactionCode, CurrencyCode,TransactionAmount order by CurrencyCode
我得到了这样的输出
CurrencyCode TransactionCode TransactionAmount No.OfTrans
ARS SCN 12 1
AWG BNT 12 1
BAM BNT 12 1
BND BNT 7 1
BWP BTC 45 1
EUR BCN 6.6 1
EUR BNT 90 1
EUR BNT 200 1
JPY BNT 10000 2
VND BNT 600 1
VND BNT 800 1
VND BNT 10000000 1
但根据我的要求,我想在页面上显示这样的报告目的
ARS
BNT 0 0
BCN 0 0
SCN 1 12
BTC 0 0
STC 0 0
SNT 0 0
-------
Total Balance ---> 70000
++++++++++++++++++++++++++++++++++++
VND
BNT 3 10001400
BCN 0 0
SCN 0 0
BTC 0 0
STC 0 0
SNT 0 0
-------
Total Balance ---> 17090
++++++++++++++++++++++++++++++++++++
有什么方法可以像 asp.net 那样进行源绑定(bind)。在网格中设计一个模式并根据我的货币代码应用循环。这样我就可以达到我的要求。
最佳答案
首先,您需要在 ListView 中创建一个代表 f.e 一行的类:
public class CurrencyClass
{
public string CurrencyCode {get;set;}
public string TransactionCode {get;set;}
public string TransactionAmount {get;set;}
public string NoOfTrans {get;set;}
}
然后让我们创建一个 DataContext 类,它拥有一个关于 listview 的集合和方法。
public class CurrencyViewModel
{
public CurrencyViewModel()
{
ListOfCurrency = new ObservableCollection<CurrencyClass>();
}
public ObservableCollection<CurrencyClass> ListOfCurrency;
}
因为 list 是 ObservableCollection 的类型,如果它的集合发生变化,它会自动通知您的 ListView。
现在我们需要创建一个代表您的表格的 ListView:
<ListView Name="CurrencyListView">
<ListView.View>
<GridView>
<GridViewColumn Width="200" DisplayMemberBinding="{Binding TransactionCode}" Header="" />
<GridViewColumn Width="200" DisplayMemberBinding="{Binding NoOfTrans}" Header="" />
<GridViewColumn Width="200" DisplayMemberBinding="{Binding TransactionAmount}" Header="" />
</GridView>
</ListView.View>
</ListView>
现在让我们将 ListView 和 ViewModel 绑定(bind)在一起,例如在您的 Window 构造函数中:
CurrencyViewModel currencyViewModel = new CurrencyViewModel();
CurrencyListView.DataContext = currencyViewModel;
CurrencyListView.ItemsSource = currencyViewModel.CurrencyListView;
现在您需要做的就是将项目添加到 currencyViewModel.CurrencyListView,它将显示在您的 ListView 中。请记住根据您的目的更改 GridViewColumn 的值。
关于c# - WPF 中的源绑定(bind),如 Asp.Net,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30883711/