Bind to ObjectDataProvider
<Window x:Class="WpfApplication1.Monitor" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:diag="clr-namespace:System.Diagnostics;assembly=System" xmlns:system="clr-namespace:System;assembly=mscorlib" Title="Monitor" Height="400" Width="389"> <Grid> <Grid.Resources> <ObjectDataProvider x:Key="processes" MethodName="GetProcesses" ObjectType="{x:Type diag:Process}"/> <ObjectDataProvider x:Key="dateinfo" ObjectType="{x:Type system:DateTime}"/> </Grid.Resources> <ListView Name="listView1" ItemsSource="{Binding Source={StaticResource processes}}"> <ListView.ItemTemplate> <DataTemplate> <WrapPanel> <TextBlock Text="{Binding Path=Id}" MinWidth="80"/> <TextBlock Text="{Binding Path=StartTime, StringFormat=d}" MinWidth="80"/> <TextBlock Text="{Binding Path=ProcessName,StringFormat=Process \{0\}}" MinWidth="160"/> <TextBlock Text="{Binding Path=WorkingSet, StringFormat=\{0:N0\}}"/> <TextBlock Text="{Binding Path=WorkingSet, StringFormat=\{0:N0\} bytes}"/> <TextBlock MinWidth="100" TextAlignment="Right"> <TextBlock.Text> <Binding Path="WorkingSet" StringFormat="{}{0:N0} bytes"/> </TextBlock.Text> </TextBlock> </WrapPanel> </DataTemplate> </ListView.ItemTemplate> </ListView> </Grid> </Window>
1. | Bind to Object to ObjectDataProvider | ||
2. | The ObjectDataProvider exposes the enum as a binding source | ||
3. | Set up ObjectDataProvider in code | ||
4. | Create ObjectDataProvider and bind object to it in code |