use*_*331 1 c# wpf xaml combobox
我在XMAL文件中多次出现以下XAML片段.是否可以将ComboBox和ComboBoxItem组合成单个静态或动态资源,以节省空间并简化维护问题?
<Button>
<Canvas HorizontalAlignment="Left" VerticalAlignment="Top">
<ComboBox Width="34" FontSize="13" Margin="0" Padding="2,0,0,0">
<ComboBoxItem Content="01"></ComboBoxItem>
<ComboBoxItem Content="02"></ComboBoxItem>
<ComboBoxItem Content="03"></ComboBoxItem>
<ComboBoxItem Content="04"></ComboBoxItem>
<ComboBoxItem Content="05"></ComboBoxItem>
<ComboBoxItem Content="06"></ComboBoxItem>
<ComboBoxItem Content="08"></ComboBoxItem>
....... ALL THE WAY TO 100 Items......
<ComboBoxItem Content="100"></ComboBoxItem>
</ComboBox>
</Canvas>
</Button>
Run Code Online (Sandbox Code Playgroud)
无需声明如此多的comboboxItem实例.只需声明资源以向您的comboBox提供ItemsSource(您可以使用ObjectDataProvider)
在UserControl,Window或App资源中声明此资源(无论您在何处):
<ObjectDataProvider x:Key="EnumerableRange"
xmlns:sys="clr-namespace:System;assembly=mscorlib"
xmlns:linq="clr-namespace:System.Linq;assembly=System.Core"
ObjectType="{x:Type linq:Enumerable}" MethodName="Range">
<ObjectDataProvider.MethodParameters>
<sys:Int32>1</sys:Int32>
<sys:Int32>100</sys:Int32>
</ObjectDataProvider.MethodParameters>
</ObjectDataProvider>
Run Code Online (Sandbox Code Playgroud)
您可以通过设置ItemsSource将其用于多个组合框:
<ComboBox ItemsSource="{Binding Source={StaticResource EnumerableRange}}"/>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
555 次 |
| 最近记录: |