Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/304.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 组合框绑定和字符串格式_C#_.net_Wpf_Xaml_Wpf Controls - Fatal编程技术网

C# 组合框绑定和字符串格式

C# 组合框绑定和字符串格式,c#,.net,wpf,xaml,wpf-controls,C#,.net,Wpf,Xaml,Wpf Controls,我有一个WPF组合框 <ComboBox SelectedValue="{Binding ElementName=Ctrl, Path=Day, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged, StringFormat='00'}" ItemsSource="{Binding ElementName=Ctrl, Path=AvailableDays, Mode=OneWay, StringFormat='00'}" IsEditable=

我有一个WPF组合框

<ComboBox SelectedValue="{Binding ElementName=Ctrl, Path=Day, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged, StringFormat='00'}"
ItemsSource="{Binding ElementName=Ctrl, Path=AvailableDays, Mode=OneWay, StringFormat='00'}"
IsEditable="True" Grid.Column="0" />

这是与这些属性的数据绑定

public int? Day {
    get { return _day; }
    set {
        if (_day != value) {
            _day = value;
            OnPropertyChanged();
        }
    }
}

public IEnumerable<int> AvailableDays {
    get { return _availableDays ?? (_availableDays = Enumerable.Range(1, 31)); }
}
公共int?一天{ 获取{return\u day;} 设置{ 如果(_day!=值){ _天=价值; OnPropertyChanged(); } } } 公共IEnumerabledays{ 获取{return _availableDays???(_availableDays=Enumerable.Range(1,31));} }
装订工作。但我的问题是价值观的形成。我想要天
绑定。只有当目标属性类型为
string
时,StringFormat
才有效。这就是为什么它适用于
字符串TextBlock.Text
,但不适用于
对象组合框.SelectedValue
。通常,如果要格式化绑定的结果,可以创建一个自定义的
StringFormatConverter:IValueConverter
类,该类的实现非常简单,并在
binding.Converter
中使用


在您的情况下,应该改用
ComboBox.ItemStringFormat

您是否尝试过在
ComboBox
上设置
ItemStringFormat=“00”
?我在某个地方读到,只有在
ComboBox
上设置
IsEditable=“False”
时,它才有效。所以在你的情况下,它不应该起作用。不过还是试试看吧。看看这个:@SuperOli:正如你所说的。ItemStringFormat适用于所有下拉项。仅当
IsEditable=“False”
时,它才适用于所选项目。谢谢