我正在尝试将DataGrid.ItemSource
绑定到ObservableCollection<SearchObject>
。 SearchObject是一个自定义类,它有一些公共成员变量(一个名为“parameters”)。参数是一个自定义类,并且具有名为“query”的公共成员变量(类型为string)。如何在数据网格中显示“查询”字符串。
我在Binding="{Binding ElementName=parameters, Path=query}"
内尝试了DataGridTextColumn
,但似乎无效。我想象这将引用参数对象,然后查找其查询成员变量,但这似乎不起作用。
有什么想法吗?这是我的XAML:
<DataGrid HorizontalAlignment="Stretch" Name="watchListDataGrid"
VerticalAlignment="Stretch" IsReadOnly="True"
AlternatingRowBackground="#FFE4F0FC"
HorizontalScrollBarVisibility="Disabled"
SelectionChanged="watchListDataGrid_SelectionChanged"
CanUserReorderColumns="False"
CanUserSortColumns="False"
AutoGenerateColumns="False" KeyUp="watchListDataGrid_KeyUp">
<DataGrid.ContextMenu>
<ContextMenu >
<MenuItem Header="Remove" Click="MenuRemoveWatchListItem_Click" />
</ContextMenu>
</DataGrid.ContextMenu>
<DataGrid.Columns>
<DataGridTextColumn Header="Query" Width="*"
Binding="{Binding ElementName=parameters, Path=query}" />
</DataGrid.Columns>
答案 0 :(得分:1)
假设您的DataGrid的ItemsSource绑定到:
<DataGrid ItemsSource={Binding Path=parameters}>
DataGridTextColumn的Binding应为:
<DataGridTextColumn Binding="{Binding Path=query}" />
使用ElementName引用XAML中的另一个元素。例如,如果要将TextBlock的文本绑定到TextBox的文本:
<TextBox Name="myTextBox" />
<TextBlock Text={Binding Path=Text, ElementName=myTextBox} />
答案 1 :(得分:0)
我能够解决问题。 Yazan,您建议使用此代码DID工作:
<DataGridTextColumn Binding="{Binding Path=query}" />
然而,我失踪了{get;组;用于SearchObject的“参数”成员变量。当我添加这些时,一切正常:
public class SearchObject : ISerializable
{
public SearchParameters parameters { get; set; }
再次感谢您的帮助!