変なタイトルですみません。Ui コンポーネントの動的生成を扱っています。ボタンを動的に生成する Xaml クラスに ListBox があります。
意見:
<ListBox x:Name="SetButtonList" ItemsSource="{Binding}" >
<ListBox.ItemTemplate>
<DataTemplate >
<Grid>
<Button Content="{Binding Path=SetButtonFreq}" Command="{Binding Path=SetFreqCommand}" />
</Grid>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
ビューモデル:
private ICommand mSetFreqCommand;
public ICommand SetFreqCommand
{
get
{
if (mSetFreqCommand == null)
mSetFreqCommand = new DelegateCommand(new Action(SetFreqCommandExecuted), new Func<bool>(SetFreqCommandCanExecute));
return mSetFreqCommand;
}
set;
}
public bool SetFreqCommandCanExecute()
{
return true;
}
public void SetFreqCommandExecuted()
{
// Executes the Body when Button is Clicked
}
モデル:
private string _SetFreqValue = "";
public String SetButtonFreq
{
set; get;
}
public ClockModel(string SetButtonFreq)
{
this.SetButtonFreq = SetButtonFreq;
}
public override string ToString()
{
return _SetFreqValue;
}
View.cs ファイル:
// mClock is object of Model Class
mClock.Add(new ClockModel("Set 12.0 MHz"));
mClock.Add(new ClockModel("Set 12.288 MHz"));
mClock.Add(new ClockModel("Set 15.36 MHz"));
mClock.Add(new ClockModel("Set 19.2 MHz"));
これにより、リストボックスに異なる頻度の 4 つのボタンが表示されます。しかし、それらをクリックしようとすると、コントロールはSetFreqCommandExecuted()
メソッドに入りません。私はどこで間違いを犯していますか?:(
助けてください