gpt4 book ai didi

.net - 需要更换第 3 方 WinForm 控件,壁橱 WPF 等效项是什么?

转载 作者:行者123 更新时间:2023-12-04 23:10:05 31 4
gpt4 key购买 nike

我厌倦了 Windows 窗体......我只是。我不想就此展开辩论,我只是对此感到厌烦。不幸的是,我们已经依赖于 DevExpress XtraEditors 中的 4 个控件。 I 和他们一起遇到了困难,我想继续前进。

我现在需要的是我正在使用的 4 个控件的壁橱更换。他们来了:
LookUpEdit - 这是一个 combobox在您键入时过滤下拉列表。
MemoExEdit - 这是一个 textbox当它有焦点时“弹出”一个更大的区域
CheckedComboBoxEdit - 这是 checkboxes 的下拉列表.
CheckedListBoxControl - 这是一个很好的专栏 listboxcheckboxes
这是一个具有大量数据输入的 LOB 应用程序。实际上,前两个很好,但不是必需的。后两个是必不可少的,因为我需要复制功能或更改用户与特定数据交互的方式。

我正在寻求帮助以在 中复制这些内容。 WPF 具有现有控件(codeplex 等)或直接 XAML 的环境.任何代码或方向将不胜感激,但主要是我希望避免任何商业 3rd 方 WPF,而是希望专注于自己构建它们(但我需要方向)或使用 Codeplex

最佳答案

WPF 的一大优点是自定义控件非常容易(尤其是与 WinForms 相比)。根据您给出的描述,所有这些控件都可以使用标准工具箱控件非常简单地创建;我认为您不需要购买任何第三方解决方案。从顶部开始:

  • LookUpEdit - 您可以使用 WPF 组合框
  • 免费获得此功能
  • MemoExEdit - 使用标准 TextBox控制和Popup原始的,你可以用相对较少的努力复制这个效果
  • CheckedComboBoxEdit - WPF ComboBoxItemsControl ,这意味着它支持自定义项目模板。您可以使用几行 XAML 轻松完成此操作。
  • CheckedListBoxControl - ListBox 也是如此, 使用 ItemTemplate属性(property),您可以立即进行。

  • 下面是一个快速示例,说明如何实现类似于 CheckedComboBoxEdit 的控件。 .首先,代码隐藏:
    public partial class CustomControls : Window
    {
    public ObservableCollection<CustomItem> Items
    {
    get;
    set;
    }

    public CustomControls()
    {
    Items = new ObservableCollection<CustomItem>();
    Items.Add(new CustomItem() { Name = "Item 1", Checked = true });
    Items.Add(new CustomItem() { Name = "Item 2", Checked = false });
    Items.Add(new CustomItem() { Name = "Item 3", Checked = false });

    InitializeComponent();
    }
    }

    public class CustomItem
    {
    public bool Checked
    {
    get;
    set;
    }

    public string Name
    {
    get;
    set;
    }
    }

    现在, Window 的 XAML :
    <Window x:Class="TestWpfApplication.CustomControls"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="CustomControls" Height="200" Width="200"
    DataContext="{Binding RelativeSource={RelativeSource Self}}">
    <ComboBox ItemsSource="{Binding Items}"
    VerticalAlignment="Center"
    HorizontalAlignment="Center"
    Width="100">
    <ComboBox.ItemTemplate>
    <DataTemplate>
    <CheckBox Content="{Binding Name}"
    IsChecked="{Binding Checked}"/>
    </DataTemplate>
    </ComboBox.ItemTemplate>
    </ComboBox>

    什么 ItemTemplate属性说的是,“对于这个控件中的每个项目,让我成为其中之一。”所以对于 Items 中的每个项目 ComboBox 的集合, 一个 CheckBox生成,其 Content绑定(bind)到 Name您的项目类别的属性及其 IsChecked绑定(bind)到 Checked 的属性属性(property)。

    这是最终结果:

    alt text http://img155.imageshack.us/img155/9379/customcontrols.png

    关于.net - 需要更换第 3 方 WinForm 控件,壁橱 WPF 等效项是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2724137/

    31 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com