使用模板创建RadioButton-List控件
2010-11-20 20:06
232 查看
前言:本文通过一个简单控件的创建,来看看silverlight的模板系统到底有多么强大(当然这只是强大之处的一点点点....)写作本文的灵感来自于我在互联网上闲逛,看到有朋友需要这样的需求,同时也想通过此练习来学习silverlight,但最希望的是本文能对有需要的朋友有所帮助。
控件需求:使用单选按钮来显示条目和接受选择的列表框
大概样子如下:
代码
<ListBox ScrollViewer.VerticalScrollBarVisibility="Visible" Width="100" Height="60" x:Name="lb">
<ListBox.ItemContainerStyle>
<Style TargetType="ListBoxItem">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="ListBoxItem">
<RadioButton IsChecked="{Binding Path=IsSelected,RelativeSource={RelativeSource TemplatedParent}}"
Content="{TemplateBinding Property=Content}"/>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</ListBox.ItemContainerStyle>
<ListBoxItem IsSelected="True">
<TextBlock>单选按钮一</TextBlock>
</ListBoxItem>
<TextBlock>单选按钮二</TextBlock>
<TextBlock>单选按钮三</TextBlock>
<TextBlock>单选按钮四</TextBlock>
</ListBox>
这样,当你选择列表项的时候,按钮的选中属性就会随着列表项的改变而改变,并且单选按钮也不需要分组了,因为这里它不是列表控件的内容控件了。看下最终效果:
控件需求:使用单选按钮来显示条目和接受选择的列表框
大概样子如下:
代码
<ListBox ScrollViewer.VerticalScrollBarVisibility="Visible" Width="100" Height="60" x:Name="lb">
<ListBox.ItemContainerStyle>
<Style TargetType="ListBoxItem">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="ListBoxItem">
<RadioButton IsChecked="{Binding Path=IsSelected,RelativeSource={RelativeSource TemplatedParent}}"
Content="{TemplateBinding Property=Content}"/>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</ListBox.ItemContainerStyle>
<ListBoxItem IsSelected="True">
<TextBlock>单选按钮一</TextBlock>
</ListBoxItem>
<TextBlock>单选按钮二</TextBlock>
<TextBlock>单选按钮三</TextBlock>
<TextBlock>单选按钮四</TextBlock>
</ListBox>
这样,当你选择列表项的时候,按钮的选中属性就会随着列表项的改变而改变,并且单选按钮也不需要分组了,因为这里它不是列表控件的内容控件了。看下最终效果:
相关文章推荐
- 使用模板创建RadioButton-List控件
- 使用Solution添加list模板并根据需要自动创建列表
- 使用 ASP.NET 语法创建 Web 服务器控件模板
- 技巧/诀窍: 创建和使用Silverlight和WPF 用户控件
- Servlet的概述 什么是Servlet:Servlet的入门servlet的实现关系;使用Eclipse的模板创建servlet
- mojoportal学习——文章翻译之使用Artisteer快捷的创建模板
- VC LIST控件使用方法
- 使用window-based模板创建一个单view程序(转)
- 在Flex控件中使用XMLListCollection
- 数据库连接及简单模型的创建使用(模板引擎切换)
- 使用ASP.NET AJAX Control Toolkit中的ReorderList控件实现用鼠标拖动改变条目顺序
- 在asp.net mvc中创建使用Linq to sql的分页控件[转]
- 使用jaspersoft创建jasper模板的经验总结
- 使用 HTML 控件创建出色的 Metro 风格应用
- 关于DevExpress.XtraTreeList.TreeList控件的使用——给TreeList添加RepositoryItem以实现文本编辑功能
- 使用两个 Windows 窗体 DataGridView 控件创建一个主/从窗体
- c# web 如何使用RequiredFieldValidator控件验证CheckBoxList
- Flex使用<mx:Tree>控件创建树(可添加和删除节点)
- Visual Studio 2010——C#的TreeView和ImageList控件的使用
- ASP.NET中CheckBoxList复选框列表控件详细使用方法