wpf - 如何使用 FsXaml 的 CommandDependecy/(ies)

标签 wpf f# fsxaml fsharp.viewmodule

这是我使用 FsXaml 所做的事情

type MainViewModel() as self = 
inherit ViewModelBase() 

    let listOfData = self.Factory.Backing(<@self.ListOfData@>, 0 :> obj)
    let selectedId = self.Factory.Backing(<@self.SelectedId@>, 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 

在 xaml 中

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

如何使用ViewModule的命令依赖性来设置x.ListOfData而不是在的setter中调用returnPrice(value) x.SelectedId

最佳答案

你猜对了@Foggy Finder。我已将代码替换为 -

let selectedId = self.Factory.Backing(<@self.SelectedId@>, 0)  

do
    self.DependencyTracker.AddPropertyDependency(<@self.ListOfData@>,<@self.SelectedId@>)

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)

它有效!

self.DependencyTracker.AddCommandDependency() 的用途是什么以及如何使用它?

关于wpf - 如何使用 FsXaml 的 CommandDependecy/(ies),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40750777/

相关文章:

c# - 多个用户控件之间和程序集之间的共享资源字典

WPF 网页浏览器 : How to set element click event?

wpf - 在 .fs 文件中引用 .xaml 文件中的事件

f# - 我可以将 FsXaml 与 .NET 4.0 一起使用吗?

wpf - 带有用户控件的动态 WPF 数据网格

c# - 我如何对 ICommands 进行分组,以便如果一个正在执行,其他则不能?

c# - 编写字符串列表的不可变 F# 映射

f# - ODataService 类型提供程序仍然存在吗?

F# 浮点范围是实验性的,可能会被弃用

wpf - 无法加载 FsXaml.Wpf.TypeProvider