标签: application-design

如何将信息从一个 WPF UserControl 传递到另一个 WPF UserControl?

我有一个 WPF 应用程序。

在左侧有一个充满按钮的堆栈面板。

右侧有一个空的停靠面板。

当用户单击按钮时,它会将相应的 UserControl (View)加载到停靠面板中:

private void btnGeneralClick(object sender, System.Windows.RoutedEventArgs e)
{
    PanelMainContent.Children.Clear();
    Button button = (Button)e.OriginalSource;
    Type type = this.GetType();
    Assembly assembly = type.Assembly;

    IBaseView userControl = UserControls[button.Tag.ToString()] as IBaseView;
    userControl.SetDataContext();

    PanelMainContent.Children.Add(userControl as UserControl);
}
Run Code Online (Sandbox Code Playgroud)

这种模式很有效,因为每个 UserControl 都是一个 View,它有一个 ViewModel 类,该类向它提供从模型中获取的信息,因此用户可以在页面之间单击,并且每个页面都可以执行独立的功能,例如编辑所有客户,保存到数据库等

问题:

但是,现在,在其中一个页面上,我想要一个包含客户列表的 ListBox,并且每个客户都有一个“编辑”按钮,当单击该编辑按钮时,我想用 EditSingleCustomer 填充 DockPanel UserControl 并将其传递给它需要编辑的 Customer。

我可以加载 EditCustomer 用户控件,但是如何将它传递给客户以编辑并设置其 DataContext 以编辑该客户

  • 我无法在构造函数中传递它,因为所有 UserControl 都已创建并存在于 MainWindow.xaml.cs 的字典中。
  • 所以我在每个 UserControl 上创建了一个 PrepareUserControl 方法并将 Customer 传递给它,并且可以使用 x:Name="..." …

c# wpf user-controls application-design

5
推荐指数
1
解决办法
8787
查看次数

草稿记录应保存在单独的表格中吗?

我们正在建立一个简单的基于网络的系统,有人添加一个记录,例如CMS页面,在网站上显示之前得到负责人的批准.

如果作者随后决定稍后编辑该页面,我们希望基于实时副本创建草稿,在批准后它将替换旧的实时页面.

我们考虑过进行完整的版本控制,但相信我们可以通过以下方式保持这种简单:只需一个草稿,2.只是一个现场,或者3.一个草稿和一个现场.

跨多个"事物"而不仅仅是页面需要此功能.

最后一个问题:你认为将这两个记录存储在同一个表中会更好,还是镜像表会更好?

我想这可能取决于但我不喜欢有两个具有相同结构的表的理想.稍微慢一点的操作(因为我们必须在显示数据时一直查询草稿)是值得的吗?

database-design web-applications ruby-on-rails application-design

4
推荐指数
2
解决办法
935
查看次数

通过数据库或平面文件本地化?

对于多语言 PHP 应用程序,假设标签/短语将被翻译成多种语言。这些标签可以放置在特定语言的文件中(例如,每种语言一个文件)或可以加载到数据库中,以便应用程序可以在需要时访问它们。

问题是,从性能的角度来看,更好的方法是什么?

对我来说,如果标签在数据库中,则加载的数据更少(我只能请求单个页面所需的标签)并且可以更轻松地构建用于翻译的管理工具。但是,似乎有许多应用程序和框架为此目的使用平面文件(例如 phpMyAdmin、CakePHP 等)。

php database localization internationalization application-design

4
推荐指数
1
解决办法
2870
查看次数

应用设计5年

我的问题不是技术问题.这更像是一种哲学而非个人偏好.我正在设计和开发一个应用程序(web +桌面),这只是我想到的,并且想知道你们(程序员和设计师)是否曾经遇到过这个问题:

一些设计人员相信制作将会运行3 - 5年的应用程序,并且任何变更都将反映在他们身上,而无需采用系统核心变更.作为一个程序员,我知道一个事实,这是从来没有的情况.确实发生了小的化妆品变化,但通常它们会在一两年后消失,随着时间的推移,将会发生变化,需要进行核心更改,最终您将进行新的应用.

鉴于技术的快节奏变化,设计一个5年的应用程序是相当荒谬的,恕我直言.嗯,我的意思是不设计,但这个应用程序将运行5年的想法,并认为我们不需要创建一个新的,我认为生活在一个愚人的天堂.我是说真的,各位程序员,有一个正在运行的流程通常被重新制作/重新结构化/重新组织/重新编码几年下来行反正最关键任务的或基本的小应用程序.

所以我的问题是为什么要保持这种完美的应用程序运行十年的态度.真的很愚蠢,因为你知道技术每年都会发生变化; 新框架,新方法,新技术将出现,您的客户将需要它们.所以,如果你原谅我使用这个短语,WTF就是重点?

我一直告诉我的设计师,应用程序将在几年反正被重新设计,有在试图使其从@ss拍摄灯光是没有意义的,因为它只是不会,永远.没有完美的应用程序.

我希望你们得到我的漂移.你们有同样的感受吗?BTW我从事软件编程业务已有7年了.如果你真的考虑过这个问题,你真的认为Facebook将会在5年内保持不变,因为设计每年都会改变,以保持"时髦",但核心每隔几年就会发生变化.我很清楚这一点.我是偏执还是什么?请告诉我其他程序员和我在同一条路上.任何人?

c# asp.net model application-design

3
推荐指数
2
解决办法
295
查看次数

Android设计/架构:从相同的代码库创建不同的应用程序

