使用WPF我可以这样做:
<Combobox>
<ComboBox.Items>
<system:Boolean>True</system:Boolean>
<system:Boolean>False</system:Boolean>
</ComboBox.Items>
</Combobox>
但我在创建自定义控件方面遇到问题,该控件将delegate
项目添加到ComboBox
当我做这样的事情时:
<Combobox Items={Binding something}/>
我收到有关Items setter的编译错误(因为Items没有setter)。 我该怎么处理?我的意思是,从我的控件设置/重写项目到组合框?
答案 0 :(得分:2)
要将XAML中的列表定义为绑定,请使用ResourceDictionary。这可以在一个单独的文件中,但下面我将它包含在Window.Resources:
中<Window.Resources>
<ResourceDictionary>
<ResourceDictionary x:Key="boolArray">
<sys:Boolean x:Key="true">True</sys:Boolean>
<sys:Boolean x:Key="false">False</sys:Boolean>
</ResourceDictionary>
</ResourceDictionary>
</Window.Resources>
然后,您可以将XAML定义的数组应用于ComboBox的ItemsSource属性:
<ComboBox ItemsSource="{Binding Values, Source={StaticResource boolArray}}"/>
如果不清楚,sys命名空间的定义如下:
sys命名空间的定义如下:
xmlns:sys="clr-namespace:System;assembly=mscorlib"
答案 1 :(得分:0)
试试这个
public class Test
{
public string T { get; set; }
}
public MainWindow()
{
InitializeComponent();
this.DataContext = new List<Test>()
{
new Test(){T = "1"}
};
}
<ComboBox ItemsSource="{Binding T}"/>