ImJ*_*mes 11 wpf xaml binding contentcontrol
任何人都可以告诉我为什么这会崩溃我的应用程序?似乎有一些无休止的递归,我无法弄清楚为什么.我得到了这个例外
遍历树时超出了逻辑树深度.这可能表明树中有一个循环
<ContentControl Content="{Binding}">
<ContentControl.ContentTemplate>
<DataTemplate>
<Button Content="{Binding MyString}"/>
</DataTemplate>
</ContentControl.ContentTemplate>
</ContentControl>
Run Code Online (Sandbox Code Playgroud)
这就是我所拥有的所有资源
public MainWindow()
{
InitializeComponent();
MyString = "Test";
this.DataContext = this;
}
public string MyString { get; set; }
Run Code Online (Sandbox Code Playgroud)
Joh*_*wen 17
您使用MainWindow作为MainWindow内容的DataContext.在Content="{Binding}"ContentControl上设置时,这会将ContentControl的内容设置为MainWindow实例.这是一个问题,因为ContentControl包含在MainWindow的内容中.每当Content属性接收到UIElement时,它都会将其呈现为UIElement,而不是像非UI类那样通过DataTemplate呈现.所以你的树最终成了
MainWindow
ContentControl
MainWindow
ContentControl
...
Run Code Online (Sandbox Code Playgroud)
为DataContext使用单独的数据对象而不是窗口本身将为您提供您正在寻找的行为:
public partial class Window13 : Window
{
public Window13()
{
InitializeComponent();
MyData data = new MyData();
data.MyString = "Test";
this.DataContext = data;
}
}
public class MyData
{
public string MyString { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3923 次 |
| 最近记录: |