簡體   English   中英

如何將水印和自定義屬性都分配給TextBox的Text屬性? (MahApps)

[英]How to assign both Watermark and a custom property to a TextBox's Text property? (MahApps)

我在TextBox中創建合適的水印時遇到問題。

我在項目中使用MahApps,只要不將“文本”綁定到自定義屬性,一切都可以正常工作。

但是我需要跟蹤TextBox中的更改,因此我像這樣綁定Text屬性:

<TextBox controls:TextboxHelper.Watermark="Enter text here..." Text="{Binding Path=MyProperty}" />

在這種情況下,水印屬性停止工作,當我開始鍵入時水印文本不會消失。

如何提供幫助? 謝謝!

更新這是har07制作的示例的窗口。 在下部未綁定的TextBox中,水印按預期方式工作。 但是,當我嘗試在第一個TextBox中鍵入smth時,水印仍然存在。 在此處輸入圖片說明

UPDATE2以防萬一有人會犯同樣的錯誤-似乎我在初始化窗口時確實在代碼中設置了我的屬性,這就是水印不起作用的原因。 現在,感謝har07,一切都很好。

正如我在評論中所說,設置水印和Text綁定應該沒有任何問題。 我使用2個文本框進行了簡單的測試,一個Text框綁定了Text屬性,另一個未綁定。 兩者都表現出相同的行為: 水印文本由鍵入的文本替換,並且在文本框失去焦點時變暗

//View
<Controls:MetroWindow x:Class="WpfMahApps.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:Controls="clr-namespace:MahApps.Metro.Controls;assembly=MahApps.Metro"
        xmlns:local="clr-namespace:WpfMahApps"
        Title="StackOverflow" Height="500" Width="625"
        WindowStartupLocation="CenterScreen">
    <Grid>
        <Grid.DataContext>
            <local:Person/>
        </Grid.DataContext>
        <StackPanel>
            <TextBox Text="{Binding Name}" Controls:TextboxHelper.Watermark="Enter text here...."/>
            <TextBox Controls:TextboxHelper.Watermark="Enter text here too...."/>
        </StackPanel>
    </Grid>
</Controls:MetroWindow>

//Model (I'm using MvvmLight for implementation of INPC)
public class Person : ObservableObject
{
    private string _name = "Default Name";
    public String Name
    {
        get { return _name; }
        set
        {
            _name = value;
            RaisePropertyChanged(() => Name);
        }
    }
}

下載測試項目

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM