我确实需要一些帮助。组合框通过显示 Xml 数据按照我想要的方式工作。数据网格正在工作,从 Xml 数据中提取单个记录。我正在努力做的是以下我正在努力解决的问题。
我玩过多种东西,例如多重绑定,但我似乎无法让它正常工作。任何帮助将不胜感激。
<Window.Resources>
<!-- Data. -->
<XmlDataProvider x:Key="Schedules" XPath="Schedules">
<x:XData>
<Schedules xmlns="">
<Schedule Id="0" Name="Week-1" Saturday="0" Sunday="0" Monday="7.5" Tuesday="7.5" Wednesday="7.5" Thursday="7.5" Friday="7.5" />
<Schedule Id="1" Name="Week-2" Saturday="0" Sunday="0" Monday="7.5" Tuesday="7.5" Wednesday="7.5" Thursday="7.5" Friday="7.5" />
<Schedule Id="2" Name="Week-3" Saturday="7.5" Sunday="7.5" Monday="7.5" Tuesday="7.5" Wednesday="7.5" Thursday="0" Friday="0" />
</Schedules>
</x:XData>
</XmlDataProvider>
</Window.Resources>
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto" />
<RowDefinition Height="Auto" />
</Grid.RowDefinitions>
<StackPanel Grid.Row="0">
<ComboBox Name="SchedulesComboBox" Width="200" Height="40" VerticalContentAlignment="Center"
ItemsSource="{Binding XPath=//Schedule/@Name, Source={StaticResource Schedules}}" />
</StackPanel>
<StackPanel Grid.Row="0">
<DataGrid Name="DataGrid" Margin="0, 25, 0, 0" Grid.Row="1" ItemsSource="{Binding XPath=//*[@Id\=\'1\'],
Source={StaticResource Schedules}, IsAsync=True}" AutoGenerateColumns="False">
<DataGrid.Columns>
<DataGridComboBoxColumn Header="Schedule" Width="200" />
<DataGridTextColumn Header="Saturday" Width="100" Binding="{Binding XPath=@Saturday}" />
<DataGridTextColumn Header="Sunday" Width="100" Binding="{Binding XPath=@Sunday}" />
<DataGridTextColumn Header="Monday" Width="100" Binding="{Binding XPath=@Monday}" />
<DataGridTextColumn Header="Tuesday" Width="100" Binding="{Binding XPath=@Tuesday}" />
<DataGridTextColumn Header="Wednesday" Width="100" Binding="{Binding XPath=@Wednesday}" />
<DataGridTextColumn Header="Thursday" Width="100" Binding="{Binding XPath=@Thursday}" />
<DataGridTextColumn Header="Friday" Width="100" Binding="{Binding XPath=@Friday}" />
</DataGrid.Columns>
</DataGrid>
</StackPanel>
</Grid>
我从未使用过 XPath,我可以提供的唯一提示是使用 ViewModel,将 ComboBox 的 SelectedItem 绑定到视图模型,并将 DataGrid.ItemsSource 绑定到视图模型中的某些派生属性。
或者这不是一个选择?