私は WPF が初めてで、それに慣れるために簡単なテスト アプリを作成しています。私のテスト アプリは、コンピューターに接続されているすべてのジョイスティックを検出し、それに関する情報を表示します。これまでのところ、私はこのViewModelを持っています:
public class JoystickViewModel
{
public ObservableCollection<Joystick> Joysticks { get; set; }
public JoystickViewModel()
{
GetAttachedJoysticks();
}
private void GetAttachedJoysticks()
{
// populate Joysticks collection by using SlimDX
}
}
そして、これは私のコードビハインドですMainWindow.xaml
:
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
DataContext = new JoystickViewModel();
}
}
そして私のXAML MainWindow
:
<Window ...>
<Grid>
<ComboBox ItemsSource="{Binding Joysticks}"
DisplayMemberPath="Information.ProductName"/>
</Grid>
</Window>
コンストラクターに ViewModel も設定するチュートリアルに従いました。
私の質問は、ViewModel にどのように入力すればよいですか? ViewModel コンストラクターでコレクションを作成しているのは、ちょっと奇妙に思えます。代わりに、このロジックを MainWindow の分離コードに含める必要がありますか? それともまったく別の場所ですか?最終的な目標は、このコレクションにデータを入力するだけでなく、定期的に更新して現在の状態 (ユーザーが新しいジョイスティックを接続した、既存のジョイスティックを取り外したなど) を反映することです。