2016-05-25 55 views
-2

以下是我的代碼相對於在另一個用戶控件發現一個samewindow一個CheckBoxControl覈對房產禁用一個用戶控件通過XAML

   <myusrcontrol:settings x:Name="usr1" /> 

     </TabItem> 
     <TabItem> 
      <TabItem.Content> 

        <Grid> 
         <myusrcontrol:abcselection x:Name="usr2" Height="Auto" /> 
        </Grid> 

      </TabItem.Content> 
     </TabItem> 

在上面的代碼,我想禁用「 USR2" 就在發現CheckBoxControl覈對房產‘USR1’只通過XAML,

請讓我知道是否有任何解決方案,

感謝一個dvance

+0

@Slyvain,這不是重複,這裏是不同的用戶控件 – SiddarthVarunesh

+0

的問題是完全一樣的:你有一個自定義控制'usr2' taht您希望禁用或基於'usr1'控件的'CheckBoxControl-Checked'屬性啓用。更改控件和屬性的名稱,並且您有解決方案,關鍵是ElementName上的綁定。 – Slyvain

+0

@Slyvain,你能告訴我如何調用像「ElementName = usr1.CheckBox1」這樣的用戶控件的內部元素。我試過了,但它不起作用 – SiddarthVarunesh

回答

0

的情況比我爲重複提到的職位更復雜一點,所以這裏是一個有效的解決方案:

據我所知,你需要在創建DependencyProperty(DP)的用戶控件與複選框並將Checkbox.IsChecked屬性綁定到此DP。 然後,您可以將您的usr2控件綁定到DP上。

下面是代碼:

usr1.xaml

<UserControl [...]> 
    <Grid> 
     <CheckBox x:Name="MyCheckbox" IsChecked="{Binding RelativeSource={RelativeSource AncestorType={x:Type local:usr1}}, Path=MyCheckboxIsChecked, Mode=TwoWay}" /> 
    </Grid> 
</UserControl> 

usr1.xaml.cs(代碼後面)

public partial class usr1: UserControl 
    { 
     public usr1() 
     { 
     InitializeComponent(); 
     } 

     public static readonly DependencyProperty MyCheckboxIsCheckedProperty = DependencyProperty.Register(
     "MyCheckboxIsChecked", typeof(bool), typeof(usr1), new PropertyMetadata(default(bool))); 

     public bool MyCheckboxIsChecked 
     { 
     get 
     { 
      return (bool)GetValue(MyCheckboxIsCheckedProperty); 
     } 
     set 
     { 
      SetValue(MyCheckboxIsCheckedProperty, value); 
     } 
     } 
    } 

usr2.xaml

<UserControl [...]> 
    <Grid> 
     <TextBox x:Name="MyTextBox" /> 
    </Grid> 
</UserControl> 

MainWindow.xaml

<Grid> 
     <StackPanel> 
     <local:usr1 x:Name="usr1Control" /> 
     <local:usr2 IsEnabled="{Binding ElementName=usr1Control, Path=MyCheckboxIsChecked}" /> 
     </StackPanel> 
    </Grid> 
+0

感謝@slyvain的幫助 – SiddarthVarunesh

+0

不客氣!如果它幫助你,請將此答案標記爲「已接受」;) – Slyvain

相關問題