저는 WPF에 비교적 익숙하지 않으며 MVVM 패턴을 사용하여 첫 번째 프로젝트를 디자인하려고합니다.사용자 정의 컨트롤에 별도의 데이터 바인딩 설정
이제 내보기로 기본 창이 있습니다.이 사용자 정의 컨트롤이 있습니다. 이제 사용자 정의 컨트롤에는 2 개의 확장자가 있으며 각각 자체 데이터를 가져와야합니다.
<Expander Header="Electrical Components" Name="EC"
IsExpanded="True">
<ItemsControl ItemsSource="{Binding ElecViewModel.ToolBoxItems }">
............
<Expander Header="Structural Components" Name="SC"
IsExpanded="True">
<ItemsControl ItemsSource="{Binding StructViewModel.ToolBoxItemsS}">
.............
그래서 저는 각 확장기에 대해 데이터 바인딩을 할 수 있다는 아이디어로 2 개의 뷰 모델을 만들었습니다. 아이디어는 각 확장기 아래에 일부 이미지를 가져 오는 것입니다. 먼저 확장 나는이보기 모델
public class ElecViewModel
{
private List<ToolBoxData> toolBoxItems = new List<ToolBoxData>();
public ElecViewModel()
{
toolBoxItems.Add(new ToolBoxData("../Images/Inverter.jpg", typeof(InverterDesignerItemViewModel)));
toolBoxItems.Add(new ToolBoxData("../Images/Recombiner.jpg", typeof(RecombinerDesignerItemViewModel)));
}
public List<ToolBoxData> ToolBoxItems
{
get { return toolBoxItems; }
}
}
.. 그리고
public class StructViewModel
{
private List<ToolBoxData> toolBoxItemsS = new List<ToolBoxData>();
public StructViewModel()
{
toolBoxItemsS.Add(new ToolBoxData("../Images/SafetySwitch.jpg", typeof(SafetySwitchDesignerItemViewModel)));
toolBoxItemsS.Add(new ToolBoxData("../Images/ScadaPanel.jpg", typeof(ScadaDesignerItemViewModel)));
}
public List<ToolBoxData> ToolBoxItemsS
{
get { return toolBoxItemsS; }
}
}
지금 내 첫 번째 확장이 두 번째가 '아무튼 올바른 images.whereas로드지고이보기 모델에 두 번째에 연결 티. 첫 번째 목록처럼 바인딩 한 경우에도 두 번째보기 모델의 공용 목록에 충돌이 발생하지 않습니까? 거기에 대한 명백한 이유가 있습니까? 첫 번째 목록에 두 번째 확장기의 바인딩 소스를 설정하는 시도하고 두 번째에 대한 목록을 제안하는 채워지는 받고 컨트롤에 바인딩 된 일부 문제가 있습니다. 명백한 문제를 확인할 수 없으므로 제안하십시오.
처럼이 확장기를 바인딩 할 수 있습니다, 당신의
Window
의DataContext
입니다. 내가 xaml에 몇 가지 오타 오류를하고 있었다. – simba