2015-09-09 31 views
14

Mã mẫu của tôi bên dưới.Làm cách nào để chuyển chuỗi ký tự có dấu cách tới biến đổi tham số?

Tôi muốn chuyển 'Chuyển đến mục được liên kết' đến ConverterParameter nhưng tôi không thể vì chuỗi có dấu cách.

Text="{Binding Value, 
     Source={x:Static local:Dictionary.Instance}, 
     Converter={StaticResource StringConverter}, 
     ConverterParameter=Go to linked item, Mode=OneWay}" 

Tôi làm cách nào để thực hiện việc này?

+1

thế nào về 'ConverterParameter =' Tới liên kết item'' –

+0

cảm ơn bạn đã bình luận của bạn, nhưng nó không thể cũng có. T.T – SSgi88

+2

Xác định tài nguyên tĩnh cho chuỗi ký tự và sử dụng nó. –

Trả lời

11

Lựa chọn 1

Text="{Binding Value, 
     Source={x:Static local:Dictionary.Instance}, 
     Converter={StaticResource StringConverter}, 
     ConverterParameter='Go to linked item', Mode=OneWay}" 

Lựa chọn 2

Nếu bạn muốn sử dụng này ở nhiều nơi thêm tài nguyên chuỗi .

<sys:String x:Key="GoToLink">Go to linked item</sys:String> 

Và chuyển khóa tài nguyên.

ConverterParameter={StaticResource ResourceKey=GoToLink}} 
-3

Tôi hy vọng bạn có mục đích là để vượt qua chuỗi với không gian để phương pháp chuyển đổi của bạn. Tôi sẽ đề nghị bạn sử dụng MultiBinding. Vui lòng tham khảo mã demo sau:

<TextBox> 
    <TextBox.Text> 
    <MultiBinding Converter="{StaticResource CONVERTERKEY}" > 
     <Binding Path="VALUE1" /> 
     <Binding Path="VALUE2" /> 
    </MultiBinding> 
    </TextBox.Text> 
</TextBox> 

Và bạn sẽ nhận được cả VALUE1 và VALUE2 theo phương pháp Chuyển đổi của chuyển đổi. Bạn cần triển khai giao diện IMultiValueConverter để thực hiện việc này.

Đối với giải thích chi tiết, chỉ cần có một cái nhìn tại this

5

Nếu chuỗi của bạn có dấu cách, sau đó quấn nó trong dấu nháy đơn, dấu ngoặc kép sẽ không hoạt động; điều này có thể là do thực tế là toàn bộ trường văn bản được bao bọc trong dấu ngoặc kép và vì vậy việc sử dụng chúng một lần nữa trong ràng buộc sẽ chỉ ra sự đóng cửa không chính xác.

Text="{Binding Value, 
    Source={x:Static local:Dictionary.Instance}, 
    Converter={StaticResource StringConverter}, 
    ConverterParameter='Go to linked item', Mode=OneWay}" 
+0

Tôi thích câu trả lời này tốt nhất. đặt chuỗi trong một tài nguyên hoặc sử dụng một multibinding là không cần thiết làm việc. – jeff

Các vấn đề liên quan