WPF:如何处理多XAML UI?(后续行动)
这是我上一篇文章的延续: 建议的解决方案(再次感谢HighCore!!)非常重要,我将其添加到不断增长的代码库中。WPF:如何处理多XAML UI?(后续行动),wpf,xaml,datagrid,Wpf,Xaml,Datagrid,这是我上一篇文章的延续: 建议的解决方案(再次感谢HighCore!!)非常重要,我将其添加到不断增长的代码库中。用户控件似乎适合于已完全调试和准备就绪的控件(如果愿意,可以使用只读库),因为没有提供可视化编辑 我需要添加两个新的XAML文件(一个用于左选项卡中的DataGrid,另一个用于右选项卡中的DataGrid)。我的main(调用者)XAML将非常简单,非常简单,也许我可以免除任何编辑: <Tab> <Tab Selection 1>
用户控件
似乎适合于已完全调试和准备就绪的控件(如果愿意,可以使用只读库),因为没有提供可视化编辑
我需要添加两个新的XAML文件(一个用于左选项卡中的DataGrid,另一个用于右选项卡中的DataGrid)。我的main(调用者)XAML将非常简单,非常简单,也许我可以免除任何编辑:
<Tab>
<Tab Selection 1>
<DataGrid 1 in some other XAML file>
</Tab Selection 1>
<Tab Selection 2>
<DataGrid 2 in some other XAML file>
</Tab Selection 2>
<Tab>
但是,我确实打算对从属(称为)XAML文件执行大量编辑,我需要图形设计器
TIA你似乎从一个非常非常不恰当的角度来看待这一切 首先,如果您正在使用WPF,您真的需要忘记您可能从其他技术中学到的一切,并理解和接受它们 在WPF中,
UserControl
是一个可重用的、封装的、XAML定义的UI“部分”(您可以将其视为“小部件”)
UserControl由任意数量的UI元素组成:
- 布局元素,如
,网格
,文件面板
,堆栈面板
等包装面板
- 交互式用户界面元素,如
,文本框
,组合框
,等等复选框
- 其他
sUserControl
UserControl
s或Window
s的形式具体化
*在用WPF编写一行代码之前,您应该阅读并了解这些内容
不过,我确实打算对下属进行大量编辑 (称为)XAML文件,我需要图形设计器 如果需要修改某个
UserControl
的布局,则必须修改包含它的XAML。您可以通过在VisualStudioWPF设计器中打开MyUserControl.xaml
文件来选择这样做,但是这是出于我不想讨论(*)的原因
建议使用Visual Studio XAML编辑器窗口手动编辑XAML文件:
*链接中讨论了使用VisualStudio设计器创建WPF UI的优缺点
请注意,正如在“WPF心态”一文中所讨论的,创建WPF应用程序的思维过程与您在其他技术中所做的是相反的,在其他技术中,您首先定义UI,然后尝试根据UI调整逻辑和代码 在WPF中,通常首选一种方法,即定义数据模型,然后定义将公开UI中预期的数据和功能的
ViewModel
s,最后为UI创建XAML文件
这些XAML文件通常充满了数据,而不是在模型和UI之间手动传递数据的过程方法
底线: 要回答您的首要问题:是的,您在VisualStudio的WPF应用程序项目中定义了一些UserControl,通过编辑UserControl自己的XAML(与属于稍后将包含此UserControl的窗口的XAML相反)在UserControl级别定义UI,然后为该UserControl定义适当的ViewModel(这可以而且应该在编写任何XAML之前完成),然后在整个应用程序中重用该UserControl及其ViewModel ViewModel可能适用于许多不同的视图(UserControl或Window),但视图通常需要特定的ViewModel并与之配合使用 您的解决方案资源管理器应与此类似:
其中,
MainViewModel
是主窗口的ViewModel,MyViewModel
是MyUserControl
视图的ViewModel。我不明白这一点。为什么你说UserControls上没有可视化编辑?那是错误的。visual Studio支持在可视化设计器中编辑用户控件。但是请注意,“为什么你说用户控件上没有可视化编辑?”我(又一次)感到困惑。我指的是CustomControl。有一段时间我认为它们是一样的。