Как привязать данные к значению случая объединения в XAML?Как привязать данные к значению случая объединения в XAML?
В настоящее время привязанное к данным значение указывает на объект String20 вместо фактического строкового значения, которое обертывает случай объединения (т. Е. String20).
Пример:
<ListView ItemsSource="{Binding Modules}" DisplayMemberPath="Author.First" />
Автор Определение:
type Name = {
First:String20
Last:String20
Suffix:String20 option
}
type Module = {
Author:Name
Duration:Duration
}
XAML:
<Window x:Class="Client.MainWindow"
...
xmlns:manageModules="clr-namespace:ManageModules;assembly=ManageModules">
<Window.DataContext>
<manageModules:CreationViewModel />
</Window.DataContext>
<Grid>
<ListView ItemsSource="{Binding Modules}" DisplayMemberPath="Author.First"
TextElement.Foreground="LightBlue" Background="Black" />
</Grid>
</Window>
ViewModel:
namespace ManageModules
...
type CreationViewModel() =
inherit ViewModelBase()
let name = { First=String20("Scott"); Last=String20("Nimrod"); Suffix=None }
let duration = { Hours=1; Minutes=30; Seconds=0 }
let moduleItem = { Author=name; Duration=duration }
let mutable (_modules:Module ObservableCollection) = ObservableCollection()
do _modules.Add(moduleItem)
member this.Modules
with get() = _modules
and set(value) = _modules <- value
member this.Add moduleItem =
_modules.Add(moduleItem)
Бизнес Доменные:
module ManageModule.Entities
type Duration = {
Hours:int
Minutes:int
Seconds:int
}
type String20 = String20 of string
type Name = {
First:String20
Last:String20
Suffix:String20 option
}
type Module = {
Author:Name
Duration:Duration
}
and Section =
| Introduction of Module
| Conclusion of Module
| Content of Module list