2012-09-04 5 views
1

다양한 바인딩 유형을 가지고 놀고 내 사용자 지정 컨트롤의 종속성 속성을 다른 속성에 바인딩하는 속성이 있습니다.사용자 지정 컨트롤 종속 속성을 속성에 바인딩

XAML : 뒤에

<UserControl x:Class="BrickBreaker.Brick" 
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
mc:Ignorable="d" 
d:DesignHeight="20" d:DesignWidth="50" > 
<Rectangle Width="50" Height="20" RadiusX="3" RadiusY="3" Stroke="Black" Fill="{Binding BrickFill, Mode=TwoWay}" /> 

코드 :

<UserControl x:Class="BrickBreaker.MainPage" 
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:BrickBreaker="clr-namespace:BrickBreaker" mc:Ignorable="d" 
d:DesignHeight="300" d:DesignWidth="400"> 

<Grid x:Name="LayoutRoot" Background="White"> 
    <BrickBreaker:Brick Margin="100,100,0,0" BrickFill="Azure"/> 
</Grid> 

,691 MainWindow.xaml에서

public partial class Brick : UserControl 
{ 
    public Brick() 
    { 
     InitializeComponent(); 

    } 

    public Brush BrickFill 
    { 
     get { return (Brush)GetValue(BrickFillProperty); } 
     set { SetValue(BrickFillProperty, value); } 
    } 

    // Using a DependencyProperty as the backing store for BrickFill. This enables animation, styling, binding, etc... 
    public static readonly DependencyProperty BrickFillProperty = 
     DependencyProperty.Register("BrickFill", typeof(Brush), typeof(Brick), null); 



} 

된 구현

기본적으로 Rectangle Fill 속성을 코드 종속성 속성에 바인딩하려고합니다.

감사합니다.

스티브

답변

1

정확히 어떤 문제가 있습니까? 의 UserControl의 DataContext는 코드 숨김으로 설정, 같은 :

<UserControl DataContext="{Binding RelativeSource={RelativeSource Self}}"> 

</UserControl> 
0

이 누락 :의 DataContext = "{바인딩은 RelativeSource = {RelativeSource 자체}}"

관련 문제