WCF服务中:
public List<HtCRM.Model.atable> Getatable(int num, int temp)
{
List<HtCRM.Model.atable> list = new List<HtCRM.Model.atable>();
HtCRM.BLL.atable bll = new HtCRM.BLL.atable();
DataSet ds = null;
ds = bll.GetData("*", " pid=0 ");
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
{
HtCRM.Model.atable aaa = new HtCRM.Model.atable();
//user.UID = ds.Tables[0].Rows[i]["UID"].ToString().StrToInt(1);
aaa.aid = (int)ds.Tables[0].Rows[i]["aid"];
aaa.aname = ds.Tables[0].Rows[i]["aname"].ToString();
aaa.pid = (int)ds.Tables[0].Rows[i]["pid"];
list.Add(aaa);
}
return list;
}
...
页面实现:
public partial class jilian : ChildWindow
{
Silverlightjizhang.ServiceReference1.XWServiceClient client = new ServiceReference1.XWServiceClient();
public jilian()
{
InitializeComponent();
client.GetatableCompleted += new EventHandler<ServiceReference1.GetatableCompletedEventArgs>(client_GetatableCompleted);
client.GetatableAsync(0, 1);
client.GetbtableCompleted += new EventHandler<GetbtableCompletedEventArgs>(client_GetbtableCompleted);
client.GetctableCompleted += new EventHandler<GetctableCompletedEventArgs>(client_GetctableCompleted);
}
void client_GetatableCompleted(object sender, ServiceReference1.GetatableCompletedEventArgs e)
{
if (e.Error != null)
{
return;
}
if (e.Result == null)
{
return;
}
//加载combobox1
ObservableCollection<atable> list = e.Result as ObservableCollection<atable>;
int res = 0;
if (list.Count > 0)
{
com1.ItemsSource = list;
com1.DisplayMemberPath = "aname";
if (SilverlightClassLibrary.SessionManager.Session.Count > 0)
{
for (int i = 0; i < list.Count; i++)
{
if (list[i].aid == (int)SilverlightClassLibrary.SessionManager.Session[0])
{
res = i;
break;
}
}
com1.SelectedIndex = res;
}
else
{
com1.SelectedIndex = 0;
}
}
else
{
com1.Items.Add("没有可选择的数据");
}
}
void client_GetbtableCompleted(object sender, GetbtableCompletedEventArgs e)
{
if (e.Error != null)
{
return;
}
if (e.Result == null)
{
return;
}
//加载combobox2
ObservableCollection<btable> list = e.Result as ObservableCollection<btable>;
int res = 0;
if (list.Count > 0)
{
com2.ItemsSource = list;
com2.DisplayMemberPath = "bname";
if (SilverlightClassLibrary.SessionManager.Session.Count > 0)
{
for (int i = 0; i < list.Count; i++)
{
if (list[i].bid == (int)SilverlightClassLibrary.SessionManager.Session[1])
{
res = i;
break;
}
}
com2.SelectedIndex = res;
}
else
{
com2.SelectedIndex = 0;
}
}
else
{
com2.Items.Add("没有可选择的数据");
}
}
void client_GetctableCompleted(object sender, GetctableCompletedEventArgs e)
{
if (e.Error != null)
{
return;
}
if (e.Result == null)
{
return;
}
//加载combobox3
ObservableCollection<ctable> list = e.Result as ObservableCollection<ctable>;
int res = 0;
if (list.Count > 0)
{
com3.ItemsSource = list;
com3.DisplayMemberPath = "cname";
if (SilverlightClassLibrary.SessionManager.Session.Count > 0)
{
for (int i = 0; i < list.Count; i++)
{
if (list[i].cid == (int)SilverlightClassLibrary.SessionManager.Session[2])
{
res = i;
break;
}
}
com3.SelectedIndex = res;
}
else
{
com3.SelectedIndex = 0;
}
}
else
{
com3.Items.Add("没有可选择的数据");
}
}
private void OKButton_Click(object sender, RoutedEventArgs e)
{
//首先清空Session
SilverlightClassLibrary.SessionManager.Session.Clear();
atable ps1 = new atable();
btable ps2 = new btable();
ctable ps3 = new ctable();
ps1 = (atable)com1.SelectedItem;
ps2 = (btable)com2.SelectedItem;
ps3 = (ctable)com3.SelectedItem;
int m1 = ps1.aid;
int m2 = ps2.bid;
int m3 = ps3.cid;
//给Session赋值
SilverlightClassLibrary.SessionManager.Session.Add(m1);
SilverlightClassLibrary.SessionManager.Session.Add(m2);
SilverlightClassLibrary.SessionManager.Session.Add(m3);
this.DialogResult = true;
}
private void CancelButton_Click(object sender, RoutedEventArgs e)
{
this.DialogResult = false;
}
/// <summary>
/// 下拉框1的改变 联动着2的改变
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void com1_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
atable ps = new atable();
ps = (atable)com1.SelectedItem;
if (ps != null)
{
client.GetbtableAsync(ps.aid, 1);
}
else
{
client.GetbtableAsync(1, 1);
}
}
/// <summary>
/// 下拉框2的改变 联动着3的改变
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void com2_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
btable ps = new btable();
ps = (btable)com2.SelectedItem;
if (ps != null)
{
client.GetctableAsync(ps.bid, 1);
}
else
{
client.GetctableAsync(1, 1);
}
}
}
新创建 silvetrlight类库 添加Session类:
namespace SilverlightClassLibrary
{
public static class SessionManager
{
private static List<object> session = new List<object>();
public static List<object> Session
{
get { return SessionManager.session; }
set { SessionManager.session = value; }
}
}
}