C# 我怎么可能有一个在第一个位置有空项的十进制组合框?
我有一个组合框,我想绑定到十进制?值,因此我有以下代码: 在我的视图模型的构造函数中:C# 我怎么可能有一个在第一个位置有空项的十进制组合框?,c#,wpf,combobox,C#,Wpf,Combobox,我有一个组合框,我想绑定到十进制?值,因此我有以下代码: 在我的视图模型的构造函数中: Points.Add(null); decimal myPoint = 0; while (myPoint <= 10) { Points.Add(myPoint); myPoint = myPoint + 0.5m; } Points.Add(空); 小数点=0; (myPoint对于第一个问题,设置ItemTemplate属性: <ComboBox ...
Points.Add(null);
decimal myPoint = 0;
while (myPoint <= 10)
{
Points.Add(myPoint);
myPoint = myPoint + 0.5m;
}
Points.Add(空);
小数点=0;
(myPoint对于第一个问题,设置ItemTemplate属性:
<ComboBox ...
ItemsSource="{Binding Points}"
SelectedItem="{Binding PointsSelectedItem}">
<ComboBox.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding}"/>
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
Clemens完美地回答了第一个问题。因此我将集中讨论第二个问题。由于根据选择器的源代码,null
不是一个可选项,因此您不能选择值为null
的项。但您可以简单地创建一个包装类,该类拥有一个decimal?
属性,如下面所示把这个作废
public class MyPoint
{
public decimal? Point { get; set; }
public MyPoint(decimal? value)
{
Point = value;
}
}
使用MyPoint
而不是decimal?
,并将xaml更改为
<ComboBox ...
ItemsSource="{Binding Points}"
SelectedItem="{Binding PointsSelectedItem}">
<ComboBox.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding Point}"/>
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
那么你应该得到你想要做的
public class MyPoint
{
public decimal? Point { get; set; }
public MyPoint(decimal? value)
{
Point = value;
}
}
<ComboBox ...
ItemsSource="{Binding Points}"
SelectedItem="{Binding PointsSelectedItem}">
<ComboBox.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding Point}"/>
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>