2014-01-15 4 views
1

Я делаю программу управления недвижимостью и на главной странице у меня есть все свойства, перечисленные что-то вроде этого в WrapPanel:WrapPanel ItemsControl Ссылаясь на отдельные элементы из оригинальной коллекции

Main Panel with Properties

Теперь, хотя каждое из свойств точно такое же, что только для демонстрации и тестирования с несколькими свойствами. Каждое из свойств является другой Property объект внутри от ObservableCollection собственности (извините за путаницу имен), как показано на моей C# код ниже:

public ObservableCollection<Property> Properties { get; set; } 

// ... 

Property defaultProperty = new Property(/*Lots of Stuff*/); 
properties.Add(defaultProperty); 
properties.Add(defaultProperty); 
properties.Add(defaultProperty); 
properties.Add(defaultProperty); 
properties.Add(defaultProperty); 
Properties = properties; 

Эти свойства (часть Свойствами (извините еще раз)) затем показаны через ItemsControl, который показан ниже:

<ItemsControl x:Name="wPanel" ItemsSource="{Binding Properties}"> 
    <ItemsControl.ItemsPanel> 
     <ItemsPanelTemplate> 
      <WrapPanel x:Name="PropertyPanel" /> 
     </ItemsPanelTemplate> 
    </ItemsControl.ItemsPanel> 
    <ItemsControl.ItemTemplate> 
     <DataTemplate> 
      <Border Margin="5,5,5,5" BorderBrush="Red" BorderThickness="1" HorizontalAlignment="Left" VerticalAlignment="Top"> 
       <Grid MinWidth="350" MouseLeftButtonUp="Grid_MouseLeftButtonUp"> 
        // Column and Row Definitions 
        // ... 
        // Three other corners of the grid 
        <StackPanel Grid.Row="1" Grid.Column="1" VerticalAlignment="Bottom"> 
         <StackPanel Orientation="Horizontal" HorizontalAlignment="Right" VerticalAlignment="Bottom" Margin="5,5,5,0" MouseLeftButtonDown="IssuesPanel_MouseLeftButtonDown" > // <-- This is the part I'm trying to get to work 
          <TextBlock Text="{Binding IssuesNum}" VerticalAlignment="Center"/> 
          <TextBlock Text=" Issues " VerticalAlignment="Center"/> 
          <Image VerticalAlignment="Center"> 
           <Image.Source> 
            <BitmapImage UriSource="/VentureVisions;component/warning.png" DecodePixelWidth="18" /> 
           </Image.Source> 
          </Image> 
         </StackPanel> 
        </StackPanel> 
       </Grid> 
      </Border> 
     </DataTemplate> 
    </ItemsControl.ItemTemplate> 
</ItemsControl> 

Я вынул те части, которые не важны для этого. Я пытаюсь открыть окно о проблемах свойства, когда пользователь нажимает на панель проблем в правом нижнем углу. У меня настроено событие, но мне нужно получить объект Property, чтобы получить из него коллекцию проблем, чтобы отображать его в окне. Я надеюсь в этом есть смысл. Комментарий, если сейчас. Но как я могу узнать, как ссылаться на конкретное свойство, с которым пользователь взаимодействует после нажатия кнопки? Спасибо.

ответ

1

Из того, что она выглядит, как это отвечает, используя несколько различных ароматизаторов, относится к следующим темам:

  1. Binding to CurrentItem in a ItemsControl
  2. How to highlight selected item in ItemsControl?

Надеется, эта помощь.

Для дальнейшего помочь вам, если вы используете какой-либо уровень связывания данных, то вы можете просто связать взаимодействие изображения «проблемы» с командой на «ViewModel», в вашем случае модель представление будет Property объекта.

+0

Не знаете ли вы, как это сделать, не используя терминологию mvvm? Я имею в виду понять это и посмотреть на него, но я пока не использовал его в этом проекте, и поэтому ... было бы неплохо, если бы я мог сохранить его так, как есть. –

+0

Я немного оглянулся и нашел одну из страниц, которые у вас были. Мне потребовалось некоторое время, чтобы понять, как он вписывается в мою проблему. Но это было так. Благодарю. –

Смежные вопросы