在左侧,我在列表视图中显示我的文件和站点,在右边我想在一种信息框(带标签的网格)中显示名称,站点数量等。 那么当我在listview中选择它时,如何将list [index] .name绑定到名称标签?
或者我应该使用Selection Changed Event?
答案 0 :(得分:0)
您可以将GridView的SelectedItem
属性绑定到ViewModel上的属性:
<DataGrid SelectedItem="{Binding SelectedItem, Mode=TwoWay}" >
.....
</DataGrid>
并在SelectedItem属性中:
private YourItemType_selectedItem;
public YourItemType SelectedItem
{
get { return _selectedItem; }
set
{
if(value != _selectedItem)
{
_selectedItem = value;
NotifyOfPropertyChange("SelectedItem");
// notify InfoBox property changed
NotifyOfPropertyChange("InfoBoxItem");
}
}
}
答案 1 :(得分:0)
您可以将InfoBox中的TextBlocks / TextBox绑定到ListView的SelectedItem属性。
给ListView一个x:名称:
<ListView x:Name="listView">
<ListView.View>
<GridView>
<GridViewColumn Width="160" DisplayMemberBinding="{Binding Pos}" Header="Pos." />
<GridViewColumn Width="160" DisplayMemberBinding="{Binding Name}" Header="Name" />
<GridViewColumn Width="160" DisplayMemberBinding="{Binding Seitenzahl}" Header="Seitenzahl" />
</GridView>
</ListView.View>
</ListView>
...并使用ElementName绑定:
<TextBlock Text="{Binding SelectedItem.Name, ElementName=listView}" />
<TextBlock Text="{Binding SelectedItem.Pos, ElementName=listView}" />
<TextBlock Text="{Binding SelectedItem.Seitenzahl, ElementName=listView}" />
&#34;姓名&#34;,&#34; Pos&#34;和&#34; Seitenzahl&#34;是绑定到的相同属性的名称,并显示在ListView的列中。