2010-08-10 2 views
-1

글쎄, 심각하게 얘들 아, WPF 오류 및 하드 처리가 아프다. 많은 버튼이있어 방을 나타 내기 위해 dsigned가되어 있고 데이터베이스에서 점유자 이름과 정보를 얻기 위해 툴팁에 바인딩하고 싶다. . 어떻게 할 수 없습니까. 감사Neptune2 [그냥 화성에서 왔어]

+0

먼저 제목을 변경하고 싶을 수 있습니다. –

+0

WPF의 단추에 툴팁을 추가하고 싶습니까? 네가 묻고있는거야? – Siege898

+1

Nanu. Nanu. MEEP MEEP. Meh. –

답변

3
  1. 빌드 Description, IsAvailable, OtherInformation 및 기타 속성을 노출하고 INotifyPropertyChanged를 구현하는 RoomViewModel 클래스를. 이러한 속성을 채우는 방법은 응용 프로그램에 달려 있습니다.

  2. ObservableCollection<RoomViewModel>Rooms을 나타내는 RoomsViewModel 클래스를 작성하십시오.

  3. RoomViewModelRoomsViewModel 클래스 (아래 참조)에 대해 DataTemplate을 만듭니다.

  4. RoomsViewModel 클래스의 인스턴스를 만들고 Rooms 컬렉션을 채 웁니다.

  5. ContentPresenter을 만들고 Content 속성을 RoomsViewModel 클래스의 인스턴스로 설정하십시오. 다음과 같을 수

일반적인 데이터 템플릿 :

<DataTemplate x:Type="{local:RoomsViewModel}"> 
    <ItemsControl ItemsSource="{Binding Rooms}"> 
     <ItemsControl.ItemsPanel> 
     <ItemsPanelTemplate> 
      <WrapPanel/> 
     </ItemsPanelTemplate> 
     </ItemsControl.ItemsPanel> 
    </ItemsControl> 
</DataTemplate> 

<DataTemplate x:Type="{local:RoomViewModel}"> 
    <Button 
     Margin="10" 
     IsEnabled="{Binding IsAvailable}" 
     ToolTip="{Binding OtherInformation}" 
     Content="{Binding Description}"/> 
</DataTemplate> 

향후 개선 사항 :

  1. UniformGrid 대신 WrapPanel의를 사용해보십시오.

  2. 읽기 조쉬 스미스의 기사 Using RoutedCommands with a ViewModel in WPFRoomViewModelReserveRoomCommand 속성을 만들 수있다 설명한 기술을 사용합니다. RoomViewModel 데이터 템플릿의 CommandBinding{Binding ReserveRoomCommand}으로 설정합니다. 명령 바인딩을 사용하면 버튼을 자동으로 활성화 및 비활성화하므로 바인딩을 IsEnabled으로 제거합니다.

  3. 이 UI를 다시 사용해야하는 경우 데이터 템플릿과 콘텐츠 발표자를 UserControl으로 옮기십시오.

+1

+1 어리석은 질문과 심각한 대답의 놀라운 대조를 위해. – egrunin

+0

로버트,이 질문은 쉽게 삭제 될뿐만 아니라 폐쇄 될 수 있습니다. 그렇다면 질문하고 답하십시오. 그것은 구원받을만큼 유용합니다. –

관련 문제