XAML技术:SilverLight中可编辑ComboBox的简易实现

今天编程的时候要用到ComboBox控件,然而SilverLight中的ComboBox与平常所用的大不一样,无论怎么设置都实现不了编辑功能,所以想出了这个土方法,原理就是让ComboBox和TextBox位置上重叠,TextBox在上面。

具体实现操作如下:

1.在前台设计代码中添加ComboBox和TextBox控件,并给每个空间添加唯一标识Name

2.将ComboBox和TextBox进行绑定。

DataContext="{Binding ElementName=textBox1,Mode=OneTime}

3.为ComboBox添加事件:ComboBox_DropDownClosed

            <Canvas Margin="0,0,0,0">
                <ComboBox Height="23" Name="comboBox1" Width="120" DropDownClosed="ComboBox_DropDownClosed" DataContext="{Binding ElementName=textBox1,Mode=OneTime}">
                        <ComboBoxItem Content="列表1-1" />
                        <ComboBoxItem Content="列表1-2" />
                        <ComboBoxItem Content="列表1-3" />
                </ComboBox>
                <TextBox  Height="23" Name="textBox1" Width="100" Canvas.Left="0" Canvas.Top="0" />
             </Canvas>
            <Canvas Margin="0,30,0,0">
                    <ComboBox DataContext="{Binding ElementName=textBox2, Mode=OneTime}" DropDownClosed="ComboBox_DropDownClosed" Height="23" Name="comboBox2" Width="120">
                        <ComboBoxItem Content="列表2-1" />
                        <ComboBoxItem Content="列表2-2" />
                        <ComboBoxItem Content="列表2-3" />
                </ComboBox>
                <TextBox Height="23" Name="textBox2" Width="100" />
             </Canvas>

4.实现事件处理函数

        private void ComboBox_DropDownClosed(object sender, EventArgs e)
        {
            ComboBox cmb = sender as ComboBox;
            BindingExpression binding = cmb.GetBindingExpression(ComboBox.DataContextProperty);
            TextBox Txt = binding.DataItem as TextBox;
            ComboBoxItem cbi = cmb.SelectedItem as ComboBoxItem;
            if(cbi != null)
            	Txt.Text = cbi.Content.ToString();
        }

源码下载:SilverLight中可编辑ComboBox的简易实现.zip

XAML技术:SilverLight中可编辑ComboBox的简易实现

时间: 2024-10-30 00:34:54

XAML技术:SilverLight中可编辑ComboBox的简易实现的相关文章

Silverlight中关于ComboBox的各种使用

前端放置了几个ComboBox的控件. 1 <Grid x:Name="LayoutRoot" Background="White"> 2 <ComboBox Height="23" HorizontalAlignment="Left" Margin="26,49,0,0" Name="comboBox1" VerticalAlignment="Top&quo

【原创】有关Silverlight中“DataGrid中级联动态绑定父/子ComboBox ”的示例。

尝试了很多种方案,由于Datagrid动态生成的每行父子comboBox的Name的不确定性,给父ComboBox绑定事件中获取 子ComboBox很难根据Name获取到. 花了不少时间和公司同事商讨,最终方案如下: 注:父子combobox分别代表: 主行业/子行业 private void CurrentRowIndusrtylist_SelectionChanged(object sender, SelectionChangedEventArgs e) { ComboBox combobo

silverlight中常用的控件

一.布局控件 Canvas面板是一种很基础的布局面板,它支持对其中的控件采用绝对坐标定位.Canvas.Top和Canvas.Left.Canvas.ZIndex附加属性:如果指定了两个控件相对于父容器Canvas同样的边距,则后面声明的控件父覆盖前面声明的控件.这时我们可以使用Canvas.ZIndex属性来改变它们的显示顺序. StackPanel是一种简单的布局面板,它支持用行或列的方式来定位其中包含的控件.StackPanel 常用于安排页面上的一个很小的 UI 部分.默认情况下,Ori

基于微软XAML技术的前端开发方法

使用XAML技术的平台目前包括WPF,Silverlight,Windows8等平台,未来的Windows10统一Windows App也使用XAML技术. 前端开发指通过可视化集成开发环境进行用户界面的设计和实现,结合手动编写XML界面描述代码,完成表现层开发的过程.基于XAML技术的前端开发使用的开发环境是Blend,输出是XAML代码.由于目前版本的Blend 2013存在一些问题,需要和VS配合使用.Blend 2015进行了重大改进,较好地解决了各种问题,但还未发布正式版. 下面总结一

ArcGIS API for Silverlight中加载Google地形图(瓦片图)

原文:ArcGIS API for Silverlight中加载Google地形图(瓦片图) 在做水利.气象.土地等行业中,若能使用到Google的地形图那是再合适不过了,下面就介绍如何在ArcGIS API for Silverlight中加载Google地 形图.先上一个图,初步制作,待后续继续改进 ArcGIS API for Silverlight 中的ArcGISTiledMapServiceLayer图层,继承自TiledMapServiceLayer.如果想实现自己的缓存地图图 层

[Win10]1 WPF和WP8 Silverlight中的导航问题

一.Frame.Page框架的相关介绍 1.Frame类: 继承层次结构 System.Object   System.Windows.Threading.DispatcherObject     System.Windows.DependencyObject       System.Windows.Media.Visual         System.Windows.UIElement           System.Windows.FrameworkElement           

Silverlight中使用MVVM(4)—演练

本来打算用MVVM实现CRUD操作的,这方面例子网上资源还挺多的,毕竟CRUD算是基本功了,因为最近已经开始学习Cailburn框架了,感觉时间 挺紧的,这篇就实现其中的更新操作吧.         功能很明确,当我们更改DataGrid中的CheckBox时,将源中当前发生变化的数据项在界面上显示出来.我们仍然在前面项目的基础上实现这个功能 首先我们需要给实体Person类添加一个Bool的属性,因为这里我们只对这个属性值操作,所以对于age,name属性也就无必要实现更改通知了 public

Silverlight中使用MVVM(1)--基础

Silverlight中使用MVVM(1)--基础 Silverlight中使用MVVM(2)-提高 Silverlight中使用MVVM(3)-进阶 Silverlight中使用MVVM(4)-演练 这是我第一篇关于设计模式方面的文章,以前除了对单例模式等几个常用的模式有所研究之外,对设计模式不是太重视,总觉得要到一定的程度才需要接触, 最近的项目中使用了MVVM模式,所以这段时间查阅了大量这方面模式的文章,理论上的东西大家都说的比较好,这里我也不大谈MVVM模式的优势了,只是 美中不足的是大

Silverlight实用窍门系列:47.Silverlight中元素到元素的绑定,以及ObservableCollection和List的使用区别

问题一:在某一些情况下,我们使用MVVM模式的时候,对于某一个字段(AgeField)需要在前台的很多个控件(A.B.C.D.E)进行绑定,但是如何能够让我们后台字段名改变的时候能够非常方便的改变所有使用了这个字段的控件呢? 回答:使用Element to Element Binding,将AgeFiled绑定到A控件,然后再让B.C.D.E控件绑定A控件的使用AgeField字段的属性. 例如:字段(AgeField)的数据是年龄大小,A.B.C.D.E控件分别是Ellipse.Label.S