В настоящее время я пытаюсь привязать определенные элементы в коллекции в wpf. Это лучше всего объяснить на примере.
Мой XAML ниже:
<Canvas Name="TaskCanvas" Width="467.667" Height="414">
<Ellipse Name="myElipse" Fill="White" Stroke="Black" Width="126" Height="76"
Canvas.Left="{Binding Path=XPos}" Canvas.Top="{Binding Path=YPos}" />
</Canvas>
Теперь, как вы можете видеть, я просто привязываю свойства к простому примеру эллипса, чтобы расположить его на оси x и y из моего источника данных.
У меня есть код c # в событии window_load для привязки моего источника данных к моему эллипсу, как показано ниже:
PosClass posclass = new PosClass();
List<PosClass> posClasses = new List<PosClass>();
posclass.YPos = 100;
posclass.XPos= 100;
posClasses.Add(posclass);
posclass.YPos = 0;
posclass.XPos = 0;
posClasses.Add(posclass);
TaskCanvas.DataContext = posClasses;
Теперь я сделал привязку к холсту из моей коллекции. PosClass - это простой класс с двумя свойствами: «XPos» и «YPos».
Когда я запускаю набор кодов, мой эллипс правильно привязан к источнику данных, и это здорово, но поскольку эллипс не настроен на получение точной строки из коллекции, он по умолчанию занимает последнюю строку, поэтому для моего эллипса устанавливается значение 0,0 положение.
Что я хочу сделать, так это настроить эллипс на использование первого элемента в коллекции, вложенного в XAML, или, если у меня было больше элементов, скажем, 10-й элемент. Опять же, я хочу сделать это в XAML, поэтому в настоящее время у меня есть только привязка к позициям X и Y, есть ли какой-то синтаксис, который позволяет мне также указать, какую строку в коллекции использовать?