2012-11-17 59 views
1

我有一個WPF列表框,我綁定到一些元素(這是我不能定製)。 綁定本身也是一個密封類。WPF顯示成員路徑的參數方法

元素有一個ToString,它接受一個CultureInfo參數。 我想綁定到特定的表示 - 通過傳遞該參數(我會從運行線程得到它)。 是否有指定綁定來顯示特定的表示?

XAML:

<ListBox Height="212" HorizontalAlignment="Left" Margin="6,6,0,0" 
    Name="listBoxTriggers" VerticalAlignment="Top" Width="183" /> 

物品來源:

listBoxTriggers.ItemsSource = _triggers 

而後面的代碼(我想調用的方法)

trigger.ToString(cultureInfo); 

回答

1

注:有使用一個很好的選擇轉換器在this link

如果我理解正確,您希望ListBox使用特定文化顯示ToString()。雖然這可能是可能的(見上面提到的鏈接),但是解決方法是使用一個DTO,其中包含您正在查找的觸發器的ID和ToString()表示。

public class TriggerDto 
{ 
    public int TriggerId { get; set; } 
    public string TriggerName { get; set; } 
} 

創建一個新的列表,然後遍歷所有的觸發器,添加新的TriggerDto對象。

List<TriggerDto> triggerDtos = new List<TriggerDto>(); 

foreach (Trigger trigger in _triggers) 
{ 
    triggerDtos.Add(new TriggerDto() { Id = trigger.Id, TriggerName = trigger.ToString(cultureInfo) }); 
} 

this.TriggerDtos = triggerDtos; 

將您的綁定設置爲TriggerDtos。

當用戶選擇一個TriggerDto時,你只需要使用它的ID來獲取你想要工作的真正的Trigger對象。

免責聲明:這裏可能有錯別字。我將代碼直接輸入到答案中,而不是在Visual Studio中。