如何在单独的 xaml 文件中绑定元素?
How to bind elements in separate xaml files?
我有一个 MainWindow.xmal 有两个 TabItems:
<TabItem Header="Config" ... />
<TabItem Header="Results" ... />
我有一个单独的 Config.xaml 文件用于 Config TabItem,它有一个 ListBox:
<ListBox Name="UrlConfig" ... />
我有另一个单独的 Results.xaml 文件用于结果 TabItem,它有一个 TaxtBlock:
<TextBlock Name="Url" .../>
问题是我想将 ListBox 中的选定值绑定到 TextBlock。我怎样才能做到这一点?请帮助:)
如果您在 mvvm way you can bind those to a property on your viewmodel and set the DataContext 中工作,则针对该视图模型
我建议您使用 MVVM,但如果没有,您可以仅使用 XAML 来实现它:
使用单独的资源,例如 "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 代码:
<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>
我有一个 MainWindow.xmal 有两个 TabItems:
<TabItem Header="Config" ... />
<TabItem Header="Results" ... />
我有一个单独的 Config.xaml 文件用于 Config TabItem,它有一个 ListBox:
<ListBox Name="UrlConfig" ... />
我有另一个单独的 Results.xaml 文件用于结果 TabItem,它有一个 TaxtBlock:
<TextBlock Name="Url" .../>
问题是我想将 ListBox 中的选定值绑定到 TextBlock。我怎样才能做到这一点?请帮助:)
如果您在 mvvm way you can bind those to a property on your viewmodel and set the DataContext 中工作,则针对该视图模型
我建议您使用 MVVM,但如果没有,您可以仅使用 XAML 来实现它:
使用单独的资源,例如 "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 代码:
<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>