今天重新问下Silverlight绑定ComBoBox的问题

lvlili 2018-02-07 04:21:03
数据库里面有这样一个表UserLIst

在silverlight里面通过数据源

拖拽DataGrid到界面上,然后在拖拽详细信息也到界面上,这样运行时选择DataGrid的内容相应的详细信息就会显示当前行的信息大概就是这个样子的

但是Sort绑定的那个combobox下拉列表里只用表中有的项目,比如现在就只显示前台,后台,管理。可是我现在需要多一个选项比如“系统管理”怎么能实现呢?
也就是说我希望combobox和DataGrid联动,同时数据源使用的是另外的表或者其他列表,平时我都是通过代码文件ComBobox.Itemsourc=xx数据源 来绑定列表项的,但是现在他变成了DisplayMemberPath="Sort" ItemsSource="{Binding}" ,一旦修改就和DataGrid的联动效果失去作用了。
另附代码:
这个是DataGrid和数据源部分代码
<riaControls:DomainDataSource AutoLoad="True" d:DesignData="{d:DesignInstance my:UserList, CreateList=true}" Height="0" LoadedData="userListDomainDataSource_LoadedData" Name="userListDomainDataSource" QueryName="GetUserListQuery" Width="0" Margin="0,0,290,281">
<riaControls:DomainDataSource.DomainContext>
<my:DomainServiceUser />
</riaControls:DomainDataSource.DomainContext>
</riaControls:DomainDataSource>
<sdk:DataGrid AutoGenerateColumns="False" HorizontalAlignment="Stretch" ItemsSource="{Binding ElementName=userListDomainDataSource, Path=Data}" Margin="10" Name="userListDataGrid" RowDetailsVisibilityMode="VisibleWhenSelected" VerticalAlignment="Stretch" IsReadOnly="True">
<sdk:DataGrid.Columns>
<sdk:DataGridTextColumn x:Name="iDColumn" Binding="{Binding Path=ID, Mode=OneWay}" Header="用户编号" IsReadOnly="True" Width="10*" />

<sdk:DataGridTextColumn x:Name="nameColumn" Binding="{Binding Path=Name}" Header="姓名" Width="20*" />
<sdk:DataGridTextColumn x:Name="sortColumn" Binding="{Binding Path=Sort}" Header="类别" Width="8*" />
<sdk:DataGridTextColumn x:Name="maskColumn" Binding="{Binding Path=Mask}" Header="状态" Width="6*" />
</sdk:DataGrid.Columns>
</sdk:DataGrid>
<Grid DataContext="{Binding ElementName=userListDomainDataSource, Path=Data}" Grid.Column="1" HorizontalAlignment="Stretch" Margin="10" Name="grid1" VerticalAlignment="Stretch">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="10*" />
<ColumnDefinition Width="4*" />
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>

这个是明细所在GRid的代码
<sdk:Label Content="用户编号:" Grid.Column="0" Grid.Row="0" HorizontalAlignment="Left" Margin="3" VerticalAlignment="Center" />
<TextBox Grid.Column="1" Grid.Row="0" Height="27" HorizontalAlignment="Stretch" Margin="10" Name="iDTextBox" Text="{Binding Path=ID, Mode=OneWay}" VerticalAlignment="Center" />
<sdk:Label Content="Mask:" Grid.Column="0" Grid.Row="5" HorizontalAlignment="Left" Margin="3" VerticalAlignment="Center" />
<ComboBox DisplayMemberPath="Mask" Grid.Column="1" Grid.Row="5" Height="27" HorizontalAlignment="Stretch" ItemsSource="{Binding}" Margin="10" Name="maskComboBox" VerticalAlignment="Center" >
<ComboBox.ItemsPanel>
<ItemsPanelTemplate>
<VirtualizingStackPanel />
</ItemsPanelTemplate>
</ComboBox.ItemsPanel>
</ComboBox>
<sdk:Label Content="用户姓名:" Grid.Column="0" Grid.Row="1" HorizontalAlignment="Left" Margin="3" VerticalAlignment="Center" />
<TextBox Grid.Column="1" Grid.Row="1" Height="27" HorizontalAlignment="Stretch" Margin="10" Name="nameTextBox" Text="{Binding Path=Name, Mode=TwoWay, NotifyOnValidationError=true, ValidatesOnExceptions=true, TargetNullValue=''}" VerticalAlignment="Center" />
<sdk:Label Content="登录密码:" Grid.Column="0" Grid.Row="2" HorizontalAlignment="Left" Margin="3" VerticalAlignment="Center" />
<TextBox Grid.Column="1" Grid.Row="2" Height="27" HorizontalAlignment="Stretch" Margin="10" Name="passWordTextBox" Text="{Binding Path=PassWord, Mode=TwoWay, NotifyOnValidationError=true, ValidatesOnExceptions=true, TargetNullValue=''}" VerticalAlignment="Center" />
<sdk:Label Content="Sort:" Grid.Column="0" Grid.Row="3" HorizontalAlignment="Left" Margin="3" VerticalAlignment="Center" />

<ComboBox DisplayMemberPath="Sort" ItemsSource="{Binding}" Grid.Column="1" Grid.Row="3" Height="27" HorizontalAlignment="Stretch" Margin="10" Name="sortComboBox" VerticalAlignment="Center" >
<ComboBox.ItemsPanel>
<ItemsPanelTemplate>
<VirtualizingStackPanel />
</ItemsPanelTemplate>
</ComboBox.ItemsPanel>


</ComboBox>
<ComboBox Grid.Column="1" Grid.Row="4" Height="23" HorizontalAlignment="Left" Margin="21,50,0,0" Name="comboBox1" VerticalAlignment="Top" Width="120">
<ComboBoxItem Content="1" />
<ComboBoxItem Content="2" />
</ComboBox>
</Grid>

求大神搭救
...全文
570 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
jiuzaizuotian2014 2018-10-04
  • 打赏
  • 举报
回复
现在还有用silverlight项目的啊,估计应该是维护老的内部使用的项目吧,现在adobe flash都快淘汰了,我电脑上三个浏览器,两个没安装过adobe flash,有些网站要显示flash的都打不开,silverlight就更别提了
Jonly 2018-06-16
  • 打赏
  • 举报
回复
最好是用代码去填充邦定, 自由度更高, 你即使是你现在实现了这个功能, 在后面生产时或其它应用中也会有很多问题!

8,731

社区成员

发帖
与我相关
我的任务
社区描述
WPF/Silverlight相关讨论
社区管理员
  • WPF/Silverlight社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