Custom_View.xaml
<UserControl>
<local:Custom_Text_Field
Custom_Text_Field_Color="{x:Bind ViewModel.Color1 , Mode=TwoWay}">
</local:Custom_Text_Field>
<local:Custom_Text_Field
Custom_Text_Field_Color="{x:Bind ViewModel.Color2 , Mode=TwoWay}">
</local:Custom_Text_Field>
<Button Click="{x:Bind ViewModel.ChangeColor"/>
</UserControl>
Custom_View.cs
public sealed partial class Custom_View : UserControl
{
public Custom_View_VM ViewModel { get; set; }
public Custom_View()
{
ViewModel = new Custom_View_VM();
this.InitializeComponent();
}
}
Custom_View_VM.cs
public class Custom_View_VM : NotificationBase
{
public Brush Color1 { get; set; }
public Brush Color2 { get; set; }
public void ChangeColor{//change color1 or color2};
}
數據綁定的問題,我用的NotificationBase類從這個例子:https://blogs.msdn.microsoft.com/johnshews_blog/2015/09/09/a-minimal-mvvm-uwp-app/使用NotificationBase
如果我影響在CONSTRUCTEUR爲COLOR1或COLOR2值,它的工作(更改視圖),但在通話結束後ChangeColor,View模型中的值會更改,但不會影響視圖。
通常你會在代碼隱藏而不是ViewModel中創建DependencyProperties。控件的使用者可以將你控制的依賴屬性綁定到他們的ViewModel。 – markmnl
感謝您的回答,我在後面的Custom_Text_Field代碼中創建了DependencyProperties,我爲我的Custom_View創建了ViewModel,因爲UI比我的例子更復雜,並且他與Web服務中的數據鏈接在一起:( – sasukaru
有2個不同的這裏的綁定類型:綁定到後面的代碼(使用Dependancy Property)並綁定到ViewModel(使用INotifyPropertyChanged) - 不清楚哪一個不起作用:Border(帶有DP)或Text Fields(綁定到VM )? –