저는 WPF를 처음 접했고 C++ 배경에서 왔기 때문에 메모리 관리에 대해 너무 많이 걱정하고 있습니다.usercontrol wpf 정적 메모리
어쨌든, 나는 2 열로 눈금이있는 UserControl (NewContact), 상위 열에 3 라디오 단추를 표시하고 선택에 따라 적절한 UserControl을 눈금의 아래쪽 구역으로로드합니다.
private void newMilitaryContactRadioButton_Checked(object sender, RoutedEventArgs e)
{
UserControl NMC = new NewMilitaryContact();
NewContactWindowGridDisplay.Children.Insert(1, NMC);
}
private void newMilitaryContactRadioButton_Unchecked(object sender, RoutedEventArgs e)
{
NewContactWindowGridDisplay.Children.RemoveAt(1);
}
private void newLegalContactRadioButton_Checked(object sender, RoutedEventArgs e)
{
UserControl NLC = new NewLegalContact();
NewContactWindowGridDisplay.Children.Insert(1, NLC);
}
private void newLegalContactRadioButton_Unchecked(object sender, RoutedEventArgs e)
{
NewContactWindowGridDisplay.Children.RemoveAt(1);
}
private void newFirmContactRadioButton_Checked(object sender, RoutedEventArgs e)
{
UserControl NFC = new NewFirmContact();
NewContactWindowGridDisplay.Children.Insert(1, NFC);
}
private void newFirmContactRadioButton_Unchecked(object sender, RoutedEventArgs e)
{
NewContactWindowGridDisplay.Children.RemoveAt(1);
}
이제 내 질문에 내가 수 있는지 여부, 그리고 라디오 버튼이 선택하지 않은 경우 어떻게, 내가 생성 된 UserControls을 언로드 할 수 있습니다. MSDN 설명서를 검색 한 결과 부모 개체에서 remove 메서드를 사용하면 usercontrol이 언로드된다는 것을 알았습니다. 만약 그렇다면 내가 여러 가지 "확인되지 않은"방법으로 올바른 방법으로 3 개의 라디오 버튼을 반복해서 클릭하면 NFC/NLC/NMC UserControl 객체를 겹치지 않게하기 위해 사용하는 코드가 있습니다. 그리고 또 다시? 나에게 이것을 설명 할 수 있습니다에 사람에게
많은 감사합니다 :)
시작시 3 개의 컨트롤을 만든 다음 해당 '가시성'을 적절한 라디오 버튼에 바인딩하는 것이 더 쉽지 않을까요? 그렇게하면 그 당시에는 단 한 명만 표시되지만 변경에 관련된 객체는 생성되지 않습니다. :) –
그것은 실제로 많은 감각을 만들 것입니다 ... 나는 너무 열심히 생각했습니다. –
:) 그래도 그건 단지 제안 일 뿐이지 만 그런 식으로하고 문제가 있다면 자유롭게 물어보십시오. –