【问题标题】:Ways to create reusable wpf elements?创建可重用 wpf 元素的方法?
【发布时间】:2016-05-15 01:16:29
【问题描述】:

我绝对是 wpf 的新手,我想知道,如果遇到以下情况(例如),我该怎么办:
我有一个 xaml 标记文件,在该文件的某处我声明了两个 <Border> 元素,每个元素都有嵌套元素:

<Border Grid.Row="1">
    <StackPanel>
        <TextBox Text="1st el"/>
        <ComboBox ItemsSource="{Binding }">
    </StackPanel>
</Border>

<Border Grid.Row="2">
    <StackPanel>
        <TextBox Text="2nd el"/>
        <ComboBox ItemsSource="{Binding SomeVMProp}">
    </StackPanel>
</Border>

一切正常,但这段代码似乎违反了 DRY 原则。所以这是我的问题:

  • 重构此代码的正确方法是什么(我的意思是创建可重用元素(StackPanel + Border))?
  • 存放可重用元素代码的正确位置是什么?
  • 将我的可重用元素包含到具体视图的 xaml 中的正确方法是什么?
  • 还有其他建议吗?

PS 对不起,如果我的问题不正确,但我希望有人能给我一个关于处理此类情况的想法。

【问题讨论】:

    标签: c# wpf xaml


    【解决方案1】:

    右键单击您的项目,单击新建 -> 用户控件。将其命名为您想要的任何名称。将您的 XAML 粘贴到您想要的位置。

    通过引用 &lt;local:MyUserControl/&gt; 在您的 MainWindow.xaml(或任何您的主窗口)中使用它。

    【讨论】:

      【解决方案2】:

      您应该针对这种情况开发自定义控件。 您可以拥有一个自定义控件库。看看this msdn link

      【讨论】:

      • 哦,你在开玩笑吗?你是认真的吗?我真的应该做很多事情来实现它吗?
      • 我希望只使用 XAML 来完成所有这些工作。
      猜你喜欢
      • 2011-08-27
      • 1970-01-01
      • 2010-11-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2010-10-06
      相关资源
      最近更新 更多