相关疑难解决方法(0)

WPF绑定到集合中的特定项目

我目前正在尝试绑定到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>       
Run Code Online (Sandbox Code Playgroud)

现在你可以看到我只是绑定到属性作为椭圆的一个简单示例,将它定位在我的数据源的x和y轴上.

我在window_load事件中有c#代码将我的数据源绑定到我的椭圆,如下所示:

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;
Run Code Online (Sandbox Code Playgroud)

现在我从我的收藏中对canvas cotainer进行了绑定.PosClass是一个简单的类,有两个属性是'XPos'和'YPos'.

当我运行的代码设置我的椭圆正确绑定到这是伟大的,但作为椭圆没有设置采取从集合默认情况下它的确切行占用的最后一排,所以我的椭圆设置为0,0位置的数据源.

我想要做的是设置椭圆以使用XAML中附加的集合中的第一个项目,或者如果我有更多的项目,请说出第10个项目.我想再次在XAML中这样做,所以目前我只是绑定到X和Y位置,是否有某种语法让我也可以指定要使用的集合中的哪一行?

wpf binding

5
推荐指数
1
解决办法
8162
查看次数

绑定到相关(详细)集合中第一项的属性

类似于WPF:如何仅绑定到集合中的一项,不使用 ItemsControl,因为我不想显示所有项,除非集合与主绑定项相关。所有数据都通过 EntityFramework 传入。与链接的问题一样,xaml 解释得最好:

<StackPanel Grid.Row="1" Orientation="Horizontal" DataContext="{Binding CurrentCustomer}">
  <StackPanel Orientation="Horizontal">
    <TextBlock Text="Total Orders:" />
    <TextBlock Text="{Binding Orders.Count}" />
  </StackPanel >

  <StackPanel Orientation="Horizontal">
    <TextBlock Text="First Order:" />
    <TextBlock Text="{Binding Orders.First.OrderDate}" />
  </StackPanel >
</StackPanel>
Run Code Online (Sandbox Code Playgroud)

正如您所看到的,我猜测由于我可以使用“Orders.Count”获取相关订单的计数,因此我尝试使用相同的 linq 语法来尝试检索 Orders.First (我也尝试过 Orders.FirstOrDefault),但是这是行不通的。

查看链接的问题,我尝试了Sheridan的 '[]' 语法,但 Orders[0].OrderDate 给出了输出错误: System.Windows.Data Error: 40 : BindingExpression path error: '[]' property not found on 'object' ''HashSet'1' (HashCode=37425772)'. BindingExpression:Path=Orders[0].OrderDate; DataItem='Customer_<BigLongIdentityString>' (HashCode=21972018); target element is 'TextBlock' (Name=''); target property is 'Text' (type 'String')。 …

c# wpf xaml

4
推荐指数
1
解决办法
1505
查看次数

标签 统计

wpf ×2

binding ×1

c# ×1

xaml ×1