我想从相同的代码库创建两个应用程序.它们的颜色不同,有些数据来自后端.情况就像,让我说我想创建应用程序App1和App2.两者都有类似的流程.我可以吗,

  1. 选择标题颜色蓝色(如果是App1)和红色是否为其他?
  2. 在代码中,如果(运行App == App1){执行此部分}否则{其他部分}?
  3. 如果App是App1,选择layout1.xml进行活动,那么选择layout2.xml?

我不知道该如何解决这个问题.任何帮助都会很棒.

谢谢.

architecture android application-design mobile-application

3
推荐指数
1
解决办法
1101
查看次数

对于非程序员用户来说,最好的UX是什么?逗号分隔的标签或空格分隔的标签?

我正在为教师(非程序员)创建一个社交网站,教师可以在其上添加活动,链接,练习,提示,课程计划,书籍等.

我希望它们中的每一项都能够像在StackOverflow中一样添加标签.

但是,因为他们是非编程用户,我认为空格分隔的非空间标签和camelCase标签会导致太多的混淆,例如:

grammar teachingtips universityOfMinnesota phrasalverbs
Run Code Online (Sandbox Code Playgroud)

确实在这个类似的stackoverflow问题上,大多数答案建议使用这样的逗号:

grammar, teaching tips, university of minnesota, phrasal verbs
Run Code Online (Sandbox Code Playgroud)

但后来我刚刚注册了一个Delicious.com帐户(我不认为有一个非常以程序员为中心的观众)并看到他们也使用空格:

separate tags with spaces: e.g. hotels bargains newyork (not new york)
Run Code Online (Sandbox Code Playgroud)

标签当前用户体验趋势而言,您在此方面的经验是什么?现在,普通的互联网用户是否被认为是以空格分隔的标签?我不得不承认,我从未在我使用的任何主要网站上看过以逗号分隔的标签.你有没有找到一个很好的方法来组合它们,所以它甚至不重要,例如:

grammar book reviews teaching tips
Run Code Online (Sandbox Code Playgroud)

例如,有一个快速算法,用于检查当前标签的数量:

grammar
grammar book
grammar book reviews
book 
book reviews
book reviews teaching
...
Run Code Online (Sandbox Code Playgroud)

user-experience application-design

2
推荐指数
1
解决办法
402
查看次数

如何构建应用程序目录层次结构中的接口

将它们全部放在一个单独的文件夹结构中,还是与实现它们的类一起放入?

.net c# interface application-design

2
推荐指数
1
解决办法
2684
查看次数

WPF 设计师:你的设计过程是怎样的?

我将完全重新提出这个问题。所以这是一个大的编辑

我一直在寻找 WPF 专业人士关于他们设计过程的一些反馈。例如,当我设计一个网站时,在我编写任何 HTML、CSS、JavaScript 之前,我会在 Photoshop 中设计界面,这样我就可以向客户展示他们网站的外观证明。在我编写任何代码之前,我会选择样式、配色方案,大多数(如果不是全部)第三方图形(库存摄影)一旦客户批准设计,我就开始构建它。

我想知道设计 WPF 桌面应用程序的等价物是什么。在设计界面时,选择配色方案,选择按钮样式,选择可能进入其中的任何图像,通常先创建模型吗?您是否只是在构建图形的同时动态创建所有图形。或者只是在网上找到一个主题/皮肤并在您的应用程序中使用它是否更常见?

再说一次,我知道没有正确的答案,我只是想听听你们都在做什么。

谢谢

ps - 我有 Expression Blend 4,我擅长手写 XAML(不仅仅是在 Blend 中使用设计视图)。我的问题不是关于我应该使用什么工具来构建 WPF 应用程序,而是关于设计过程。

.net wpf application-design expression-blend

2
推荐指数
1
解决办法
2230
查看次数

如何创建可插件的应用程序?

我创建了一些程序,但大多数都是基于“意大利面条”方法。所有功能都在一起,如果我想添加新功能,我必须将其添加到核心文件中。

注意:我不是在问分离设计和逻辑。

语言是PHP。

我要问的是内容管理系统中通过允许其他用户扩展应用程序(插件、组件或扩展)来使用哪些方法(以及如何实现它们)

这只是设计模式的问题吗?或者文件结构?或者是什么?

php software-design application-design

2
推荐指数
1
解决办法
1818
查看次数

使用Application Service和Manager的目的是什么?

我不是一个经验丰富的程序员.我总是浏览源代码来学习一些东西.ASP.NET Boilerplate是我最喜欢的.昨天,我注意到友情应用服务(在服务/应用层)和友情管理器(在业务/域层).我不明白为什么有友谊经理.友谊服务还不够?

public interface IFriendshipAppService : IApplicationService
{
    Task<FriendDto> CreateFriendshipRequest(CreateFriendshipRequestInput input);

    Task<FriendDto> CreateFriendshipRequestByUserName(CreateFriendshipRequestByUserNameInput input);

    void BlockUser(BlockUserInput input);

    void UnblockUser(UnblockUserInput input);

    void AcceptFriendshipRequest(AcceptFriendshipRequestInput input);
}
Run Code Online (Sandbox Code Playgroud)
public interface IFriendshipManager : IDomainService
{
    void CreateFriendship(Friendship friendship);

    void UpdateFriendship(Friendship friendship);

    Friendship GetFriendshipOrNull(UserIdentifier user, UserIdentifier probableFriend);

    void BanFriend(UserIdentifier userIdentifier, UserIdentifier probableFriend);

    void AcceptFriendshipRequest(UserIdentifier userIdentifier, UserIdentifier probableFriend);
}
Run Code Online (Sandbox Code Playgroud)

asp.net domain-driven-design application-design dddd aspnetboilerplate

2
推荐指数
1
解决办法
137
查看次数