wpf ListBox获取选中内容 ComboBox

最近项目要用wpf做,没接触过.net的c++程序员,只好开始学习wpf了。

首先,确定你的listbox的item是什么类型:
1)文本类型
    一般是通过如下简单代码添加的item:
    listBox.Items.Add("text"); // item直接是文本
那么,获取选择文本可以如下:
    string selectedText = (sender as ListBox).SelectedItem.ToString();

2)用属性里面的集合类型(通过属性面板添加的属性)
    用msdn上的方式即可得到选择文本:
msdn代码如下:
void PrintText(object sender, SelectionChangedEventArgs args)
{
    ListBoxItem lbi = ((sender as ListBox).SelectedItem as ListBoxItem);
    tb.Text = "   You selected " + lbi.Content.ToString() + ".";
}

虽然msdn上说,如果是单选模式,用SelectedItem;多选用SelectedItems。但是我还是喜欢下面的,单选多选通用。
foreach (ListBoxItem lbi in listBox.SelectedItems)
{
    if (lbi != null)
    {
        string str = lbi.Content.ToString();
    }
}

    你可以看到,用属性面板里面的“集合”添加的item,是ListBoxItem 类型,(sender as ListBox).SelectedItem 也就是这个类型。你要取它的Content属性值,这个才是显示的值。所以用代码:((sender as ListBox).SelectedItem as ListBoxItem).Content.ToString(); 得到显示的文本内容。

 

3)绑定的表datatable

    因为你绑定的数据是表,所以你的选择项是DataRow类型,要如下操作即可:
    DataRowView dr = ListBox.SelectedItem as DataRowView;
    string selectedText = dr["字段"].ToString();

4)如果你绑定数据是自定义的集合类型:

   

自定义数据类型
namespace XXX
{

    // 注意,需要绑定控件item并显示的成员,请用属性,不要用公有变量,否则,绑定数据时,将显示空白(我在.net3.5下是这样)
    public class XXXInfo
    {
        public XXXInfo()
        {
            appDatabase = new ObservableCollection<string>();
        }

        public string name
        {
            get;
            set;
        }
        public string path
        {
            get;
            set;
        }
    }

    public class XXXInfos
    {
        public XXXInfos()
        {
            XXXInfoList = new ObservableCollection<XXXInfos>();
        }

        public ObservableCollection<XXXInfos> XXXInfoList
        {
            get;
            set;
        }
    }
}


//    xaml文件

<ListBox Grid.Row="2" Margin="10,10,10,10" Name="listBoxXXX" MouseDoubleClick="listBoxXXX_MouseDoubleClick" ItemsSource="{Binding Path=XXXInfoList }" >
                                        <ListBox.ItemTemplate>
                                            <DataTemplate>
                                                <TextBlock Text="{Binding Path=name}" />
                                            </DataTemplate>
                                        </ListBox.ItemTemplate>
</ListBox>

//

指定DataContext :这里简单用代码了。有时可以共享父控件的

listBoxXXX.DataContext = XXXInfos;

那么你的SelectItem就是:
XXXInfo selected = (sender as ListBox).SelectedItem  as XXXInfo ;
然后,取你自己想要的东西吧

5)其他,举一反三即可

 

ComboBox,及其他很多都很类似,自己领悟吧。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: WPF ComboBox 是一种在 Windows Presentation Foundation 上用于选择单一项或从下拉列表中选择多个选项的控件。在应用程序中使用 WPF ComboBox,可以用简单易用的方式来增强用户体验。 通过在 WPF ComboBox 上应用样式和模板,可以实现一个美观的控件。可使用以下方法进行美化: 1. 更改 ComboBox 的背景色、前景色和边框颜色; 2. 自定义下拉箭头的样式; 3. 修改下拉列表中的项的样式; 4. 使用动画和过渡效果增强用户交互; 5. 添加水印或图标。 为了实现这些样式和模板,可以使用 Visual Studio 中的设计器或手动编写 XAML 代码。还可以使用第三方库和控件来快速实现美化效果。 总之,通过 WPF ComboBox 的样式和模板,可以快速实现美化控件,优化用户体验,使应用程序更加吸引人。 ### 回答2: WPF ComboBox是一种常见的界面控件,用于在下拉列表中显示数据项和让用户选择其中一个。默认情况下,ComboBox的外观可能不够美观,具有一些基本的样式和颜色。这时候,我们可以使用WPF的样式和模板功能,对ComboBox进行一些美化,以使其更加吸引人。 要美化ComboBox,首先需要创建一个自定义的样式。可以在XAML中定义样式,也可以在Blend等可视化编辑器中创建样式。 在本例中,我们可以定义ComboBox的外观,包括背景颜色、边框样式、文本颜色等。 我们还可以设置下拉框中的列表项,使其更具吸引力,例如设置字体、背景色、鼠标悬停等。 要使用定义好的样式,需要将其应用于ComboBox。可以在XAML中设置ComboBox的Style属性,以便将自定义样式应用到ComboBox上。 我们还可以设置具体的数据源和数据绑定方式,以便向ComboBox中添加数据项。 总之,WPF ComboBox可以轻松地进行美化,以吸引用户的注意力,并提高整个应用程序的视觉效果。 通过使用WPF内置的样式和模板功能,我们可以设计出独特的ComboBox样式,以符合应用程序的主题和风格。 ### 回答3: WPF ComboBox是一种常见的UI控件,可以将其用于显示和选择数据。默认情况下,ComboBox的外观比较简单,没有太多的样式和美化效果。但是,通过修改其模板和样式,可以将ComboBox的外观变得更加美观和个性化。以下是几种常见的美化方法: 1. 修改ComboBox的边框颜色和样式。可以使用Border控件来定义ComboBox的边框样式,例如设置边框颜色、圆角大小、阴影效果等。 2. 更改下拉列表的背景和字体颜色。ComboBox的下拉列表可以使用ListBox控件来实现,因此可以通过ListBox的样式和模板,来对下拉列表进行美化。 3. 自定义ComboBox的选项项模板。默认情况下,ComboBox的选项是一个简单的TextBlock控件,但是可以通过更改ItemTemplate属性,将选项项的UI样式与其他控件进行匹配,例如设置图标、复选框、按钮等。 4. 添加动画效果。使用WPF的动画效果可以为ComboBox添加一些直观的视觉效果,例如当ComboBox打开或关闭时,可以设置淡入淡出、滑动、旋转等动画效果,来增加UI的交互性和吸引力。 总之,美化WPF ComboBox需要熟练掌握WPF的样式、模板和动画技术,同时要根据具体的需求和设计风格,选择合适的美化方法。通过美化WPF ComboBox,不仅可以增加UI的美观度和交互性,还可以提升用户体验和品牌形象。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值