我需要一種方法來檢測特定標簽元素何時設定了文本值。這在應用程式加載時以編程方式發生。我查詢共享點,并獲取檔案串列。對于每個檔案,我會顯示它是否已簽出。
如果該檔案被簽出,那么我想在本地計算機中搜索一個自定義令牌檔案,以確定它是否是當前用戶簽出的。如果我在本地計算機上找到特定檔案的相應標記,我想將當前顯示的文本/圖示的顏色更改為紅色。
問題
此時,檔案的初始串列正確顯示,并且......當 DriveItem.Publication.Level 檢出時顯示特定圖示的邏輯作業正常。但是在我嘗試檢測何時設定結帳圖示的新事件處理程式中,我不知道如何:a) 僅檢查對特定標簽的更改。b) 獲取關聯檔案的名稱(另一個標簽元素) c) 以編程方式更改圖示的顏色。
到目前為止,我有以下代碼:
XAML
根據我的研究,我知道由于標簽沒有 textchanged 事件,我必須為整個類添加一個事件處理程式。注意下面的“PropertyChanged="SPDocumentLibraryContentsChanged”:
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://xamarin.com/schemas/2014/forms"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:local="clr-namespace:GraphTutorial.Models"
Title="Shared Document Library"
x:Class="GraphTutorial.SPDocumentLibraryContentsPage"
PropertyChanged="SPDocumentLibraryContentsChanged">
后來我有以下元素。這是我需要評估和更改顏色的結帳狀態,如果它設定為“結帳”
<Label Grid.Column="0" Text="{Binding Path=DriveItem.Name}" FontSize="Small" />
<Label Grid.Column="1" x:Name="CheckoutStatus" Text="{Binding Path=DriveItem.Publication.Level,Converter={StaticResource IconValueConverter}}" FontFamily="Segoe MDL2 Assets" FontSize="Small"/>
客戶服務代碼
這就是我的問題所在。首先,我似乎無法捕獲正確的屬性名稱。我試過了
- DriveItem.Publication.Level
- 等級
但兩者似乎都不起作用。
private void SPDocumentLibraryContentsChanged(object sender, PropertyChangedEventArgs e)
{
if (e.PropertyName == "Level")
{
Console.WriteLine(sender);
Console.Write(e);
}
我試圖遵循的示例是: 標簽文本更改時處理事件
任何提示將不勝感激。
uj5u.com熱心網友回復:
如何檢測 xamarin UWP 應用程式中標簽元素的文本值更改?
標簽包含PropertyChanged事件,您可以監聽它以檢查當前Text屬性是否更改。
例如
MyLabel.PropertyChanged = MyLabel_PropertyChanged;
private void MyLabel_PropertyChanged(object sender, PropertyChangedEventArgs e)
{
if (e.PropertyName == "Text")
{
// process logic
}
}
如果你想從視圖模型中監聽系結屬性,你需要為你的視圖模型添加事件處理程式。更多請參考本案例回復
例如
public MyClass() => PropertyChanged = MyClass_PropertyChanged;
private void MyClass_PropertyChanged(object sender, System.ComponentModel.PropertyChangedEventArgs e)
{
if (e.PropertyName == nameof(LocationName) || e.PropertyName == nameof(SubLocationName))
{
RaisePropertyChanged(nameof(LocationCompleteString));
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/338108.html
