【发布时间】:2014-05-16 14:38:25
【问题描述】:
我正在使用 c# 并使用 silverlight5。我遇到了一个问题,我必须只使用 c#(不是 xaml)来创建组合框,因为我是动态进行的。
我已经使用SelectionChangedEventHandler 这样做,但我想用其他方式替换它但不知道哪种方式?
目前我有这个工作代码:
ComboBox cb = new ComboBox();
if (param.Type == "ComboBox") // I am reading xml if there is ComboBox in its node then i create combo box using c# and this "param" is an object
{
TextBlock txtblk2 = new TextBlock(); //This textBlock is to print the selected value from Combo Box
cb.SelectionChanged += new SelectionChangedEventHandler(comboBox1_SelectionChanged);
cb.SelectedIndex = cb.Items.Count - 1;
txtblk2.Text = cb.SelectedValue.ToString() + " millions";
}
void comboBox1_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
MessageBox.Show("comboBox1_SelectionChanged1");
txtblk2.Text = cb.SelectedValue.ToString() + " millions";
txtblk2.FontSize = 14;
}
有人可以给我写任何等效的方法来实现相同的仅使用必须支持 silverlight5 的 c#(不是 Xaml)吗? 会有很大的帮助。谢谢。
为什么只有 c#?
实际上,我将动态拥有我不知道其结构的 xml,我将对其进行反序列化,如果我遇到任何具有 <Type>ComboBox<Type> 的节点,我将使用它获得的对象来访问 xml 节点值,然后我将创建组合我在上面创建的框(使用选择更改事件)与我必须实现的相同,但不使用 xaml 和选择更改事件。
【问题讨论】:
-
“我必须 [...] 只使用 c#(不是 xaml),因为我是动态执行的”这不是一个真正的正当理由,您可以声明 xaml 来处理动态内容。定义一个
DataTemplate,只要您的数据(解析的 xml)包含 combo-Node.
标签: c# .net silverlight combobox silverlight-5.0