동적으로 체크 박스를 16 번 생성해야하는 WPF에서 작업하고 있습니다.동적 체크 박스 생성 실패
XAML :이 체크 박스의 16 배를 기록하고 개별 버튼이 그들에게 명령을 클릭 한 경우
<Checkboxes Height="14" Command="{Binding CheckboxesGen}" Margin="0" Name="checkBox1" Grid.Column="0" VerticalAlignment="Center" HorizontalAlignment="Center" />
위의 방법을 사용하여, 그것은 비효율적 일 수 있습니다. 내 C++ 응용 프로그램에서 같은 상황에 직면했다
private ICommand mCheckboxesGen;
public ICommand CheckboxesGen
{
get
{
if (mCheckboxesGen== null)
mCheckboxesGen= new DelegateCommand(new Action(mCheckboxesGenExecuted), new Func<bool>(mCheckboxesGenCanExecute));
return mCheckboxesGen;
}
set
{
mCheckboxesGen= value;
}
}
public bool mCheckboxesGenCanExecute()
{
return true;
}
public void mCheckboxesGenExecuted(some INDEX parameter which gives me selected Checkboxes)
{
// Have a common method here which performs operation on each Checkboxes click based on INDEX which determines which Checkboxes I have selected
}
다음과 같이 내가 이상적으로 그들에게 16 배를 생성하고 내 뷰 모델 클래스에서 하나의 일반적인 방법을 갖고 싶어한다.
for(int j = 0; j < 16; j ++)
{
m_buttonActiveChannels[j] = new ToggleButton();
addAndMakeVisible(m_buttonActiveChannels[j]);
m_buttonActiveChannels[j]->addButtonListener(this);
}
//Checking which Checkboxes is clicked
unsigned bit = 0x8000;
for(int i = 15; i >= 0; i--)
{
if(0 != (value & bit)) //Value has some hardcoded data
{
m_buttonActiveChannels[i]->setToggleState(true);
}
else
{
m_buttonActiveChannels[i]->setToggleState(false);
}
bit >>= 1;
}
는 따라서이 그것을 16 배를 생성하고
index i
에 따라 작업을 수행하는 하나의 방법이 있습니다 사용하여 다음과 같이 내가 내 C++ 응용 프로그램에서 일을했다.
비슷한 접근 방식이나 다른 접근 방식을 사용하면 어떻게하면 내 wpf 응용 프로그램에서이를 수행 할 수 있습니까? :) 도와주세요 :)
그래, 맞아 :)하지만 이것은 하나 이상의 다른 확인란을 생성합니다. 이상적으로 요구 사항 당 하나의 행 자체에 16 개의 chckbx가 있어야합니다. – StonedJesus
ItemsPanelTemplate 사용 http://msdn.microsoft.com/en-us/library/system.windows.controls.itemspaneltemplate.aspx – Dtex
@StonedJesus 괜찮습니다. 업데이트 된 코드 참조 - 원하는 방식으로 표시되어야합니다 :) – Steoates