<UserControl xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:toolkit="http://schemas.microsoft.com/winfx/2006/xaml/presentation/toolkit"
xmlns:System_Windows_Controls_Primitives="clr-namespace:System.Windows.Controls.Primitives;assembly=System.Windows.Controls.Toolkit"
x:Class="SilverlightApplication5.MainPage"
Width="640" Height="480">
<StackPanel x:Name="LayoutRoot" Background="White">
<TextBox x:Name="tbWidth" TextWrapping="Wrap"
Text="{Binding Mode=TwoWay, ValidatesOnExceptions=True, Path=RoomWidth}"/>
</StackPanel>
</UserControl>
RoomWidth - 属性。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;
namespace SilverlightApplication5
{
public partial class MainPage : UserControl
{
public MainPage()
{
InitializeComponent();
}
private int roomWidth = 10;
public int RoomWidth
{
get { return roomWidth; }
set
{
if (value < 0 || value > 100)
{
throw new Exception("Data not correct");
}
roomWidth = value;
}
}
}
}
我需要在这个类中添加Binding源代码。这是怎么回事?
答案 0 :(得分:3)
例如使用ElementName
:
<UserControl xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:toolkit="http://schemas.microsoft.com/winfx/2006/xaml/presentation/toolkit" xmlns:System_Windows_Controls_Primitives="clr-namespace:System.Windows.Controls.Primitives;assembly=System.Windows.Controls.Toolkit"
x:Class="SilverlightApplication5.MainPage"
Width="640" Height="480"
Name="control">
<!-- ... -->
<TextBox Text="{Binding ElementName=control, Mode=TwoWay, ValidatesOnExceptions=True, Path=RoomWidth}" x:Name="tbWidth" TextWrapping="Wrap"/>
如果您遇到类似基本绑定的问题,您可以阅读它。 (WPF / Silverlight)
答案 1 :(得分:1)
DataContext = this;
将它放在构造函数中。