Silverlight: выбор элемента управления на основе списка - PullRequest
1 голос
/ 25 августа 2011

Я привязал Telerik RadGridView к List<MyObject> myList = new List<MyObject>.Но если myList.Count == 0 (список пуст;)) я хочу показать другой элемент управления пользователю.

Я знаю, что мог бы использовать какой-нибудь конвертер видимости, но я предпочитаю добиться этого в XAML.

Спасибо

Ответы [ 2 ]

1 голос
/ 25 августа 2011

Я думаю, что преобразователи значений - ваш единственный выбор здесь :) Однако я обнаружил, что если вы правильно их структурируете, преобразователи значений - это хорошо.

Вот несколько хороших инструментов для этого:

СИмея в виду эти инструменты, я бы использовал что-то вроде этого:

    <Grid>
        <telerik:RadGridView ItemsSource="{Binding myList}">
            <telerik:RadGridView.Visibility>
                <Binding Path="myList">
                    <Binding.Converter>
                        <converters:SequentialValueConverter>
                            <converters:IsEmptyConverter />
                            <converters:BooleanToVisibilityConverter TrueValue="Collapsed" FalseValue="Visible" />
                        </converters:SequentialValueConverter>
                    </Binding.Converter>
                </Binding>
            </telerik:RadGridView.Visibility>
        </telerik:RadGridView>
        <YourControl>
            <YourControl.Visibility>
                <Binding Path="myList">
                    <Binding.Converter>
                        <converters:SequentialValueConverter>
                            <converters:IsEmptyConverter />
                            <converters:BooleanToVisibilityConverter TrueValue="Visible" FalseValue="Collapsed" />
                        </converters:SequentialValueConverter>
                    </Binding.Converter>
                </Binding>
            </YourControl.Visibility>
        </YourControl>
    </Grid>

Кроме того, как сказал Джейсон, myList должен быть ObservableCollection, чтобы графический интерфейс получал уведомления при его изменении.

Надеюсьэто помогает!

0 голосов
/ 25 августа 2011

Если вы переключились на ObservableCollection<MyObject>, вы можете привязать с помощью VisibilityConverters к этому вашему myList.Count все в XAML.Если у вас возникли проблемы из-за того, что вы устанавливаете ItemSource в codebehind, вы можете захотеть, чтобы он был ресурсом или переключился на что-то более MVVM.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...