【发布时间】:2012-04-01 21:52:36
【问题描述】:
我不明白如何在 WPF 中使用命令。例如,我有这样的 xaml 文件:
MainWindow.xaml:
<Window
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="assembly=FSharpOnly"
xmlns:Commands="clr-namespace:View.Commands"
Title="Sample F# WPF Application Written Only in F#"
Height="700"
Width="900">
<DockPanel LastChildFill="True">
<TextBlock DockPanel.Dock="Bottom" Background="Aqua"></TextBlock>
<TextBox DockPanel.Dock="Right" Background="Brown" Width="200"></TextBox>
<WrapPanel DockPanel.Dock="Top" Background="DimGray">
<Button Margin="3" Command="Commands:load_tests_command">Загрузить проверки</Button>
<Button Margin="3">Обновить проверки</Button>
</WrapPanel>
<TextBox DockPanel.Dock="Left" Background="Beige">Текст слева</TextBox>
</DockPanel>
</Window>
以及我要定义命令load_tests的文件:
module View.Commands
open System.Windows.Input
open TestLoader
(* commands *)
type LoadTestsCommand () =
interface ICommand with
member this.CanExecute (obj) = true
member this.Execute (obj) = reload_tests()
member this.add_CanExecuteChanged (obj) = ()
member this.remove_CanExecuteChanged (obj) = ()
let load_tests_command =
LoadTestsCommand()
您需要进行哪些更改才能使其正常工作?最好是最简单的方法。
【问题讨论】:
-
这是一个相当模糊的问题——到目前为止你尝试过什么?或者您有想要翻译成 F# 的 C# 示例?
-
我没有 C# 源代码。我试图制作从某个模块调用某些函数的命令。并将此命令绑定到某个控件(主题代码中的按钮)。
-
并不是你的问题的真正答案,但 Daniel Mohl 整理了一些出色的模板,用于将 F# 与 WP7 结合使用。因此,他们提供了将 F# 与 WPF/Xaml 结合使用的绝佳示例。你可能想看看他的模板——它们在 Visual Studio 库中
-
我认为这个链接就是@OnorioCatenacci 所说的:visualstudiogallery.msdn.microsoft.com/…