0
我定义自己的控制 - NameInfoControl
,这是基于UserControl
彻底XAML:如何通过XAML设置`myListView`的值?
<UserControl x:Class="AcadLoadManager.NameInfoControl"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
mc:Ignorable="d"
d:DesignHeight="300" d:DesignWidth="300">
<Grid>
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<ToolBar>
<Button x:Name="btnAdd" x:FieldModifier="public" ToolTip="Add record" >
<Image Source="/AcadLoadManager;component/Icons/bullet_sparkle.png" Width="16"/>
</Button>
<Button x:Name="btnEdit" x:FieldModifier="public" ToolTip="Edit record">
<Image Source="/AcadLoadManager;component/Icons/bullet_edit.png" Width="16"/>
</Button>
<Button x:Name="btnRemove" x:FieldModifier="public" ToolTip="Remove record">
<Image Source="/AcadLoadManager;component/Icons/bullet_cross.png" Width="16"/>
</Button>
</ToolBar>
<ListView x:Name="myListView" x:FieldModifier="public" Margin="3" Grid.Row="1">
<ListView.View>
<GridView>
<GridViewColumn Width="100" Header="Global name"
DisplayMemberBinding="{Binding GlobalName}"/>
<GridViewColumn Width="100" Header="Local name"
DisplayMemberBinding="{Binding LocalName}"/>
</GridView>
</ListView.View>
</ListView>
</Grid>
</Grid>
</UserControl>
它看起来如此:
我的控制已经ListView
项目,命名为 myListView。如何通过XAML为实例设置ItemsSource
属性 myListView的值?我需要它在下面的代码:
<GroupBox Header="Command groups:" Grid.Column="0" Grid.Row="1" Margin="5">
<local:NameInfoControl/>
</GroupBox>
+1只需在最后一行中将Binging更改为BinDing即可。 – Blachshma
但是,我必须从'ListBox.SelectedItem.Items'获取项目源,它们位于'MainWindow'上。我的'NameInfoControl'实例也位于这个窗口上,bot作为嵌套在其他控件中。我试过这样的代码:'DataContext =“{Binding ElementName = lstAcads,Path = SelectedItem}”ItemsSource =“{Binding Path = HKLMApplications}”'但它不适用于我。 –
将一个新属性添加到包含SelectedItems的主窗口中并与之绑定。看起来你已经到了一个复杂的地步,你应该开始考虑使用MVVM模式。 – bitbonk