2016-11-22 2 views
2

hier zu verwenden ist, was ichWie FsXaml der CommandDependecy/(n)

getan mit FsXaml
type MainViewModel() as self = 
inherit ViewModelBase() 

    let listOfData = self.Factory.Backing(<@[email protected]>, 0 :> obj) 
    let selectedId = self.Factory.Backing(<@[email protected]>, 0) 

    member x.SelectedId with get() = selectedId.Value 
         and set value = selectedId.Value <- value; 
             x.ListOfData <- returnPrice(value) :> obj   
    member x.StockList with get() = stockList 
    member x.ListOfData with get() = listOfData.Value and set value = listOfData.Value <- value 

und in XAML

<ComboBox Grid.Row="1" ItemsSource="{Binding StockList}" 
       DisplayMemberPath="Code" 
       SelectedValuePath="Id" SelectedValue="{Binding SelectedId}"/> 
<DataGrid Grid.Row="2" ItemsSource="{Binding ListOfData}"/> 

Wie kann ich Befehl dependecy von ViewModule verwenden x.ListOfData zu setzen statt Rufen returnPrice(value) in Setter von x.SelectedId?

+1

Ich nehme an, Sie möchten 'self.DependencyTracker.AddPropertyDependencies' verwenden. –

+1

Bitte schreiben Sie [MCVE] (http://stackoverflow.com/help/mcve), um genau zu verstehen, was Sie tun möchten. –

+0

@FoggyFinder Danke! –

Antwort

3

Sie haben es richtig @ Foggy Finder angenommen. Ich habe den Code ersetzt -

let selectedId = self.Factory.Backing(<@[email protected]>, 0) 

do 
    self.DependencyTracker.AddPropertyDependency(<@[email protected]>,<@[email protected]>) 

member x.SelectedId with get() = selectedId.Value and set value = selectedId.Value <- value; 
member x.StockList with get() = stockList 
member x.ListOfData with get() = returnPrice(self.SelectedId) 

und es funktioniert!

Was ist der Zweck von selb.DependencyTracker.AddCommandDependency() und wie man es benutzt?

+1

hat diese Funktion nie benutzt. Aber der Zweck ist aus dem Namen klar. –

+1

Diese Art gehört in eine separate Frage - aber im Allgemeinen ist es etwas, das Sie (normalerweise) nicht selbst verwenden müssen. Es funktioniert wie die Eigenschaft depednencies, aber für die Ausführung eines Befehls. Normalerweise, wenn Sie den Befehl erstellen, fügen Sie ihn einfach in die abhängigen Ausdrücke ein, und das Framework leitet das für Sie ein. –

+0

Danke @ReedCopsey für Ihren Kommentar. Können Sie mir bitte einen Site/Blog/Video Link als Einstiegsanleitung vorschlagen, um eine Idee über die Entwicklung einer ASP.NET MVC-Anwendung mit F # zu bekommen? –