我想要一個文本框,它將始終在綁定上應用Converter。這種方式我不需要指定轉換器,樣式將已經包含轉換器使用。樣式綁定選項
這是我已經嘗試過:
我有一個綁定查看視圖模型。我使用視圖模型的屬性覆蓋此視圖中文本框的datacontext。它可以讓我用一個通用的風格對我的文本框中
我有以下形式:
<Style x:Key="DateTimeTextBox" TargetType="TextBox">
<Setter Property="ToolTipService.ShowDuration" Value ="40000"/>
<Setter Property="Text" Value ="{Binding Path=.,Converter={StaticResource myConverter},UpdateSourceTrigger=PropertyChanged}"/>
<Style.Triggers>
<Trigger Property="Validation.HasError" Value="true">
<Setter Property="ToolTip" Value="Unknown date format"/>
</Trigger>
</Style.Triggers>
</Style>
在我想有綁定在porperty DateTimeValueToBind而不是整個視圖下面的文本框的觀點型號:
<TextBox Style="{StaticResource DateTimeTextBox}" DataContext="{Binding DateTimeValueToBind}"/>
酒店DateTimeValueToBind在文本框不過它不再束縛正常顯示(當我修改它,視圖模型屬性沒有改變)
我試圖在綁定選項中添加Mode = TwoWay,但它沒有改變任何東西。
可以解釋爲什麼DateTimeValueToBind屬性在此上下文中不再綁定?
預先感謝
你是什麼意思與「不再限制; viewmodel屬性沒有改變」?如果您修改了DataContext,那麼CLR屬性需要提出,否則UI將保存對舊視圖模型的引用。如果您正確地提出DataTimeValueToBind,它應該自動重新顯示Text屬性。通過將PresentationTraceSources.TraceLevel = High添加到綁定標記中,您可以更好地瞭解綁定的工作方式。 – dowhilefor 2012-02-13 13:14:20
@dowhilefor:我不修改datacontext實例,我只是想將綁定委託給文本框,以便在我的樣式(數據轉換器)中爲此上下文使用一些通用綁定選項。我可以簡單地綁定在Text屬性上,但在這種情況下,我總是需要指定轉換器以及我想將轉換過程放入樣式中。 – Guillaume 2012-02-13 13:26:41