我正在尝试在WPF中实现以下场景。
我有一个数据网格,用于显示和添加数据。这是一个新应用程序,但存在旧数据。
过去的一个特定字段随机输入了数据。现在我们想将该字段的值限制为特定列表。因此,我正在使用DataGridComboBoxColumn。顺便说一下,我曾尝试过使用包含ComboBox的DataGridTemplateColumn来解决此问题。
在运行时,如果现有值不在列表中,我希望它仍然显示。但我似乎无法做到这一点。虽然我尝试了各种解决方案(全部失败),但以下解决方案最合乎逻辑。
下拉列表中的值列表在名为“months”的Windows资源中定义。
发生的情况是,如果一个值不在列表中,则显示为空白。我已经在运行时验证了IsSynchronizedWithCurrentItem元素确实为False。它只是没有做我期望的事情。
也许我走错了路。也许我需要结合使用文本框和组合框。也许我需要编写一些代码,而不仅仅是XAML。我花了几个小时尝试不同的方法,真的很感激有一个解决方案。我已经收到了一些建议,要使用这个类或那个控件,但没有解释如何使用它们。
非常感谢!
我有一个数据网格,用于显示和添加数据。这是一个新应用程序,但存在旧数据。
过去的一个特定字段随机输入了数据。现在我们想将该字段的值限制为特定列表。因此,我正在使用DataGridComboBoxColumn。顺便说一下,我曾尝试过使用包含ComboBox的DataGridTemplateColumn来解决此问题。
在运行时,如果现有值不在列表中,我希望它仍然显示。但我似乎无法做到这一点。虽然我尝试了各种解决方案(全部失败),但以下解决方案最合乎逻辑。
下拉列表中的值列表在名为“months”的Windows资源中定义。
<DataGridComboBoxColumn x:Name="frequencyCombo" MinWidth="100" Header="Frequency"
ItemsSource="{Binding Source={StaticResource months}}"
SelectedValueBinding="{Binding Path=Frequency,UpdateSourceTrigger=PropertyChanged}">
<DataGridComboBoxColumn.ElementStyle>
<Style TargetType="ComboBox">
<Setter Property="IsSynchronizedWithCurrentItem" Value="False" />
</Style>
</DataGridComboBoxColumn.ElementStyle>
</DataGridComboBoxColumn>
发生的情况是,如果一个值不在列表中,则显示为空白。我已经在运行时验证了IsSynchronizedWithCurrentItem元素确实为False。它只是没有做我期望的事情。
也许我走错了路。也许我需要结合使用文本框和组合框。也许我需要编写一些代码,而不仅仅是XAML。我花了几个小时尝试不同的方法,真的很感激有一个解决方案。我已经收到了一些建议,要使用这个类或那个控件,但没有解释如何使用它们。
非常感谢!