WPF中的组合框无法添加具有数据库值的硬代码值

时间:2018-11-22 05:01:50

标签: c# wpf

XAML代码:

        <ComboBox  x:Name="CbLinge" HorizontalAlignment="right" Margin="0,150,0,0" VerticalAlignment="Top" Width="300" Height="25" RenderTransformOrigin="1.018,0.565 " 
              ItemsSource="{Binding GetLinge}" 
               DisplayMemberPath="Linge" 
               SelectedValuePath="Linge" 
               SelectedValue="{Binding FinishedManual.Ligne}"/>

C#代码:

  public void _fillLinge()
        {
            List<FinishedManualPrintingLinge> linge = _finishedProductService.GetFinishedManualLinge().ToList();
            foreach (var item in linge)
            {
                GetLinge.Add(item);
            }

        }

通过这段代码,我可以从数据库中获取值,并可以在Dropdown中显示。

问题: “木质”的下拉列表链接到订单表中可用的数据。但是,如果该行有任何顺序,则在下拉菜单“ Ligne”中不可见。因此,应使用(1,4,6,7,8,9,10)进行硬编码/填充。

现在,如果选择order:x,我不确定如何显示硬编码值。

1 个答案:

答案 0 :(得分:0)

选项1
显示一组硬编码的值:
这是我的操作方法:

<ComboBox ItemsSource="{Binding GetLinge, TargetNullValue='123456789', FallbackValue='123456789'}"/>  

在您的情况下,您可以使用TargetNullValue来填充值。 10可能有点棘手,因为字符串是IEnumerable,因此它将从数组中选择单个字符。但是我认为这将把您推向正确的方向。

选项2
另一个选择是修改public void _fillLinge()方法,并在找不到任何方法时返回默认值。

选项3
另一种选择是使用转换器,该转换器将提供默认项目,而不是修改public void _fillLinge()方法。
选择是您的。