繁体   English   中英

如何制作清单 <Object> 在Visual Studio中使用WPF时,变量是否出现在DataBinding UI中?

[英]How to make List<Object> variable appear in DataBinding UI when using WPF in Visual Studio?

我正在学习WPF,目前正在探索数据绑定。 我在表单上有一个DataGrid控件,在表单的C#代码中,我有一个List<string>变量。

我希望能够在设计器中使用DataGrid的Properties UI将List<string>绑定到DataGrid 我无法弄清楚我需要做什么或需要在UI中查看的位置。

这就是我在做什么:

  1. 在UI设计器中单击我的DataGrid ,使其成为活动控件。
  2. 移至“ Properties窗口。
  3. 向下滚动到ItemsSource属性。
  4. 单击该字段,然后弹出带有“源”,“路径”,“转换器”和“选项”的UI。

当我到达这一点时,我不再知道该怎么办。

我不想通过编写/修改XAML来实现此目的。 我想知道如何使用UI。

我以前从未使用过设计师,所以不能完全确定(您的用例也不十分清楚)。

话虽这么说,在我的设计师你

  1. 将“绑定类型”设置为“数据上下文”
  2. 选择“自定义”文本框(对我来说是必须的,因为它看不到我的DataContext)
  3. 在“路径”字段中输入属性的名称(您只能绑定到属性)
  4. 点击确定。

请注意,这与使用XAML编写相同:

<DataGrid ItemsSource="{Binding MyItemCollection}"/>
<!-- or --!>
<DataGrid ItemsSource="{Binding Path=MytItemsCollection}"/>

没有人使用设计师是有原因的。

其他选项是通常在ItemsSource属性上不常用的“高级”绑定概念。

请注意, DataGrid是显示字符串的不佳选择。 ListViewListBox是更好的选择,因为它们不假定您的信息有多个部分(就像DataGrid一样)。

我理解不喜欢XAML,因为它起初确实吓倒了我,但是我很快会说它是一个强大的工具。 我不确定如何通过设计器执行此操作,但是在C#中,假设您将DataGrid命名为“ myDataGrid”,而列表则命名为“ stringList”。 它很简单,如下所示:

  myDataGrid.ItemsSource = stringList;

现在,数据网格已绑定到您的字符串列表。

感谢您提出问题! 属性窗口被低估了。 首先,您必须设置DataContext。 它位于属性窗口的公共部分。 将数据上下文设置为所需的任何视图模型。 如果您没有VM,并且列表位于后面的代码中,则将数据上下文设置为相对源self。 在路径的下一步中,输入列表的名称。 另外,您可能希望使用ObservableCollection而不是List,以便在对象更改时在UI中对其进行更新。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM