コレクションオブジェクトをXAML側でバインディングする方法
ContentPresenter.comというサイトにて、WPFに関するチュートリアルビデオがいくつか公開されています。
公開されている動画は、解説は英語であるものの実際の画面のキャプチャ動画になっていますで画面を見るだけでも結構な部分を理解できます。
もっとも最近公開された動画はこちらです。
Listクラスを継承したクラスを作成し、xlmnsそのクラスを参照できるようにし、リソースでそのクラスをインスタンス化するというものです。コードは下記のようになります(動画ではC#が使われていますが、ここで紹介するコードはVBです)。
Visual Basic
' Interaction logic for Window1.xaml
Partial Public Class Window1
Inherits System.Windows.Window
Public Sub New()
InitializeComponent()
End Sub
End Class
Public Class Processes
Inherits List(Of String)
Public Sub New()
Dim plist As System.Diagnostics.Process() = System.Diagnostics.Process.GetProcesses
For Each p As System.Diagnostics.Process In plist
Me.Add(p.ProcessName)
Next
End Sub
End Class
Partial Public Class Window1
Inherits System.Windows.Window
Public Sub New()
InitializeComponent()
End Sub
End Class
Public Class Processes
Inherits List(Of String)
Public Sub New()
Dim plist As System.Diagnostics.Process() = System.Diagnostics.Process.GetProcesses
For Each p As System.Diagnostics.Process In plist
Me.Add(p.ProcessName)
Next
End Sub
End Class
XAML
<Window x:Class="Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:src="clr-namespace:ProcessViewer"
Title="ProcessViewer" Height="800" Width="300"
>
<Window.Resources>
<src:Processes x:Key="p"/>
</Window.Resources>
<Grid>
<ListBox ItemsSource="{StaticResource p}"/>
</Grid>
</Window>
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:src="clr-namespace:ProcessViewer"
Title="ProcessViewer" Height="800" Width="300"
>
<Window.Resources>
<src:Processes x:Key="p"/>
</Window.Resources>
<Grid>
<ListBox ItemsSource="{StaticResource p}"/>
</Grid>
</Window>
ほかの動画とても参考になると思いますので、時間のある方はぜひ見ていただきたいと思います。