我是WPF的新手,我想要做的事情如下。這是我的XAML代碼:WPF MVVM - 如何在運行時動態地更改樣式
...
<DataGridTextColumn Binding="{Binding ShippingNumber}" Header="出荷No." ElementStyle="{DynamicResource TextAlignCenter}" IsReadOnly="True"/>
<DataGridTextColumn Binding="{Binding DivisionDisplay}" Header="區分" ElementStyle="{DynamicResource TextAlignCenter}" IsReadOnly="True"/>
<DataGridTextColumn Binding="{Binding ShippingDestinationCode}" Header="出荷先コード" ElementStyle="{DynamicResource TextAlignCenter}" IsReadOnly="True"/>
<DataGridTextColumn Binding="{Binding ShippingDestinationNameDisplay}" Header="出荷先名" ElementStyle="{DynamicResource TextAlignCenter}" IsReadOnly="True"/>
<DataGridTextColumn.ElementStyle>
<Style TargetType="TextBlock">
<Setter Property="TextAlignment" Value="Center"/>
<Setter Property="Width" Value="{Binding DataContext.CustomWidth, ElementName=Page}"/>
</Style>
</DataGridTextColumn.ElementStyle>
</DataGridTextColumn>
所有的邏輯代碼,我在視圖模型寫(不允許在代碼隱藏),在虛擬機的構造我設置屬性CustomWidth = 500
和搜索按鈕我的RelayCommand
行動將值更改爲300.在第一次運行(加載事件)時將ctrl寬度增加到500是可以的,但是然後單擊搜索按鈕將其縮小到300,沒有任何發生。
任何人都可以告訴我爲什麼它沒有影響,以及如何使它工作?提前致謝。
您的標記無效。 ShippingDestinationNameDisplay列具有自閉標籤,並且元素樣式設置了兩次。雖然你的問題是不同的,我只是注意到它。 – niksofteng