WPF - 如何在单独的xmal文件中绑定元素?

时间:2015-02-01 21:04:32

标签: c# wpf xaml data-binding

我有一个MainWindow.xmal,它有两个TabItems:

<TabItem Header="Config" ... />
<TabItem Header="Results" ... />

我有一个独立的Config.xaml文件,用于Config TabItem,它有一个ListBox:

<ListBox Name="UrlConfig" ... />

我有另一个单独的Results.xaml文件,用于具有TaxtBlock的Results TabItem:

<TextBlock Name="Url" .../>

问题是我想将ListBox中的选定值绑定到TextBlock。我怎样才能做到这一点?请帮助:)

2 个答案:

答案 0 :(得分:1)

如果您使用mvvm方式工作,可以将它们绑定到viewmodel上的属性,并将DataContext for设置为该vi​​ewmodel

答案 1 :(得分:1)

我建议您使用MVVM,但如果没有,您只能使用XAML实现它:

使用sepparate资源,例如“Bridge”'Config'和'Results'

Config.xaml:

<UserControl x:Key="Config">
<ListBox x:Name="ListBox1" SelectedItem="{Binding Source={StaticResource SelectedValue}, Path=Y, Mode=TwoWay}" >
<System:String>Minsk</System:String>
<System:String>London</System:String>
<System:String>NY</System:String>
</ListBox>
</UserControl>

Results.xaml

<UserControl x:Key="Results">
<Label Name="Url" Content="{Binding Source={StaticResource SelectedValue}, Path=Y}" />
</UserControl>

使用TabControl的窗口代码:

<Window.Resources>
<!--"Bridge" resource, here will be your own type-->
<X x:Key="SelectedValue" Y="Minsk"></X>
</Window.Resources>
<Grid>
<TabControl>
<TabItem Header="Config" Content="{StaticResource ResourceKey=Config}"/>
<TabItem Header="Results" Content="{StaticResource ResourceKey=Results}"/>
</TabControl>
</Grid>