2012-01-01 40 views
0

我有一個自定義控件從TextBox繼承了名爲State的dependcy屬性。 狀態枚舉有4個選項{不匹配,等等,好吧,無}綁定到CustomControls問題

的一般是這樣的:

<Style TargetType="{x:Type local:CustomTextBox}"> 
    <Style.Triggers> 
     <Trigger Property="State" Value="Mismatch"> 
      <Setter Property="Background" Value="{StaticResource MismatchBrush}"/> 
     </Trigger> 
    </Style.Triggers> 

    <Setter Property="Template"> 
     <Setter.Value> 
      <ControlTemplate TargetType="{x:Type local:CustomTextBox}"> 
       <Border Background="{TemplateBinding Background}" 
         BorederBrush="{TemplateBinding BorederBrush}" 
         BorderThickness="{TemplateBinding BorderThickness}" 
       </Border> 
      </ControlTemplate> 
     </Setter.Value> 
    </Setter> 

我有類命名邁德特與性能DataState,已發送,收到的每個屬性執行INotifyPropertyChanged。

在我的主窗口,我在XAML下面一行:

<custom:CustomTextBox State="{Binding BindingData.DataState}" Text="{Binding BindedData.Sent}"/> 

,並在我的視圖模型我有一個從類型MyData的字段名爲BindedData,當用戶發送一些數據BindedData.Sent變化那麼如果發生某種邏輯,BindedData狀態將更改爲「不匹配」,並且customTextBox背景需要處於某種顏色。

問題是背景沒有改變它的意思是狀態的綁定不工作,而且文本綁定不起作用。

我知道如何在其他情況下綁定工作和我的工作(不與自定義控件),在這裏我也檢查了調試,我看到一切正常,所以我做錯了自定義控件?

在此先感謝!

+0

@Mat現在好嗎? – david 2012-01-01 21:13:27

回答

0

也許你從主窗口再次設置背景? 我試過複製你的代碼,它完美的工作,除非我從主窗口設置背景(因爲它覆蓋了樣式設置器)