如何覆盖子面板中的父datacontext

时间:2012-02-06 19:22:47

标签: wpf data-binding datagrid wpf-controls

我想覆盖其中一个子面板(stackpanel)中的父(grid)datacontext, 这样任何stackpanel,xml文件中的任何更新都会相应地更新。

最初我在XmlDataProvider中有XPath =“/ Data / MB”属性。因此,只有文本框5和6中的此绑定才成功。

最后我做了以下的事情。这很好。

<Grid> 
    <Grid.DataContext> 
        <XmlDataProvider x:Name="Credentials" Source="Credentials.xml"/> 
    </Grid.DataContext> 
    <StackPanel> 
            <TextBox Height="23" Name="textBox5" Width="188" Text="{Binding XPath=/Credentials/MessageBroker/Hostname}" /> 
            <TextBox Height="23" Name="textBox6" Width="188" Text="{Binding XPath=/Credentials/MessageBroker/Port}"/> 
    </StackPanel> 
    <StackPanel> 
            <TextBox Height="23" Name="textBox9" Width="188" Text="{Binding XPath=/Credentials/Database/Server}" /> 
            <TextBox Height="23" Name="textBox10" Width="188" Text="{Binding XPath=/Credentials/Database/Password}"/> 
    </StackPanel> 
</Grid>

这是Credentials.xml

<?xml version="1.0" encoding="utf-8"?> 
<Credentials> 
<MB> 
  <Hostname>145.111.227.222</Hostname> 
  <Port>5672</Port> 
  <UserName>Admin</UserName> 
  <Password>Admin</Password> 
</MB> 
<Database> 
  <Server>145.111.227.234</Server> 
  <UserID>Administrator</UserID> 
  <Password>password</Password> 
</Database> 

有没有更好的方法呢?

请告诉我。

0 个答案:

没有答案