のくす牧場
コンテンツ
牧場内検索
カウンタ
総計:127,062,683人
昨日:no data人
今日:
最近の注目
人気の最安値情報

    私的良スレ書庫

    不明な単語は2ch用語を / 要望・削除依頼は掲示板へ。不適切な画像報告もこちらへどうぞ。 / 管理情報はtwitter
    ログインするとレス評価できます。 登録ユーザには一部の画像が表示されますので、問題のある画像や記述を含むレスに「禁」ボタンを押してください。

    元スレMicrosoft Silverlight その8

    silverlight スレッド一覧へ / silverlight とは? / 携帯版 / dat(gz)で取得 / トップメニュー
    スレッド評価: スレッド評価について
    みんなの評価 :
    タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。
    レスフィルター : (試験中)
    ←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitter
    501 : デフォルトの名無 - 2011/06/17(金) 23:08:35.81 (+67,+29,-82)
    >>498
    実装面から見るとSLはblendのタイムラインとちょっとした生成処理で行けそうな気がするのにハードコーディングかい…
    HTMLはjQueryつかわないと書く気にならないし、デバッグ大変そう…
    そしてちょっとの変更が泣けそう…

    ってところかな?
    502 : デフォルトの名無 - 2011/06/17(金) 23:35:54.77 (-1,-29,-65)
    >>497
    ソース内の場合、OrderByなどの拡張メソッドでソート後にnewしなおす。
    画面のバインドしてる場合はViewのソート・フィルタ関係使う。
    503 : デフォルトの名無 - 2011/06/19(日) 03:29:26.79 (-2,-30,-34)
    表示用に並べ替えるだけだったらデータソースは変更しないでCollectionVewSource使うのがスマート
    SortDescriptionsでソート方法を指定できる
    504 : デフォルトの名無 - 2011/06/21(火) 19:07:54.37 (+27,-30,-89)
    Visibility プロパティが変更されたらイベントが実行されるようにしたいのですが、
    コントロールを単純に実装しても無理っぽい感じでした。
    何か良い方法はないでしょうか?

    public class MyTextBox : TextBox 
    {
        public new Visibility Visibility {
        get 
        {
            return base.Visibility; 
        }
      
        set 
        {
            if (base.Visibility != value) 
            {
                base.Visibility = value
                MyVisibility_Changed(); 
            } 
        }
    }
    }
    505 : 504 - 2011/06/21(火) 19:08:53.99 (-1,-29,-29)
    Visibility プロパティをコードで書き換えると動作しますが、
    コンバータで値を変更するとうまくうごきません。
    506 : デフォルトの名無 - 2011/06/21(火) 22:17:13.26 (+3,-30,-183)
    基底コントロールの継承はした事がなく、新規コントロールの場合だから的外れならごめんだけど…
    Viewが使えるようにコントロール登録する際にRegisterAttachedメソッド系って呼ばなくていいの?
    というのも、overrideではなくnewでプロパティ隠蔽してるからMyTextBox.Visibilityは処理されてないんじゃないかと…

    ソースで書いた場合のおさらい
    var txt = new MyTextBox();
    txt.Visibility = false; // ①これはMyTextBoxクラスが呼ばれる
    TextBox txtBase = txt;
    txtBase.Visibility = true; // ②これはTextBoxクラスが呼ばれる

    newで隠蔽してるから基底クラを操作した場合、当然基底クラスのが直接呼ばれて継承したのは呼ばれない。
    んで、View側にMyTextBoxが認識されなければ②のようにTextBoxで処理されてる気がする…
    507 : デフォルトの名無 - 2011/06/21(火) 22:24:58.33 (+23,-9,-54)
    ちょっと修正。
    Viewで認識する対象はクラス自体というより、プロパティとイベントの関係が認識されてるかってこと。
    一度MyTextBoxでnewしてるのを別名に変更してイベントと紐付いてるかを確認した方がいいと思う。
    508 : デフォルトの名無 - 2011/06/21(火) 22:31:24.64 (+62,+29,-69)
    んんん…クラスが認識されるだけで呼ばれるハズなのか?
    クラス定義だけでXAML側でそのクラスは使えるハズだから上で書いた事は的外れ…?
    でもRegisterAttachedメソッドで登録するからクラス認識だけじゃ足りないのか…?

    ごめん、ちょっとこんがらがってきたから的外れなら無視して…
    連投すまん。。
    509 : デフォルトの名無 - 2011/06/21(火) 23:53:04.30 (+0,-30,-35)
    >>504
    MVVM Light Tool Kit を使って、EventToCommand で実行するってのはどう?
    510 : デフォルトの名無 - 2011/06/22(水) 00:50:48.38 (+87,+25,-23)
    もしかして、依存関係プロパティにバインドしているのに、Setterが呼ばれないとか当たり前のことで騒いでる?
    511 : デフォルトの名無 - 2011/06/22(水) 12:59:08.69 (-1,-29,-34)
    SkydriveがSiverlightからHTML5移行
    512 : デフォルトの名無 - 2011/06/22(水) 13:00:32.82 (-1,-29,-31)
    まあ、元々、Office Web Apps とかじゃ Silverlight 使ってなかったしね。
    513 : 504 - 2011/06/22(水) 17:06:57.11 (+80,+29,-9)
    >>510
    その当たり前のことが解らないので、教えてもらえませんか?
    お願いします。
    514 : デフォルトの名無 - 2011/06/22(水) 17:18:33.55 (+7,-29,-14)
    >>513
    依存関係プロパティだと、直接SetValueの方が呼ばれるよ。
    515 : デフォルトの名無 - 2011/06/23(木) 08:30:51.39 (-1,-29,-9)
    >直接SetValue
    え? 依存関係プロパテイーはコールバック通知じゃないの?
    516 : デフォルトの名無 - 2011/06/23(木) 09:55:17.65 (+3,-29,-175)
    依存関係プロパティはWPFやSilverlightが勝手にプロパティと呼んでるだけで全く独自の仕組み
    C#でいうところのプロパティとは無関係
    コードから値を取得したり設定したりするのを楽にするためにC#のプロパティの方を
    「ラッパーとして」用意してあるけど、呼ばれる保証はない
    WPFならOverrideMetadataとかOnPropertyChangedとか使って基底クラスの
    依存関係プロパティが変化したことを知ることができるんだけどSilverlightでは無理
    517 : デフォルトの名無 - 2011/06/23(木) 11:45:59.03 (+13,-30,-170)
    >>513
    ダミーのプロパティを作って Visibility からダミーのプロパティに Mode=TwoWay で Binding すれば良いよ。
    ダミーのプロパティの set に必要な処理を書く。

    Visibility の Binding を他に使う予定なら、ダミーの依存関係プロパティを作って、それの PropertyChangedCallback にメソッドを登録。
    あとは、ダミーの依存関係プロパティから Visibility に Mode=OneWay で Binding する。

    この辺りを参考に実装してみて。
    How do I know when FrameworkElement.DataContext is changed?
    http://forums.silverlight.net/forums/p/13421/43840.aspx
    518 : デフォルトの名無 - 2011/06/24(金) 22:44:38.90 (+19,-30,-168)
    DataGrid の DataGridTemplateColumn の中にTextBlock と、編集用に TextBox を60個ずつ
    それぞれStackPanel の中に突っ込んでいるんだけど、レイアウトがおかしいです。

    レイアウトがおかしい行をスクロールアウトして、再度スクロールインすると、ちゃんとレイアウトされているのです。
    以前、再描画とは異なる処理が走ると教わったのですが、具体的にどのメソッド等を呼べばスクロールアウト、スクロールインと
    同等のことができるのでしょうか?

    レイアウトがおかしくなるのは、Silverlight のバグでしょうか?
    519 : 518 - 2011/06/30(木) 18:57:16.28 (+5,-30,-66)
    >>518
    解決しました。
    Setter で StackPanel にマージン(Margin="5")を設定していたのが原因でした。

    Setter を消したらちゃんと描画されました。
    原因はわかりません。

    解る人がいたら、原因の解説をお願いします。
    520 : デフォルトの名無 - 2011/07/01(金) 20:31:16.28 (+43,+25,-1)
    521 : デフォルトの名無 - 2011/07/02(土) 02:13:32.07 (+47,+29,-2)
    えらい横長いね
    522 : デフォルトの名無 - 2011/07/02(土) 13:49:09.92 (+14,-30,+0)
    DataGrid でName 属性を設定しても MainPage.xaml.cs から参照できないのですが、仕様でしょうか?

    <sdk:DataGridTemplateColumn.CellEditingTemplate>
    <DataTemplate>
    <StackPanel Name="TypePanel" Background="White" Orientation="Vertical" VerticalAlignment="Center" HorizontalAlignment="Left">
    <sdk:AutoCompleteBox Name="Type0" Text="{Binding Type0, Mode=TwoWay}"/>
    <sdk:AutoCompleteBox Name="Type1" Text="{Binding Type1, Mode=TwoWay}"/>
    <sdk:AutoCompleteBox Name="Type2" Text="{Binding Type2, Mode=TwoWay}"/>
    <sdk:AutoCompleteBox Name="Type3" Text="{Binding Type3, Mode=TwoWay}"/>
    <sdk:AutoCompleteBox Name="Type4" Text="{Binding Type4, Mode=TwoWay}"/>
    <sdk:AutoCompleteBox Name="Type5" Text="{Binding Type5, Mode=TwoWay}"/>
    </StackPanel>
    </DataTemplate>
    </sdk:DataGridTemplateColumn.CellEditingTemplate>

    ※Type1 ~ Type5 が参照できません
    523 : デフォルトの名無 - 2011/07/02(土) 13:50:38.22 (+2,-29,-6)
    Name -> x:Name
    とか?
    524 : 522 - 2011/07/02(土) 14:15:40.01 (-1,-29,-3)
    >>523
    Name でも x:Name でも変わりませんでした。
    525 : 忍法帖【Lv= - 2011/07/02(土) 14:35:26.67 (+38,-29,-86)
    >>522
    出先だから確認できないけど、DataTemplate使ってるってことはDataGridとは別のリソース定義扱いになるから直接ソースから扱えたっけ?
    アクセスしたいならVM側からとかいくらでも…
    というかMVVMの構造知っといた方がいいような…
    526 : デフォルトの名無 - 2011/07/02(土) 18:02:12.90 (-1,-29,-59)
    DataGridはデータ次第で何行も作られて、
    そのそれぞれの行のColumnにテンプレートが適用される。
    100行あったとき「Type0ってどれ?」って話で
    527 : デフォルトの名無 - 2011/07/02(土) 18:44:55.19 (+62,+29,-19)
    >>525
    状態を保持する必要が無ければ、View側で処理しちゃっても良いと思うんだぜ
    528 : デフォルトの名無 - 2011/07/04(月) 12:05:19.11 (+3,-30,-124)
    sdk:AutoCompleteBox の Got_Focus イベントで、
    OriginalSource を参照すると、型が AutoCompleteBox ではなく、TextBox になってしまうのですが、
    そういうものでしょうか?
          
        private void TextBox_GotFocus(object sender, RoutedEventArgs e)
            {
                MessageBox.Show(e.OriginalSource.GetType().ToString());
            }
    529 : デフォルトの名無 - 2011/07/09(土) 14:25:44.23 (+57,+29,-34)
    html5を学習しているけど、本当にsilverlightっていらねえって実感する。
    530 : デフォルトの名無 - 2011/07/09(土) 15:02:12.65 (+57,+29,-19)
    HTML5で一体何をやってんだ
    全部JavaScriptで実装か?
    531 : デフォルトの名無 - 2011/07/09(土) 19:59:29.03 (+44,+16,-42)
    SilverlightでかいたらHTML5で動くってなってくれるのが最強な気がする。
    532 : デフォルトの名無 - 2011/07/09(土) 20:19:51.94 (-1,-29,-5)
    次期開発VerはUltraVioletlightになります?!
    533 : デフォルトの名無 - 2011/07/09(土) 20:46:21.73 (+46,+28,-4)
    なぜ紫外線?
    534 : デフォルトの名無 - 2011/07/09(土) 23:58:35.03 (+57,+29,-9)
    金光教信者とか云われるのはマズいから
    銀灯にしたってホント?
    535 : デフォルトの名無 - 2011/07/10(日) 00:23:22.83 (+62,+29,-52)
    もし宗教に配慮したとしても金光明経でしょ。関係ないと思うが

    一応、命名由来はあくまでもAdobe Flashへの対抗らしい。

    カメラのフラッシュを吸収して結像するのは銀塩カメラ(Silver Halide Camera)だし
    「フラッシュ」は1瞬だけ激しく輝くが、「銀」は「光」を当てるといつまでも輝き続けるから、という説もある。
    536 : デフォルトの名無 - 2011/07/12(火) 20:01:55.74 (+3,-29,-80)
    質問です。

    セル結合が可能なデータグリッドを作るのに
    どのコントロールで実装するのがスマートなんでしょう。

    StackPanel にTextBox を並べるか
    Gridで配置するか。。

    他に案があればご教示ください。
    FlexGridなどの有償製品は抜きでお願いします。
    537 : デフォルトの名無 - 2011/07/12(火) 20:30:08.32 (+57,+29,-5)
    正直、そういうの作るんだったらフルスクラッチにしたほうがいいと思う。
    538 : デフォルトの名無 - 2011/07/12(火) 20:55:36.15 (+57,+29,-31)
    どうしても標準コントロールでやりたきゃ、Gridじゃね?
    快適に動作するかはかなりアレなので、俺もフルスクラッチを薦めるけど
    539 : デフォルトの名無 - 2011/07/13(水) 08:23:46.29 (+57,+29,-4)
    レスありがとう。
    ゴリゴリ書くには時間がいるなあ
    540 : デフォルトの名無 - 2011/07/13(水) 09:45:45.25 (+57,+29,-44)
    んーどの程度のものを作るかによるけれどある程度以上になると

    ベースのくせを回避したり制限を乗り越える労力>>>>>>フルスクラッチの労力

    になると思われ。しかも不毛な労力。
    541 : デフォルトの名無 - 2011/07/13(水) 10:20:45.19 (+0,-27,-14)
    グリッド関係は、どうしてもExcelと比較されるからなぁ
    542 : デフォルトの名無 - 2011/07/13(水) 22:39:17.43 (+57,+29,-51)
    割と疑問なんだが、データグリッドでセルを結合したいってのはどんな用途を想定しての物なんだろう
    543 : デフォルトの名無 - 2011/07/13(水) 23:02:14.47 (+56,+28,-24)
    群馬レコードと埼玉レコードを結合してぐんたまにしたりとかあるだろ
    544 : デフォルトの名無 - 2011/07/14(木) 01:08:14.07 (+52,+29,-8)
    帳票文化の伝統を守るためじゃまいか
    545 : デフォルトの名無 - 2011/07/14(木) 09:25:41.63 (+57,+29,-20)
    スケジュール表でドラッグ&ドロップで線引きたいとかってときにあったな>結合
    546 : デフォルトの名無 - 2011/07/14(木) 12:53:58.97 (+7,-15,-13)
    みんな大好きExcel方眼紙
    547 : デフォルトの名無 - 2011/07/15(金) 07:57:31.09 (-1,-29,-72)
    下の例はSilverlight ではなくASP.NETでの実現方法の参考だが
    表のヘッダー(見出し)を1行追加して複数の項目をまとめたい場合があるよ。


    列結合
    http://www.atmarkit.co.jp/fdotnet/dotnettips/091joinheader/joinheader.html

    http://www.atmarkit.co.jp/fdotnet/dotnettips/095multiheader/multiheader.html

    行結合
    http://www.atmarkit.co.jp/fdotnet/dotnettips/092joincells/joincells.html
    548 : 忍法帖【Lv= - 2011/07/15(金) 16:31:47.08 (-8,-26,+0)
    test
    549 : デフォルトの名無 - 2011/07/16(土) 00:35:07.16 (+31,-29,-40)
    Silverlightで単体テストする時って、皆はどうしてる?
    やっぱ、Silverlight Unit Test Frameworkが基本なんだろうか
    550 : デフォルトの名無 - 2011/07/16(土) 09:58:21.26 (+62,+29,-10)
    >>549
    俺も気になっていた。
    ブラウザ外実行だとデバッガ使えないみたいで、デバッグに苦労しました。
    ←前へ 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 次へ→ / 要望・削除依頼は掲示板へ / 管理情報はtwitterで / silverlight スレッド一覧へ
    スレッド評価: スレッド評価について
    みんなの評価 :
    タグ : 追加: タグについて ※前スレ・次スレは、スレ番号だけ登録。駄スレにはタグつけず、スレ評価を。荒らしタグにはタグで対抗せず、タグ減点を。

    類似してるかもしれないスレッド


    トップメニューへ / →のくす牧場書庫について