Добрый день
как мне отобразить количество вложений (MailAttach) в Grid колонке для каждой записи <telerik:GridViewDataColumn DataMemberBinding="{Binding MailAttach.ID}" Header="количество" Width="Auto" DataFormatString="dd/MM/yy" TextAlignment="Center"/>
1) Наследовать класс Mail и добавить столбец в котором LINQ запросом считать количество вложений?
Или есть какой-то другой способ?
Заранее спасибо.
model ========
Имею класс Mail
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
public partial class Mail
{
public Mail()
{
this.MailAttach = new HashSet<MailAttach>();
}
public int ID { get; set; }
public string mFrom { get; set; }
public string mFromName { get; set; }
public string mTo { get; set; }
public Nullable<int> mType { get; set; }
public string mSubject { get; set; }
public string mBody { get; set; }
public Nullable<System.DateTime> mRecieved { get; set; }
public Nullable<System.DateTime> mPostStamp { get; set; }
public Nullable<int> mClaim_ID { get; set; }
public Nullable<int> mMailServer { get; set; }
public Nullable<bool> mProcessed { get; set; }
public Nullable<bool> mIsHtml { get; set; }
public virtual Claim Claim { get; set; }
public virtual MailServer MailServer { get; set; }
public virtual ICollection<MailAttach> MailAttach { get; set; }
}
класс MailAttach
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
public partial class MailAttach
{
public int ID { get; set; }
public Nullable<int> atMail_ID { get; set; }
public string atName { get; set; }
public byte[] atData { get; set; }
public Nullable<int> atType { get; set; }
public string atContentId { get; set; }
public virtual Mail Mail { get; set; }
}
класс MailRepository
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
class MailRepository
{
private static HDEntities db = new HDEntities();
private static async Task<IEnumerable<Mail>> allMail()
{
var allMail = from x in db.Mail.AsEnumerable()
select x;
return allMail;
}
private static IEnumerable<Mail> _allMail;
public static IEnumerable<Mail> aMail
{
get
{
if (_allMail == null)
_allMail = allMail().Result;
return _allMail;
}
set
{
_allMail = value;
}
}
}
}
end model ========
класс MainWindowViewModel
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
public class MainWindowViewModel : ViewModelBase
{
private IEnumerable<Mail> _allMail;
public IEnumerable<Mail> allMail
{
get
{
if (_allMail == null)
_allMail = MailRepository.aMail;
return _allMail;
}
set
{
_allMail = value;
OnPropertyChanged("allClaim");
}
}
}
end ViewModel ========
View ========
разметка
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
<Window x:Class="iHelpDesk.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:telerik="http://schemas.telerik.com/2008/xaml/presentation"
xmlns:local="clr-namespace:iHelpDesk.ViewModel"
Title="MainWindow" Height="500" Width="800">
<Window.DataContext>
<local:MainWindowViewModel/>
</Window.DataContext>
<DockPanel>
<Grid DockPanel.Dock="Top">
<StackPanel Orientation="Horizontal" Height="90" Width="300">
<telerik:RadButton Content="Button" Height="60" Width="60" CornerRadius="10" Margin="5"/>
<telerik:RadButton Content="Button" Height="60" Width="60" CornerRadius="10" Margin="5"/>
<telerik:RadButton Content="Button" Height="60" Width="60" CornerRadius="10" Margin="5"/>
<telerik:RadButton Content="Button" Height="60" Width="60" CornerRadius="10" Margin="5"/>
</StackPanel>
</Grid>
<Grid DockPanel.Dock="Left">
<StackPanel Orientation="Vertical" Height="100" Width="150">
</StackPanel>
</Grid>
<Grid>
<telerik:RadTabControl HorizontalAlignment="Stretch" VerticalAlignment="Stretch">
<telerik:RadTabItem x:Name="tabClaims" Header="ЗАЯВКИ" Height="25" Width="100">
<Grid>
<telerik:RadGridView HorizontalAlignment="Stretch"
VerticalAlignment="Stretch"
ItemsSource="{Binding allClaim}"
AutoGenerateColumns="False"
IsReadOnly="True"
ShowGroupPanel="False"
DataLoadMode="Asynchronous"
>
<telerik:RadGridView.Columns>
<telerik:GridViewDataColumn DataMemberBinding="{Binding ID}" Header="№" Width="Auto"/>
<telerik:GridViewDataColumn DataMemberBinding="{Binding cCreated}" Header="СОЗДАНА" Width="Auto" DataFormatString="dd/MM/yy" TextAlignment="Center" />
<telerik:GridViewDataColumn DataMemberBinding="{Binding MailServer.mMailBoxAlias}" Header="ЯЩИК" Width="Auto" TextAlignment="Center" />
<telerik:GridViewDataColumn DataMemberBinding="{Binding cMailSubject}" Header="ТЕМА" Width="*" TextAlignment="Center" />
<telerik:GridViewDataColumn DataMemberBinding="{Binding Category.catName}" Header="КАТЕГОРИЯ" Width="Auto" TextAlignment="Center" />
</telerik:RadGridView.Columns>
</telerik:RadGridView>
</Grid>
</telerik:RadTabItem>
<telerik:RadTabItem x:Name="tabMails" Header="ПИСЬМА" Height="25" Width="100">
<Grid>
<DockPanel>
<telerik:RadGridView DockPanel.Dock="Left"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch"
ItemsSource="{Binding allMail}"
AutoGenerateColumns="False"
IsReadOnly="True"
ShowGroupPanel="False"
DataLoadMode="Asynchronous"
>
<telerik:RadGridView.Columns>
<telerik:GridViewDataColumn DataMemberBinding="{Binding ID}" Header="№" Width="Auto"/>
<telerik:GridViewDataColumn DataMemberBinding="{Binding MailAttach.ID}" Header="количество" Width="Auto" DataFormatString="dd/MM/yy" TextAlignment="Center"/>
<telerik:GridViewDataColumn DataMemberBinding="{Binding MailServer.mMailBoxAlias}" Header="ЯЩИК" Width="Auto" TextAlignment="Center" />
<telerik:GridViewDataColumn DataMemberBinding="{Binding cMailSubject}" Header="ТЕМА" Width="*" TextAlignment="Center" />
<telerik:GridViewDataColumn DataMemberBinding="{Binding Category.catName}" Header="КАТЕГОРИЯ" Width="Auto" TextAlignment="Center" />
</telerik:RadGridView.Columns>
</telerik:RadGridView>
<WebBrowser DockPanel.Dock="Right" VerticalAlignment="Stretch" HorizontalAlignment="Stretch"/>
</DockPanel>
</Grid>
</telerik:RadTabItem>
</telerik:RadTabControl>
</Grid>
</DockPanel>
</Window>
end View ========