【发布时间】:2009-09-22 16:32:21
【问题描述】:
编辑:
我一直在寻找的答案是......
<dataFormToolkit:DataField Label="Business Type:">
<ComboBox x:Name="BusinessType" SelectedItem="{Binding BusinessType, Mode=TwoWay}" >
<ComboBox.Items>
<sys:String>Land</sys:String>
<sys:String>Maritime</sys:String>
</ComboBox.Items>
</ComboBox>
</dataFormToolkit:DataField>
这是article的链接
我有一个 c# silverlight 业务应用程序,它使用 ado.net 实体框架和域服务类来绑定到我的 sql server 数据库并将数据从/持久化到我的数据库中。我一直在使用 dataformtoolkit 命名空间来布局可以编辑/显示数据的文本框,使用 TwoWay 绑定模式以允许读/写功能。
在某些字段上,我想使用组合框而不是文本框,以便为我的应用程序添加更好的用户体验。我从网上阅读得到的印象是,这并不像它应该的那么容易。 我当前的文本框代码如下所示:
<dataFormToolkit:DataField>
<TextBox Text="{Binding BusinessType, Mode=TwoWay}" />
</dataFormToolkit:DataField>
我的类似尝试如下但不正确:
<ComboBox>
<ComboBox.Items>
<ComboBoxItem Content="Maritime" IsSelected="{Binding BusinessType, Mode=TwoWay}" />
<ComboBoxItem Content="Land" IsSelected="{Binding BusinessType, Mode=TwoWay}" />
</ComboBox.Items>
</ComboBox>
NB/我希望组合框由列表或枚举等(最好是列表)填充。组合框的内容应该与数据库无关,只是当用户点击提交时,组合框中的选择会被持久化回数据库。如果是这种情况,组合框可以从数据库中读取并显示已经做出的特定选择,这一点也很重要。
****编辑:
绑定到数据网格的数据表单的当前设置,将可编辑的业务类型字段作为文本框(我想将此文本框替换为具有两个可选项目的组合框)。
<!--DataForm Declaration-->
<dataFormToolkit:DataForm x:Name="dataForm1" Height="410" Width="331"
VerticalAlignment="Top"
Header="Job Details"
CurrentItem="{Binding SelectedItem, ElementName=dataGrid1}"
HorizontalAlignment="Left" >
<dataFormToolkit:DataForm.EditTemplate>
<DataTemplate>
<StackPanel>
<dataFormToolkit:DataField>
<TextBox Text="{Binding BusinessType, Mode=TwoWay}" />
</dataFormToolkit:DataField>
</StackPanel>
</DataTemplate>
</dataFormToolkit:DataForm.EditTemplate>
</dataFormToolkit:DataForm>
那么我该如何操作这段代码来使用组合框而不是文本框呢?
我们将不胜感激。
【问题讨论】:
标签: c# silverlight combobox