ในมุมมอง:
<Button
Height="50" Width="50"
Style="{StaticResource MyButtonStyle}"
Command="{Binding SmallDisp}" CommandParameter="{Binding}"
Cursor="Hand" Visibility="{Binding Path=AdvancedFormat}"/>
ในมุมมองโมเดล:
public _advancedFormat = Visibility.visible (whatever you start with)
public Visibility AdvancedFormat
{
get{return _advancedFormat;}
set{
_advancedFormat = value;
//raise property changed here
}
คุณจะต้องมีเหตุการณ์เปลี่ยนแปลงคุณสมบัติ
protected virtual void OnPropertyChanged(PropertyChangedEventArgs e)
{
PropertyChanged.Raise(this, e);
}
protected void OnPropertyChanged(string propertyName)
{
OnPropertyChanged(new PropertyChangedEventArgs(propertyName));
}
นี่คือวิธีที่พวกเขาใช้ Model-view-viewmodel
แต่เนื่องจากคุณต้องการให้มันเชื่อมโยงกับบูลีนคุณจึงต้องมีตัวแปลง อีกวิธีหนึ่งคือการตั้งค่าบูลีนภายนอกและเมื่อคลิกปุ่มนั้นแล้วให้ตั้งค่า property_advancedFormat เป็นระดับการมองเห็นที่คุณต้องการ