wpf ComboBox 控件利用DataSet数据绑定

12 篇文章 0 订阅

一般数据库分主表和辅助表,主表的某个字段ID指向辅助表的ID,页面显示的是辅助表的另一个有意义的字段,供用户选择,在主表中存放辅助表的ID,ID由程序内部使用,不向用户显示,根据情况辅助表也可能由用户修改,多数情况由程序员设定。根据这种情况,wpf 窗体中ComboBox控件的数据绑定分两个方面:一是ItemsSource的绑定,二是SelectedValue的绑定,当然还要指定DisplayMemberPath和SelectedValuePath。

首先是DataSet项目的添加,并把所有用到的表添加在上面。

其次是编辑WINDOW窗体,完成版面初步设计(控件的大致位置)后,需要进行“生成”操作,才能添加数据源中的控件。

第三,在“设计”版面从数据源中添加辅助表的某个字段控件,然后删除它们。这步操作的意义是:为Window.Resources添加CollectionViewSource视图和在Loaded="Loaded_data"的指定程序中进行辅助表的数据载入(Fill()),这些程序是自动生成的,删除了控件,但这些程序还是保留下来。

第四,主表中需要用到ComboBox控件的字段,先要设置使用“ComboBox控件”,然后拖放控件到窗体合适位置。这时在XAML界面生成如下代码:

                   <Grid x:Name="grid1" HorizontalAlignment="Left" Margin="0,17,0,-5" VerticalAlignment="Top">
                        <Grid.ColumnDefinitions>
                            <ColumnDefinition Width="Auto"/>
                            <ColumnDefinition Width="Auto"/>
                        </Grid.ColumnDefinitions>
                        <Grid.RowDefinitions>
                            <RowDefinition Height="Auto"/>
                        </Grid.RowDefinitions>
                        <Label Content="ID:" Grid.Column="0" HorizontalAlignment="Left" Margin="3" Grid.Row="0" VerticalAlignment="Center"/>
                        <ComboBox x:Name="IDComboBox" Grid.Column="1" DisplayMemberPath="ID" HorizontalAlignment="Left" Height="Auto" ItemsSource="{Binding}" Margin="3" Grid.Row="0" VerticalAlignment="Center" Width="120">
                            <ComboBox.ItemsPanel>
                                <ItemsPanelTemplate>
                                    <VirtualizingStackPanel/>
                                </ItemsPanelTemplate>
                            </ComboBox.ItemsPanel>
                        </ComboBox>
                    </Grid>

第五,修改ItemsSource绑定。选定这个“ComboBox控件”,在“属性”窗格中,设置ItemsSource的绑定,方法是点击ItemsSource属性右边的小方格(Binding),选择菜单中的“创建数据绑定”,然后的“绑定类型”选择最下面的“StaticResource”,然后在下面选择相应的CollectionViewSource视图,点击“确定”。这时,XAML代码相应的绑定改为:

ItemsSource="{Binding Mode=OneWay, Source={StaticResource XXXXViewSource}}"

第六,修改SelectedValue的绑定和DisplayMemberPath和SelectedValuePath:

<ComboBox x:Name="IDComboBox" DisplayMemberPath="AAAA"(注:显示字段名称) SelectedValuePath="ID" SelectedValue="{Binding ID}" ItemsSource="{Binding Mode=OneWay, Source={StaticResource XXXXViewSource}}">
绑定就这样OK了。
其他修改:上面的Label的Content改为有意义的名称;修改版面设计。



  • 0
    点赞
  • 1
    收藏
  • 打赏
    打赏
  • 0
    评论

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

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
©️2022 CSDN 皮肤主题:大白 设计师:CSDN官方博客 返回首页
评论

打赏作者

落单枫叶

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值