我是Xaml和綁定概念的新手。如何將MainClass的'CustomerName'屬性與XAML中'TextBox1'的文本內容綁定?如何將文本框文本與其他類屬性綁定?
這裏是我的MainClass,
namespace TextBinding.Module
{
public class MainClass
{
public string CustomerName { get; set; }
}
}
我的XAML代碼是,
<UserControl x:Class="TextBinding.Design.ControlDesigner"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:TestControl="clr-namespace:TextBinding.Module"
mc:Ignorable="d" d:DesignHeight="1000" d:DesignWidth="1000">
<TestControl:MainClass x:Key="Test1" />
<Grid>
<TextBox x:Name="TextBox1" Height="50" Text="{Binding Test1.CustomerName, Mode=TwoWay}" />
</Grid>
</UserControl>
這上面的方法是行不通的。任何人都可以提出更好的綁定方式嗎?提前致謝。
看到https://msdn.microsoft.com/en -us/library/system.componentmodel.inotifypropertychanged(v = vs.110).aspx –
_「根本不工作」_ - 堆棧溢出問題預計會有比這更精確的問題陳述。也就是說,你發佈的代碼看起來並不合理;它令人困惑,爲什麼你認爲這應該工作。請閱讀文檔,並按照其中的一些示例進行操作。如果這不能解決你的誤解,請查看網上的各種教程,甚至是Stack Overflow中的數據綁定問題,以獲得更多有用的示例,這些示例將告訴你正確的方法。在發佈更多問題之前,請閱讀[mcve]和[問]。 –
就上述情況而言,您的'MainClass'對象不應該是UserControl的子對象,也不應該是資源。因爲它是一個'UserControl',所以你想避免將它作爲'UserControl'本身的'DataContext',但是你可以將它設置爲'DataContext'。 'UserControl'中的'Grid'。然後你可以綁定到'CustomerName'而不是'Test1.CustomerName',它應該可以工作。 –