私はWPFC#の世界に不慣れです。コンストラクターに、子をスタックパネルに追加するメソッドがあります。2つのxamlファイルがあります。メインにはスタックパネルがあり、もう一方にはラベルがあります。
メインウィンドウビュー:
<Grid Grid.Row="1" Name="VoltageChannels" >
<StackPanel Height="Auto" Name="stackPanel" Width="Auto" MinHeight="300"> </StackPanel>
</Grid>
<Button Content="Refresh All" Command="{Binding AddChildCommand}" Name="RefreshAllBtn" />
public void OnChildAdd()
{
foreach (VoltageBoardChannel mVoltageChannelViewModel in mVoltageViewModel.VoltageChannelList)
{
VoltageChannelView mVoltageChannelView = new VoltageChannelView();
mVoltageChannelView.Margin = new Thickness(2);
mVoltageChannelView.ChannelInfo = mVoltageChannelViewModel;
stackPanel.Children.Add(mVoltageChannelView);
}
}
ビューモデルクラスからこのメソッドにアクセスして、ボタンクリックで子を追加したいと思います。基本的に私はアイテムのセットを持っているリストを持っています。これらのアイテムはボタンクリックで表示されます:)これがViewおよびViewModelクラスです:
ViewModel:
public viewModel()
{
}
public List<VoltageBoardChannel> VoltageChannelList
{
get
{
return channelList;
}
set
{
channelList = value;
OnPropertyChanged("ChannelList");
}
}
List<VoltageBoardChannel> channelList = new List<VoltageBoardChannel>(0);
// VoltageBoardChannel has Channel name and avalable as property.
List<VoltageBoardChannel> redhookChannels = new List<VoltageBoardChannel>
{
new VoltageBoardChannel { ChannelName = "", IsAvailable = false},
new VoltageBoardChannel { ChannelName = "VDD_IO_AUD", IsAvailable = true},
new VoltageBoardChannel { ChannelName = "VDD_CODEC_AUD", IsAvailable = true},
new VoltageBoardChannel { ChannelName = "VDD_DAL_AUD", IsAvailable = true},
new VoltageBoardChannel { ChannelName = "VDD_DPD_AUD", IsAvailable = true},
};
private ICommand mRefreshAllCommand;
public ICommand AddChildCommand
{
get
{
if (mRefreshAllCommand == null)
mRefreshAllCommand = new DelegateCommand(new Action(mRefreshAllCommandExecuted), new Func<bool>(mRefreshAllCommandCanExecute));
return mRefreshAllCommand;
}
set
{
mRefreshAllCommand = value;
}
}
public bool mRefreshAllCommandCanExecute()
{
return true;
}
public void mRefreshAllCommandExecuted()
{
VoltageChannelList = bavaria1Channels;
// Call OnChildAdd Method here
}
私のラベルを持つXAMLビュー:
<Label Grid.Column="0" Content="{Binding ChannelName}" Height="25" Width="120" Name="VoltageLabel" />
VoltageBoardチャネルクラス:
public class VoltageBoardChannel
{
public string ChannelName { get; set; }
public bool IsAvailable { get; set; }
}
ボタンクリックで呼び出されるメソッド。クリックした後OnChildAdd()
、これらのアイテムのリストをスタックパネルに追加するためにメソッドを呼び出しLIST
ます。出来ますか???