【发布时间】:2011-10-13 19:51:44
【问题描述】:
我是 WPF 的新手 - 并且痛苦地意识到它。我没有成功地寻找到这个特定问题的答案,现在我正在向知识渊博的同行寻求建议!
场景
我正在使用的应用程序允许用户将新记录输入数据库,或修改现有记录。
我有一个包含绑定 ComboBox 的表单。它从数据库中填充,由公开 DTO 的 WPF 服务访问。
从 UI 的角度来看,表单有两种模式: 1.输入新记录 2. 修改现有记录
有问题的 ComboBox 在这两种情况下都会出现,但要求是当表单处于“修改”模式时可见的选项更少。
我要做的是在表单处于“修改”模式时循环遍历 ComboBox 项目并删除/隐藏不应出现的选项。
XAML
<ComboBox x:Name="RecordType" Grid.Column="1" Grid.Row="1" Width="150" HorizontalAlignment="Left" SelectedValue="{Binding Path=RecordTypeID,TargetNullValue=0}"/>
背后的代码 - 以及到目前为止我的(微弱的!)尝试
foreach (ComboBoxItem item in this.RecordType.Items)
{
if (IsApplicable(item.Content.ToString()) == false)
{
item.Visibility = Visibility.Hidden;
}
}
(注意:IsApplicable() 是一个简单的方法,它将接收到的字符串与表单处于“修改”模式时允许出现的选项列表进行比较。)
问题
我相信你们中的许多人已经知道...不能将 DTO 类型的对象转换为 System.Windows.Controls.ComboBoxItem 类型
问题
我可以通过这种方式或类似方式获取字符串值吗?如果可以,请问怎么做?
【问题讨论】:
-
如何填充组合框?