我有几个具有相同项目的组合框。我想将项目放入app.xaml,以防止代码重复。我可以做这样的事情吗?
<Style x:Key="MyCombo" TargetType="{x:Type ComboBox}">
<Setter Property="Items">
<ComboboxItem Content="item one" />
<ComboboxItem Content="item two" />
</Setter>
</Style>
Run Code Online (Sandbox Code Playgroud)
您可以创建一个Style将ItemsSource属性设置为集合的:
<Style TargetType="ComboBox" x:Key="MyCombo" xmlns:c="clr-namespace:System.Collections;assembly=mscorlib">
<Setter Property="ItemsSource">
<Setter.Value>
<c:ArrayList>
<ComboBoxItem>item one</ComboBoxItem>
<ComboBoxItem>item two</ComboBoxItem>
</c:ArrayList>
</Setter.Value>
</Setter>
</Style>
Run Code Online (Sandbox Code Playgroud)
您还可以将ComboBox实例定义为资源:
<ComboBox x:Key="MyCombo" x:Shared="False">
<ComboBoxItem Content="item one" />
<ComboBoxItem Content="item two" />
</ComboBox>
Run Code Online (Sandbox Code Playgroud)
并像这样使用它:
<ContentControl Content="{StaticResource MyCombo}" />
Run Code Online (Sandbox Code Playgroud)
第三种选择是创建一个ComboBox添加 commonComboBoxItem的自定义控件:
public class MyCombo : ComboBox
{
public MyCombo()
{
Items.Add(new ComboBoxItem() { Content = "item one" });
Items.Add(new ComboBoxItem() { Content = "item two" });
}
}
Run Code Online (Sandbox Code Playgroud)
并创建这个实例:
<local:MyCombo />
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1473 次 |
| 最近记录: |