我正試圖手動將數據重新綁定到ContentControl。手動將數據重新綁定到WPF ContentControl
<UserControl.Resources>
<local:MyModel x:Key="myModel" />
<DataTemplate DataType="{x:Type local:MyModel}">
<StackPanel>
<TextBlock Text="{Binding Path=Property1}"></TextBlock>
</StackPanel>
</DataTemplate>
</UserControl.Resources>
<Grid>
<ContentControl Content="{Binding Source={StaticResource myModel}}" Name="myView">
</ContentControl>
</Grid>
而且在後面
MyModel myModel = this.FindResource("myModel") as MyModel ;
myModel.Property1 = "Test";
var bindingExpression = myView.GetBindingExpression(ContentControl.ContentProperty);
bindingExpression.UpdateTarget();
但它似乎沒有工作的代碼,我缺少什麼?
模型是否實現INotifyPropertyChanged?調試輸出是否給出了任何綁定錯誤? – 2011-12-19 14:47:16
除了使用'cntView'命名你的ContentControl被命名爲'myview'和你的代碼隱藏之外,我不得不猜測它與綁定到StaticResource有關。靜態通常意味着它不會改變,所以WPF綁定一次並忘記它。 – Rachel 2011-12-19 14:48:59
@Erno:沒有模型沒有實現INotifyPropertyChanged,但這就是爲什麼我試圖手動重新綁定數據。另外我沒有看到任何錯誤。 – exoz 2011-12-19 15:09:17