【发布时间】:2015-05-16 12:09:55
【问题描述】:
是否可以在 F# 中创建一个使用 WPF 并带有经典代码的应用程序?我知道它可以完美地与 MVVM 配合使用,并且没有代码,但我需要在 UserControl 上实现一个接口。用 F# 可以吗?
为了有点帮助,这里是我想从 C# 翻译成 F# 的代码
public class Test : UserControl, IContent {
public void InitializeComponents() {
// Do the initialization magic
}
public Test() {
}
public void OnFragmentNavigation(FragmentNavigationEventArgs e) {
this.DataContext = new { description = "Hallo Welt :)" };
}
public void OnNavigatedFrom(NavigationEventArgs e) {
}
public void OnNavigatedTo(NavigationEventArgs e){
}
public void OnNavigatingFrom(NavigatingCancelEventArgs e) {
}
}
这是标记
<UserControl xmlns="http://schemas.microsoft.com/netfx/2007/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
x:Class="Test">
<TextBlock Text="{Binding description}"></TextBlock>
</UserControl>
【问题讨论】:
-
试试这个.. github.com/fsprojects/FsXaml
-
您不会在 WPF 的 UserControls 中“实现接口”。你为什么要这么做?
-
@HighCore 在这里查看:github.com/firstfloorsoftware/mui/wiki/Handle-navigation-events
-
@Knerd 恕我直言,应用程序“导航”功能是应用程序本身的责任,而不是 UI。在 WPF 中,ViewModel 是“应用程序”,而不是视图,因此该代码不属于 UI,因此您不需要 UI 中的任何接口。
-
@HighCore,是的,我愿意。框架处理
UserControl上的导航事件。如果可以在 ViewModel 中执行,我已经打开了一个问题;)