我有一個GridViewColumn列出檔案路徑的檔案。我有一個檔案監視程式,如果檔案被移出監視目錄,我想遍歷我的GridViewColumn.
這是我的 XAML GridViewColumn:
<GridViewColumn x:Name="FileNameHeader" Header="File Name" DisplayMemberBinding="{Binding filename}" />
我可以向結構中添加一個屬性,其中包含filename如果檔案丟失FileExists()將回傳的屬性。false然后,我只需要一種設定洗掉線文本的方法。我可以使用某種樣式嗎?
uj5u.com熱心網友回復:
bool您可以在檔案結構中添加例如型別的屬性,Exists以指示檔案是否存在。不要忘記實作INotifyPropertyChanged ,以便對屬性的更改反映在用戶界面中。在下文中,我假設您的檔案結構是一個名為FileData. 確保將其更改為專案中的真實姓名。我將屬性名稱更改filename為Filename. 遵循通用命名準則是一種很好的做法,請參閱大寫約定以供參考。
為了將洗掉線應用于文本,您需要創建一個 custom CellTemplate,因為沒有直接的方法來設定列的樣式。在DataTemplate你創建一個TextBlock來顯示Filename. TextBlock向with添加一個樣式,根據檔案結構的屬性DataTrigger設定文本裝飾。StrikethroughExists
<GridViewColumn x:Name="FileNameHeader" Header="File Name">
<GridViewColumn.CellTemplate>
<DataTemplate DataType="{x:Type local:FileData}">
<TextBlock Text="{Binding Filename}">
<TextBlock.Style>
<Style TargetType="{x:Type TextBlock}">
<Style.Triggers>
<DataTrigger Binding="{Binding Exists}" Value="False">
<Setter Property="TextDecorations" Value="Strikethrough"/>
</DataTrigger>
</Style.Triggers>
</Style>
</TextBlock.Style>
</TextBlock>
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
您不一定需要設定DataType,但它有助于在編輯器中自動完成。
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/458842.html
