Silverlight ListBox 控制元件使用介紹
1、ListBox的單選和多選
預設情況下只支援單選
通過設定其SelectionMode可以支援多選
SelectionMode - 選擇模式 [System.Windows.Controls.SelectionMode 列舉]
Single - 只允許單選
Multiple - 可以多選(不需要任何輔助鍵)
Extended - 可以多選(需要 Ctrl 或 Shift 的配合)
2、資料模板和資料繫結
<ListBox x:Name="lbPerson" ItemsSource="{Binding}" SelectionMode="Multiple" Height="118" Margin="53,55,8,0" VerticalAlignment="Top" ScrollViewer.HorizontalScrollBarVisibility="Hidden" SelectionChanged="lbPerson_SelectionChanged">
<ListBox.BorderBrush>
<LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
<GradientStop Color="#FFA3AEB9" Offset="0.058"/>
<GradientStop Color="#FF617584" Offset="1"/>
</LinearGradientBrush>
</ListBox.BorderBrush>
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<TextBlock x:Name="content" FontWeight="Bold" Foreground="#0b333c" FontSize="14" TextWrapping="Wrap" Text="{Binding CNAME}" Width="50" Height="20"/>
<TextBlock x:Name="content2" FontWeight="Bold" Foreground="#0b333c" FontSize="14" TextWrapping="Wrap" Text="{Binding CMCODE}" Width="100" Height="20"/>
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
/// <summary>
/// 從WebService獲取資料,繫結到ListBox的DataContext上
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void cbCounty_SelectionChanged(object sender, System.Windows.Controls.SelectionChangedEventArgs e)
{
MapClient.ServiceReference1.Region ws = (sender as ComboBox).SelectedItem as MapClient.ServiceReference1.Region;
getMapDataSoapClient client = new getMapDataSoapClient();
client.getRYByADDVCDCompleted += new EventHandler<getRYByADDVCDCompletedEventArgs>(client_getRYByADDVCDCompleted);
client.getRYByADDVCDAsync(ws.RegionCode);
}
void client_getRYByADDVCDCompleted(object sender, getRYByADDVCDCompletedEventArgs e)
{
ObservableCollection<FXJGRY> lists = e.Result;
this.lbPerson.DataContext = lists;
}
public T FindFirstVisualChild<T>(DependencyObject obj, string childName) where T : DependencyObject
{
for (int i = 0; i < VisualTreeHelper.GetChildrenCount(obj); i++)
{
DependencyObject child = VisualTreeHelper.GetChild(obj, i);
if (child != null && child is T && child.GetValue(NameProperty).ToString() == childName)
{
return (T)child;
}
else
{
T childOfChild = FindFirstVisualChild<T>(child, childName);
if (childOfChild != null)
{
return childOfChild;
}
}
}
return null;
}
Dictionary<string, string> dic = new Dictionary<string, string>();
private void lbPerson_SelectionChanged(object sender, System.Windows.Controls.SelectionChangedEventArgs e)
{
ListBoxItem _selectedItem = (ListBoxItem)(lbPerson.ItemContainerGenerator.ContainerFromItem(this.lbPerson.SelectedItem));
TextBlock myTxt = FindFirstVisualChild<TextBlock>(_selectedItem, "content2");
if (!dic.ContainsValue(myTxt.Text.ToString().Trim()))
{
dic.Add(myTxt.Text.Trim(),myTxt.Text.Trim());
}
foreach (KeyValuePair<string, string> kvp in dic)
{
MessageBox.Show(kvp.Value.ToString());
}
}
3、效果如圖
相關文章
- Silverlight RadTreeView 控制元件使用介紹View控制元件
- Silverlight TabControl和Accordion控制元件使用介紹控制元件
- Material Design - 常用控制元件介紹和使用Material Design控制元件
- 介紹ASP.NET控制元件IDASP.NET控制元件
- Silverlight 控制元件的ToolTip封裝工具使用控制元件封裝
- Telerik Silverlight 之Charting控制元件的使用控制元件
- SAP UI5 SmartTable 控制元件的使用介紹試讀版UI控制元件
- jQuery驗證控制元件jquery.validate.js的使用介紹jQuery控制元件JS
- SAP UI5 DynamicPage 控制元件介紹UI控制元件
- 【WPF】ListBox使用UserContrl作為子控制元件,引入UserContrl介面控制元件
- Github使用介紹Github
- Tmux使用介紹UX
- saltstack使用介紹
- Silverlight中的圖表控制元件visifire的使用控制元件
- Flutter 系列文章:Flutter Drawer 控制元件介紹Flutter控制元件
- Flutter 系列文章:Flutter Text 控制元件介紹Flutter控制元件
- Flutter 系列文章:Flutter Image 控制元件介紹Flutter控制元件
- Flutter 系列文章:Flutter Scaffold 控制元件介紹Flutter控制元件
- Flutter系列文章:Flutter RaisedButton控制元件介紹FlutterAI控制元件
- Flutter 系列文章:Flutter Row控制元件介紹Flutter控制元件
- Flutter 系列文章:Flutter Column 控制元件介紹Flutter控制元件
- SAP UI5 FlexibleColumnLayout 控制元件介紹UIFlex控制元件
- winform中更新UI控制元件的方案介紹ORMUI控制元件
- .net第三方控制元件介紹控制元件
- 開源的Spread表格控制元件介紹控制元件
- Redis介紹和使用Redis
- ChatGPT API使用介紹ChatGPTAPI
- ViewStub--使用介紹View
- 軟體介紹使用
- Github for Windows使用介紹GithubWindows
- 前端【Vuex】【使用介紹】前端Vue
- vagrant介紹及使用
- silverlight控制元件模型之選擇控制元件和列表控制元件控制元件模型
- WPF ListBox ListBox.ItemTemplate DataTemplate
- Flutter 系列文章:Flutter Container 控制元件介紹FlutterAI控制元件
- Flutter 系列文章:Flutter Icon 控制元件介紹Flutter控制元件
- Flutter 系列文章:Flutter Appbar 控制元件介紹FlutterAPP控制元件
- Flutter 系列文章:Flutter PlaceHolder 控制元件介紹Flutter控制元件