使用 Elmish.WPF 时,如何从路由事件的自定义 WPF 列表视图中获取选定的列表视图项?
How to get a selected listviewitem from a custom WPF listview for routed event when using Elmish.WPF?
我是 Elmish 的新手。
WPF 绑定将自定义控件用作:
local:AppointmentListView.ScheduledAppointment ="AppointmentDataGrid_ScheduledAppointment"
我有一个 C# 自定义 ListView,它在选择列表视图项时引发以下路由事件:
private void AppointmentListView_PreviewMouseLeftButtonUp(object sender, MouseButtonEventArgs e)
{
var item = (sender as ListView).SelectedItem;
if ((IVisit)item != null)
{
ScheduledAppointmentEventArgs args = new ScheduledAppointmentEventArgs(ScheduledAppointmentEvent, (IVisit)item);
RaiseEvent(args);
}
}
我不需要“IVisit”的 C# 转换,但我确实需要选择的列表视图项是来自 F# 模型的 Visit 类型。也就是说,我需要实际的对象约会键。但我得到的是:
"Elmish.WPF.ViewModel<对象,对象>"
ListView 的 itemsSource 在 Elmish.WPF 中定义为“AppointmentKeys”:
type Model =
{ AppointmentKeys: Visit.Model list
Id: int
}
let bindings() =[
"AppointmentKeys" |> Binding.subModelSeq(
(fun (_, m) -> m.AppointmentKeys),
(fun v -> v.Id),
Visit.bindings
)
所以,问题是:在后面的代码中,如何return用户从ListView中选择的F#记录?
更具体地说,当“SelectedItem”来自 MouseButtonEvents 上的代码隐藏绑定时,F# 代码如何写入 return 选定的列表视图项?
不要使用 code-behind 中定义的函数订阅事件。相反,将事件转换为命令 like this from the EventBindingsAndBehaviors
sample. Then binding to a selected item from a ListView
as in done in the SubModelSelectedItem
sample.
我是 Elmish 的新手。
WPF 绑定将自定义控件用作:
local:AppointmentListView.ScheduledAppointment ="AppointmentDataGrid_ScheduledAppointment"
我有一个 C# 自定义 ListView,它在选择列表视图项时引发以下路由事件:
private void AppointmentListView_PreviewMouseLeftButtonUp(object sender, MouseButtonEventArgs e)
{
var item = (sender as ListView).SelectedItem;
if ((IVisit)item != null)
{
ScheduledAppointmentEventArgs args = new ScheduledAppointmentEventArgs(ScheduledAppointmentEvent, (IVisit)item);
RaiseEvent(args);
}
}
我不需要“IVisit”的 C# 转换,但我确实需要选择的列表视图项是来自 F# 模型的 Visit 类型。也就是说,我需要实际的对象约会键。但我得到的是: "Elmish.WPF.ViewModel<对象,对象>"
ListView 的 itemsSource 在 Elmish.WPF 中定义为“AppointmentKeys”:
type Model =
{ AppointmentKeys: Visit.Model list
Id: int
}
let bindings() =[
"AppointmentKeys" |> Binding.subModelSeq(
(fun (_, m) -> m.AppointmentKeys),
(fun v -> v.Id),
Visit.bindings
)
所以,问题是:在后面的代码中,如何return用户从ListView中选择的F#记录?
更具体地说,当“SelectedItem”来自 MouseButtonEvents 上的代码隐藏绑定时,F# 代码如何写入 return 选定的列表视图项?
不要使用 code-behind 中定义的函数订阅事件。相反,将事件转换为命令 like this from the EventBindingsAndBehaviors
sample. Then binding to a selected item from a ListView
as in done in the SubModelSelectedItem
sample.